Basic terminology
Geometry/polygon mesh is a collection of vertices, edges and faces that make up the shape of a 3D object. This can be a bottle, cream, furniture, jewelry, car, etc.
Example :

Vertices : | Plural noun for vertex. These are the points that make up the surface of a 3D object. |
---|---|
Edges: | Edge is what you get when you connect 2 vertices with a straight line. |
Polygon: | 4 vertices connected to each other by 4 edges then become a polygon. This is sometimes also referred to as a face. |
Element/Object/Mesh: | Number of polygons joined and closed together form the element. This is sometimes also referred to as an object. |
*We strongly advise our users to create quads (a 4 sided polygons) when modeling instead of triangles (a 3 sided polygons) or ngons (a 5 or more side polygons).
*Depending on your needs and complexity on your 3d model we recommend following our rule for Maximum number of polygons.
Modeling guidelines
If you are just starting with modeling a 3d model that will end up on Unlimit3D we strongly advise you to read our modeling guidelines to prepare your model for most optimal use of our software.
We strongly recommend modeling the object in it’s realistic measures.
During modelling, it is possible to create a vertex that is not part of any face. It is necessary to remove all of these vertices.

Remove/Weld separate vertices that occupy the same location.

When two or more faces or polygons occupy the same space, rendering can be invalid due to Z-fighting. You should check for and remove all overlapping faces.

Front of a polygon’s face is graphically represented using a directional vector that is perpendicular to the face. Make sure that face normals point outward.

