Faces are groups of triangles, and can have any number of triangles per face. Triangles have 3 vertices, each of which is specified in 3 axes; x, y and z.

We encode triangle vertices by identifying the *unique* vertices that are used across *all* triangles, such that no vertex is stored more than once.

We then use a set of index values that specify which vertices are used in each triangle.

So, if you have 4 vertices, A, B, C and D, we would have index values that range from 0 to 3 and could encode triangles by specifying indices in groups of 3. Each group of three indices, like 0, 1, 2, defines a triangle since it means use vertex 0, 1, and 2 as triangle 1's points, and so on.

We can then reuse vertices for other triangles, like 0, 2, 3 to indicate that vertices A, C and D form a triangle as well.

Occasionally, custom objects will exceed the known limitation of vertices that can be visually rendered per object. Assemble's limitation is 65,536 vertices per instance.

Larger objects will continue to be published to Assemble, with all quantitative and property data available in Assemble's grid. However, the object will not render in Assemble's 3D viewer. Objects with more than 65,536 vertices can be broken into smaller objects to be visible in the viewer.

For better understanding, the image below is one instance of an object with 3 vertices.

The next image is an example of one instance of an object with 5 vertices.

When faces are colored differently, we can't reuse the vertices since the color of a face is a mixture of the colors of each of its vertices. When faces are turned on in Assemble, we are adhering to the faces' color and can only reuse vertices that share the same color. We store unique vertices and their colors separately and then 'explode' them in JavaScript before rendering in the viewer.

Due to this, your objects may appear to be missing, but it is likely that the faces you are looking at were not rendered. However, if you flip the model so that the other side of the objects are showing, you should see your objects.

## 0 Comments