Watches
General guidelines for modeling
Formats
Threedium Platform is compatible with GLB, FBX and OBJ file formats.
- GLB is a good starting point, Threedium Platform is using GLTF standard as well, so this workflow should provide a seamless experience.
- FBX can still carry materials and necessary textures together with geometry, but due to different versioning of FBX files, some differences may occur.
- OBJ format can be uploaded with a .mat file as well, to load the necessary textures and material information.
Asset file size
- The optimal file size should be up to 10mb for e-Commerce workspaces. This should be a good size to aim for, but depending on the project specification this can be specified additionally.
- For assets that are done without textures (configurator specification), they should be under 5mb.
- Texture sizes should follow an average. Ex. If there are 10 textures that have a range of 2-5mb and then we have a texture map of 10mb, it should be optimized to fit in the average range.
Geometry
- No n-gons are allowed, either quads or triangles should be used to ensure good topology and any possible edits in the future.
- Good flow of topology, no sharp creases, sharp angles, or polygons protruding through the backside.
- Subdivision should be done as a last step, reversing this effect can help if optimization is needed. Keep in mind that these assets are going to be used across the spectrum of Web3D integration (viewers, configurators, AR, banner ads).
- Small details such as screws, cogs, levers, springs, and other small parts, should match the level of detail of bigger parts.
- Mechanism details need to be matched to absolute perfection, especially if technical documentation is shared, with precise drawings and dimensions.
- Dimensions of the asset should match real-life dimensions, this is especially important for AR models.
- Any holes present on the asset need to be either modeled or properly textured.
Polycount
Since we are using webGL we are limited in terms of performance and we need to spend some time to optimize the assets correctly. Polycount is an important parameter that should be considered when creating assets. They should be easily optimizable in case that we need to reduce the polycount.
Preferred triangle count for watch assets can be categorized by their complexity:
Tier 1- up to 30 000 trianglesTier 2- up to 60 000 trianglesTier 3- up to 130 000 triangles (best performance/quality)Tier 4- up to 400 000 triangles (for extremely complex or unique assets, a good example would be a watch with an extremely complicated mechanism that is exposed).
Detaching/separating parts and grouping
- The number of mesh nodes should be kept to a minimum.
- Any parts that are meant for Fur shader, should be detached separately.
- Parts that are not specified for animation can be grouped by material type, ex. “watch_bottom_stitches_1”.
- All part groups should have their own empty node to which they are parented.
- Avoid parenting parts to another geometry part, this creates issues in later integration.
- Pay attention to the number of nodes and how they are grouped together. Number of separate parts should not exceed 100. Any number over that could cause issues with performance on mobile devices.
Naming parts, groups, and files
-
This chapter can be project-specific, and depending on the final use case (viewer or configurator) it can vary in some aspects. Here are some general guidelines that are applicable to most projects.
-
The naming convention is immensely important, and our QA has a zero-tolerance policy for this specification. Any assets that have auto-generated names ex. (mesh 001, object 345 etc.) and that do not have logical naming, will be returned for edits.
-
Names should be logical, and easily understandable. They should state, one of these properties for easier identification:
- Material type
- General Shape
- Color (if the part is available only in one color)
- Location (top, bottom, left, right, middle)
- Type of shader (Fur, Transparent)
-
Part can contain only one piece of information, or combined. In a practical example:
- SKU123456
- metal_gear
- hour_hand_crystal
- minute_hand_metal
- strap_leather
- Naming of empty nodes should also follow the same logic, it should better describe which parts are contained in the group.
- File names should always have SKU_123456 format
- Planes that represent shadow on the floor, should always be named “shadow_plane”
- Parts that need to have special shaders assigned should have the name of the shader within them, and need to be grouped ex. “diamond_small_1” or “fur_inside”
- Asset name should always be either an SKU, or if we do not have SKU, then name of the product. It can contain lowercase and uppercase letters and numbers. No special characters.
- Part and group names should follow a simple logic, using underscores instead of space to connect the string of text. Names can contain only lowercase letters and no special characters.
- Groups need to contain two pieces of information:
- name, of the specific part of the asset it contains
- name of the material type
- Mechanism naming should follow a logical way of thinking. Spring, cog, lever, to point what is the function of that particular object.
- If the watch has a hidden mechanism but project requirements specify an “explode view” animation, the watch asset can be split into two different files. One for the mechanism and one for the watch.
Transformation data and scale
- Before submitting the asset, please make sure all transform data has been applied/reset.
- The asset needs to be centered in the scene on the X,Y,Z axis origin. Rotation, transformation, and scale of the complete object and all its geometry parts need to be 0.
- The scale of the asset should be 1 on all axes. This is of great importance since assets are used in an AR environment, we need a real-life scale for all the assets.
- The native dimensions format for Threedium Platform is cm (centimeter).
- All watch assets need to have a uniform position in the scene unless specified differently by project requirements.
Stitching on straps
- Depending on the particular SKU, stitching can be either baked into a simple geometry strip, or they can be actual 3D objects with each individual stitch.
- When using the “geometry strip” method, keep in mind UV unwrapping, see the next chapter for more information.
- For 3D stitches, aim for the lowest polycount possible.
- For watch assets we prefer 3D stitches, they ensure the maximum possible quality since they are going to be inspected up close.
Branding and engraved details
- All engraved details should be done with geometry if possible, otherwise use floater objects with correct alpha and normal maps.
- Subtle details such as the brushed metal effect, can be integrated into a normal map.
- Any details bigger than 1mm in depth/thickness should be modeled for more detail.
- Branding should be consistent in quality across the complete asset
UV Unwrapping
General UV guide
- Ensure consistent texel density, unless otherwise specified by the project requirements.
- GLTF divides the asset along UV seams, and when the camera is observing from a long distance, UV seams can be seen. UV seams should be hidden when possible.
- UV islands should have no stretch or compression, in order to avoid loss of quality in textures. Recommended distance between UV islands:
- for 512x512 - 4px
- for 1024x1024 - 6px
- for 2048x2048 - 8px
- UV islands should not touch the borders of the UDIM tile
UV channels
- Channel 1 is reserved for standard mapping of material textures.
- Channel 2 is reserved for light and ambient occlusion maps.
- Every asset should include channel 2, which will contain a completely unwrapped asset on one UDIM tile. This is used for baking AO map that will be used as a “Global AO” map. This map is applied to all the parts of the asset regardless of specific materials.
- Multiple UDIM-s are not supported.
Unwrapping for tiled textures
- Preparing the UV-s for this kind of workflow, we need to first take into consideration the point above (2.2). Channel 2 = AO map.
- Channel 1 is now free to create a consistent UV space for applying tiled textures, such as fabrics.
- For tiled textures, UV transforms for all UV islands should be U 0.5 and V 0.5. This way we ensure that texture starts from the same point of the asset. UV islands should also have the same average scale, no different scale is allowed. This is easily checked with UV checkered texture. Please ensure this criteria is met perfectly, assets with incorrectly setup UV-s will be returned for edits.
Unwrapping for custom textures
Using Substance Painter is the most common way of creating materials and textures. We accept any other software, as long as texture maps are properly baked, and have highest highest-quality details.
Stitching unwrapping
- All the stitches on the asset should have identical UV mapping. There are two ways to go about this:
- Unwrap and straighten the stitching geometry in a continuous strip that is aligned properly on the first UDIM tile, so the stitches are tiled in a correct scale.
- Custom stitch textures are accepted as well, but this should be a preferred workflow only on assets that do not have color changes for the stitching.
Unwrapping for overlays
- Overlays are a feature on Threedium Platform that lets us render either, custom text or images on our asset. This system uses UV coordinates to do so.
- SKUs that have specified parts for engraving, embossing, or other types of customization by the end users, need to have those parts unwrapped in a specific manner to allow for easy overlay set up in Threedium Platform.
- This part should have centrally positioned islands since overlays are by default positioned on U 0.5 and V 0.5 coordinates. The idea is to have as small several transforms as possible to achieve the desired result.
- In cases where assets have custom texture, overlays should be considered at the beginning of the unwrapping workflow, so they can be positioned properly.
Unwrapping for embossing-engraving
- When using tiled textures, there are two ways to achieve logo engraving, either using our overlays system, or increasing the density of mesh in that specific area, and using vertex displacement to engrave the details into the geometry. Later baking of AO map will ensure that shadows accent the specified logo/inscription.
- When Unwrapping this area, be extra careful to not disrupt the seamless flow of textures, while keeping stretching/compression of the UV island to the lowest possible minimum.
Unwrapping for Diamonds and Precious Stones
- Diamonds do not require any unwrapping since our special shader works using geometry information. However, it is a good practice to do a simple unwrap and stack the diamond islands in the same position. This is very useful for us when the asset needs to be used outside of Threedium Platform.
Materials
General Textures guide
- Texture size should not go above 2048x2048. Higher resolutions can impact performance on mobile devices.
- All textures need to be in the rules of 2. Ratios of the textures should be either 1:1 or 1:2, 2:1 3:1 etc… Here are some examples of some accepted texture formats:
- 512x512
- 1024x1024
- 2048x2048
- 1024x2048 (1:2)
- 512x1024 (2:1)
- We recommend keeping the texture ratio to 1:1, and using other ratios only when unavoidable.
- We support PNG, JPG, and HDR textures. PNG can contain transparency and it will be applied once the texture is applied in a diffuse color map slot.
- Normal maps should be kept in PNG format, converting them to JPG will result in a loss of subtle details
Decals and floater objects
- Make sure that floater planes are offset enough from the geometry part to avoid “z-fighting” effect
- For shadow textures, use Alpha map to ensure a good quality of blending with the background
- For blending modes use Alpha Clip, or Alpha Blend
- Group all the logo/branding on one set of textures if possible
- The quality of the logo inside of the watch should match the others outside (explode view). Everything visible should have matching quality textures
Branding and logos
- Logos/branding should have the highest possible quality, we recommend one texture set in 512x512 image size.
- If there is a need for higher-resolution textures we suggest breaking up the logo/branding into multiple texture sets, especially if they cover a large portion of the asset. When that is not possible, use up to one texture set of 2048x2048 for logos.
- If SVG files are not available we suggest recreating them and using them as a base for logo/branding textures.
Ambient Occlusion maps
- AO map needs to be mapped on the second UV channel.
- AO map can be assigned locally per part, or groups of parts.
- The method we prefer is to use the Global AO map. This would require the complete object to be unwrapped in the second UV channel, and then AO map baked to complete objects. This ensures using only one AO map for the complete asset.
- Global AO map should have a 2048x2048 resolution, individual maps, can have lower resolutions if they are done for specific parts of the asset.
Reusable texture format
- We prefer tiled texture formats, that can be shared across multiple assets.
- Use custom-baked textures only for unique assets or parts.
- Every tiled texture set, should at least have 2 texture maps, (ex. Diffuse - Normal, or Normal - Metalness, or Metalness - Roughness). Even plain colors have some details, added through Normal maps.
- Only polished metal materials do not need additional textures. hey are set up in Threedium Platform using only the Environment map and base color.
Transparent materials
- For transparent parts of the mesh, we support alpha, transmission, and thickness maps.
- Coat and coat roughness (maps or integer) can add more details to otherwise flat-surfaced materials.
- For glass or crystal parts, use offset double mesh to make the object appear thick.
- Front and back glass covers need to have 2 separate parts and 2 different materials assigned. This is required in case of explode animation, we can easily adjust the glass edge to be more visible.

Animations
- Some clients might specify an explode view for their assets.
- Animations for watch hands and other time-tracking parts are done in Threedium Platform. We have a specific workflow for this, so these parts should not be exported with any animations, except in case of an explode view.
- Watches that have exposed mechanisms completely or partly, need to have a proper animation sequence. Everything needs to be in sync. Clients usually send technical documentation on how these parts are moving.
- In the absence of proper documentation for watch operation or movement, online searches, videos or reviews should be used to get a better understanding of how the watch functions. For any additional questions, forward them to the person responsible for the assigned project within Threedium.
- Animating the parts can be done either with rigging or transitions or in combination. Rigging is a preferable option, together with GLB format. FBX and simple transition animations are acceptable as well.