Center model at scene origin x/y/z - 0/0/0
Each mesh/object or transformation node can have only one pivot point. The model can be scaled or rotated around this point. We suggest a center pivot point to each respective object.
Resets the transform values. The object's rotation values will be set to 0, and the scale to 1. This is necessary if you were scaling, rotating or mirroring the whole object during your workflow.
Vertex normals determine the visual softness/hardness between polygons. They are determining how the model should shade under the light. Custom vertex normals are supported.
The usage of instances is encouraged wherever possible.
Assign unique names for meshes, groups and materials. If the names are not unique, they will be automatically generated. This can cause a discontinuity to model update. Avoid special characters when naming.
Textures
Textures are 2d images mapped to the model surface. Textures work in conjunction with Shaders and Materials to produce the final rendering. You can upload/delete multiple assets in inventory or add them during the work. For optimal results while using Unlimit3D see recommended maximum textures sizes.
At the moment supported formats are .jpg, .png and .hdr.
For AO map, Global AO map and Lightmap you need to unwrap UV channel 2. All other maps are assigned to channel 1.
You may combine b/w images RMA (Roughness + Metallic + Ambient occlusion) to the RGBA channels in PBR workflow. Alpha channel is optional.
Texture resolution should use the “power of two” rule. In short, the power of two is a set of simple criteria ensuring 2D image assets conform to regulated sizes and dimensions, which typically manifest as; 1) width/height being divisible by "8", and/or 2) width/height that can be doubled-up or divided-down by "2". In other words any image that is "8", "16", "32", "64", "128", "256", "512", "1024", "2048" will work good.
We suggest to checkout out recommended maximum textures size
Recommended aspect is 1:1 or 1:2
Make unwrapping more compact in order to effectively use texture space. That way you will be able to use smaller resolution maps. Keep a low number of UV shells. Hide UV seams.
If you need more resolution you can use multiple texture sets.
Remove all unused UV channels.
Materials
While using the Unlimit3D platform you should be aware of few rules regarding materials:
We support multiple materials and shaders.
You can mix different shaders in the same scene.
For best performances (fewer draw calls), join all meshes/elements with the same material if it’s possible.
Multi materials are counted as separate meshes.
It is always more optimal to have less different materials in the scene.
Keep in mind that as you add more materials it becomes heavier in terms of processing. Opaque materials are faster, transparent materials are slower.
Turn on transparency and lower opacity slider to set the effect. You can also use map in alpha map or use the alpha channel from the diffuse map. For transparent objects, you have blending modes available.
You can use blend modes from the Blending dropdown list inside the shader.
You can adjust Alpha Test slider which is located in shaders advanced options.
PBR - Physically Based Rendering
To create PBR (Physically Based Rendering) scene, use MeshPhysicalMaterial combined with HDRI lighting. If you are not already familiar with this industry standard, you can find information about PBR theory from many online sources like https://academy.substance3d.com/courses/pbrguides.
Lightning
Limit the number of lights only to necessary ones. In most cases default lights are sufficient. You can choose from Point, Spot, Directional, Hemisphere or RectArea.
Use any small size .jpg or .png to add global or/and individual reflections.
To improve the performances, you can lighten your scene by an HDR image only, without using any other light sources. Keep HDR file size under 1.5MB. You can have global or separate HDR on material, but try to avoid that to save on size.
If your object is static, for best performance, you may bake shadow and ambient occlusion maps and apply them to the plane under the object.
3D model preparation for upload on Unlimit3D
Due to current technology limitations, we are forced to ask our clients to follow a specific set of rules with the common goal of achieving the best possible experience of using Unlimit3D software.
Maximum size of input files
Input files can include but are not limited to textures, optional parts, etc. We divided our most common 3d products into simple categories. Please note that these file sizes are for optimal experiences but not a must have. In the web 3D all resources are taken into account. While the model can work on your previewing device, on someone with weaker configuration it may not, so we encourage you to be as optimal as possible.
Simple complexity products: | 1MB |
---|---|
Advanced complexity products: | 3MB |
High complexity products: | 5MB |
Extreme complexity products: | 30MB |
For 3D ads: | 1.7MB |
Note for 3d ads: We recommend 1.7MB as most DSPs have 2.4mb total ad file size restriction. However, if a user prepares an ad for direct publishing, or premium ads, the file size can be higher.
Maximum number of polygons
The goal is to have as few polygons/triangles/vertices as possible. That will reduce download time and improve performances while using Unlimit3D.
Simple complexity products: | 2.000 |
---|---|
Advanced complexity products: | 20.000 |
High complexity products: | 50.000 |
Extreme complexity products: | 400.000 |
For 3D ads: | As low as possible |
3D file formats
Unlimit3D software supports the following file formats: | .fbx, .obj, .glb |
---|
Maximum textures size
For all types of 3d projects on Unlimit3D (except for 3D for mobile devices), we recommend using textures with a maximum size of 2048px. Depending on the model complexity, size of 4092px is also a possibility but only if it’s necessary. As for the 3d project for Mobile devices please read the section: 3D model for mobile
UV mapping
For the most aesthetically pleasing 3d solution we recommend using a specific UV map or seamless UV map
Unwrapped UVs
Unlimit3D software supports Unwrapped UV maps, however, in case of extreme complexity 3D, we advise using Unwrap only if necessary.
Low, Mid or High-poly
If you were reading through all of our documentation, you probably got the right idea when to use low, mid or high-poly modeling. Just in case we will propose what we consider is the best practice corresponding to the previously mentioned types of models
For Simple complexity products | Mid-poly or low baked optionally |
---|---|
For Advanced complexity products | Mid-poly or low baked optionally |
For High complexity products | Mid-poly or low baked optionally |
For Extreme complexity products | High-poly for some parts (not recommended, but if the product requires that level of detail to achieve an aesthetically pleasing look, than you should use high-poly), mid-poly or low baked optionally |
For 3D ads | Low-poly |
AR optimization
ARcore (Android compatible) .glb file format and ARKit (iOS compatible) .usdz file format
For more detailed instructions we advise our users to check official google and apple guidelines for optimal AR experience:
https://developers.google.com/ar/design
https://developer.apple.com/design/human-interface-guidelines/ios/system-capabilities/augmented-reality/
3D model preparation for usage on mobile devices
Due to current technology limitations and the nature of 3d models that are viewed on mobile devices, we are strongly recommending our users to read the following guidelines.
Before starting a project on Unlimit3d, consider having a special solution of the same product for a desktop version and a mobile version.
When working on a 3d model for a mobile device, please work with textures that are 1k or less. As the average screen size of the mobile devices is pretty low compared to desktop, the model will still look aesthetically pleasing but the performances will not be compromised.
Avoid using HDR maps when the model is intended.
Avoid the usage of Physical Material types and instead, use Standard Material type
Specific requirements of model upload for Simple 3d Visualization
In case the only need for your 3D solution is for the product to be viewed in a browser, rotated, zoomed in or out by your customers/users without any additional functions then you should only apply all the guidelines from the section of 3D model preparation for upload on Unlimit3D and Modeling guidelines (if you are modeling from scratch)
Specific requirements of model upload for 3d Configurator
If you need a 3d Configurator (you want to show different types of the same model, for example. Different tires on a car model, different wrists on a watch or different laces on a shoe, etc), then you need to additionally prepare your model before uploading.
Logical grouping of elements that will be configured
Let’s take an example of a car model. Let’s say you finished modeling a car or you purchased a model of one. If you modeled the product from the scratch, depending on your workflow, you will most likely have more objects/entities in the scene at the end of the modeling process. If you purchased the model it usually comes with separated objects/entities, so you will have to merge it in the first step.
Example : Image 01

The first step you should do is decide, what parts you will want to change in your 3d Configurator. For this example, we will say we want to change the tires. So, in that case, we have to combine tires into a single separate entity/element, and the rest of the car into a single separate entity/element. So that will leave us with 2 different entities/elements, the tires and the rest of the car:
Example : Image 02

Now that we made sure the car is divided the way we want, we want to get the new type of tires and prepare them the same way we did with the previous ones.
Example : Image 03

Now that we prepared the tires, we need to place them in the same place as the original ones. They are currently overlapping, but we will have the option of turning them off on the Unlimit3D platform. This preparation will allow you to make a 3d configurator of switching between these two types of tyres.
Example : Image 04

With the same preparation, you can choose any other parts of your product that you wish to present in different versions.
Specific requirements of model upload for semi 3D configurator /w annotations
An annotation is extra information associated with a particular point in a 3d model or another piece of information. It can be a note that includes a comment or explanation, it can be a trigger button that activates the animation of your 3d product or similar. We offer our clients the possibility to add annotations in their 3d projects. Depending on your needs there are few guidelines you should follow. Example of annotation from our clients that you can see for yourself at https://threedium.co.uk/features
Example :

Annotation image preparation
The background of annotation should never be on 0% opacity. When creating a png. image of your annotation, make sure to provide a picture with at least 1% opacity, as the clickable area will be larger.
Example : Image 05

In image 05 you see a good example of a background having 1% opacity, which will still seem as the background is transparent but your users will be able to click on the whole space. Depending on the size of your 3d solution, you should adjust the size of annotations. A size of 300x300px will usually do the work.
Annotation possibilities
Depending on your needs, you might have to include someone with some medior level of knowledge in programming to implement the idea on your website. The things you can achieve by yourself are following:
Transformation of object: | Once the user clicks on an annotation, the object can be transformed as you wish it to be transformed. |
---|---|
Object hiding: | Once the user clicks on an annotation, the object will be hidden, and a new one can appear. In this case, the model should be prepared the same way as described in the section about the Logical grouping of elements that will be configured. |
Camera control: | Once the user clicks on an annotation, the camera can change position to some other angle of your product. |
Lighting: | Once the user clicks on an annotation, the lighting can be increased, decreased, turned off or additional light can be turned on. |
For 3D ads | Low-poly |
Model preparation for annotations with animation
In case you wish for an animation to happen with your object when clicking on an annotation you need to prepare the model before uploading. The animated part of the model should have a corresponding Gizmo. To explain better we will take the example of a car and the door being the interactive part. Firstly we prepare all the objects that will have the animation, in this case, the right door on a sample car should be detached from the rest of the model and form a single entity/object.
Example : Image 06

After that, we need to adjust the gizmo to the most logical place so that when we simulate the door opening, it looks as natural as possible.
Example : Image 07

If the gizmo is placed in the correct position then the animation of the object with the rotate command will look smooth and natural.
Example : Image 08

Some softwares require you to specifically bake the gizmo/pivot on needed location.
Specific requirements of model upload for 3D ads
As the 3D ads are fairly new thing on web, the possibilities are a bit limited. The concept of modeling is the same as for anything else, but the resources should be as light as possible. We encourage you to take a look at our 3D model preparation for upload on Unlimit3D For information regarding the most optimal workflow.
Jewellery modelling guideline
If you have a jewellery model that you wish to publish on our platform there are several guidelines you need to follow
Best modelling practice when using Unlimit3D shader/decoration
If you intend to make most of our shader we recommend the following guidelines. Diamond should be modelled as a single geometry with faces pointing outwards. The diamond should not have overlapping geometry.
Example : Faces should be pointing outwards.

Example : Model should be made of single faces with no overlapping geometry.

Number of faces/polygons
As was the case with every model that goes on our platform, we want to have the as least possible amount of faces. While we have successfully published projects of jewellery with up to 300k polygons, we advise you to try to be as responsible as possible with the number of faces.
Decoration entry / Custom Unlimit3D shader
For the needs of diamond models, we developed a custom Shader to help you present your jewellery models in the most aesthetically pleasing way possible. Through our example, we will show you how to edit the values and reach the best result.
Every piece of diamond has to be a single entity/object
For our shader to individually apply the environment map and create the most realistic result, every piece of the diamond needs to be individually detached.
Size of an environment map
Depending on the level of detail and the number of diamonds, you should consider the size of the environment map. If there is only a single diamond you can use the size of 512x512px. If there is more than one we advise using a 256px or even 128px size environment map.
Note: Environment map is necessary to exist in the decoration entry section.
A simple example of the whole jewellery process
First of all, we want to make sure all of the elements are prepared for our platform. Let’s assume this is our starting point with the model (image01):
Example : Image 01

Depending on your wishes for this solution, you might want to separate the rings as well. For this example, we will keep them together, and separate each diamond. The result got us to 78 side diamonds and 1 main diamond. (image02)
Example : Image 02

Now we want to apply 2 placeholder materials. One on rings, and second on all the diamonds. (Image03)
Example : Image 03

Now we are ready to upload the model. We will export it as fbx. In this case. Once we upload the diamond we are ready to apply our shader(decoration entry) (image04).
Example : Image 04

For the ring material, we will use one of our preset materials from the global material library. (image05)
1. We click on the ring part. |
---|
2. We click on import from the library. |
3. We select a global material library. |
4. We choose the material that suits our needs. |
Example : Image 05

Now it’s time to apply our shader by first creating new material. (image06)
We assign the name we want and set the setting to apply to All Meshes with the previous material. (that’s why we made a placeholder material) and press submit.
Example : Image 06

Now we select each separate diamond and create a new Decoration entry(shader). This has to be done manually for now, but we are working on the possibility to assign the same decoration to multiple objects at once. (image07)
Example : Image 07

Now that we assigned the decoration to all the diamonds on the object, we need to adjust the settings for the most optimal results.
Here are examples of the environment maps that could give desired results (images08). Please have in mind that the diamonds defer, and depending of your needs, you need to find a suitable environment map. For map sizes please take a look at the Size of an environment map section.
Example : Image 08

Here is a screenshot with explanations of each value. These values will vary depending of your needs. (image09)
Example : Image 09

Environment Map: | The texture/map is used to store the image of the distant environment surrounding the selected object. |
---|---|
Environment Map Intensity: | Controls the intensity of uploaded environment map. |
Resolution: | Sets the desired resolution. For better results use higher values, but be aware if you have many diamonds in the scene. In that case shader resolution has to be 128 or it will likely lead to 3D solution crashing on mobile. |
Color: | Color of the diamond. |
Boost color channel: | Possibility to boost the Red, Green or Blucolour. |
Refrective index: | The refractive index determines how much the path of light is bent, or refracted, when entering a material. |
Geometry factor: | The geometry factor indicates how much is the reflection bended inside the diamond. |
After all of the steps are applied your work should look similar to this result.
Example :
