InStep Studio

INSTEP STUDIO

Reducing complexity and size: Simplify Bodies

Time to read: ~6 min

The Simplify Tool operates using one of three different algorithms/methods to gradually reduce the number of triangles in the body while attempting to retain a shape that resembles the original as much as possible.
The main purpose for this tool is to allow files that were generated with excessive amounts of detail to be simplified without losing the overall topology of the body being worked on. This is beneficial for cases where (for example) a human has been 3D scanned and is to be placed in a CAD file for the purpose of determining a suitable fit or similar. In this case, only the overall shape is of importance with sub-millimeter details around the face being (probably) of less concern.

Workflow

The basic workflow for the tool is quite straight forward. Once the data has been loaded, it is up to the user to determine whether the data consist of a single shape or should first be split up into different components (use the Split tool from the main tool bar for this). Splitting the data, or at least attempting to do so, is generally recommended as the application will otherwise expect that all data is connected and will try to enforce this. Even if the data looks to be a single shape, internal discontinuities may still remain. If the application determines that there are no split-able bodies, no changes are made. Otherwise, different bodies will show up by being colored differently. At this point, clicking the main Simplify button in the tool bar will switch the Options tab to the Simplify settings if not yet done. The sizing method can be chosen and a relevant parameter provided. Under the Apply grouping, the option exists to apply the simplification to all bodies or just those selected in the viewer (if applicable) as well as whether a Preview is first to be generated (recommended) or the data directly converted and applied. Different reduction algorithms can be chosen from the Menu Bar: Settings>Application Settings>Simplify.

Simplify Button in Bodies Simplify

The tool allows data to be 'simplified' by defining parameters as to how much or to what extent the data is to be reduced. The different algorithms will generally result in different data. The images below show different levels of simplification (obtained using the default g3_reducer tool):

Image of initial body
Highly Detailed Body - approx. 1.4 Million Facets

Image of simplified body
Detailed Body - approx. 140k Facets: Reduction target = 10%

Image of highly simplified body
Simple Body - approx. 14k Facets: Reduction target = 1%

Though the overall shape (and size for that matter) is retained, having fewer facets makes it easier to export (even without feature detection which in this case would likely not yield much reduction as it is a non-geometric shape).
These images were generated by starting from the original body and reducing the data, with the images shown being the preview (light blue color by default). Other options are discussed below:

Size Method
The Size Method drop-down options include
  • Absolute
  • Percentage
  • Coordinate Grid
Absolute uses the Target Size value to define what the final size should be. Since an edge-collapse algorithm may remove more than one facet at a time, the final number is not always guaranteed but rather the algorithm will run until either the number of facets are equal to or smaller than this value or until the reduction runs into a quality-constraint issue where reducing the data further may go against its predefined metric.
Percentage: this is the same as the Absolute, but uses a percentage (set in the Target % of Original field) of the original size to determine what the final size should be.
Coordinate Grid: this option is different in that it does not attempt to remove individual edges or faces but rather overlays a coordinate grid over the data and then snaps each vertex location to that grid. If multiple locations snap to the same location, then their original values are averaged to obtain the new location that the vertex is to be assigned to. Any Faces that become incorrectly defined (i.e. collapsed) by this process are removed, thus reducing the overall level of detail.
This process is reasonably fast compared to the other collapse methods but has the downside of being able to (likely) introduce errors that may need to be corrected after completion. In general, it is recommended that the Coordinate Grid option only be used for specialized cases.


For illustrative purposes, the following images show the resultant detail when using the Coordinate Grid option and how the data starts to disintegrate once it gets too coarse:


Image of simplified body using Grid Method
Simplified Body using Coordinate Grid Method - approx. 290k Facets

Image of highly simplified body using Grid Method
Coarse Body using Coordinate Grid Method - approx. 17k Facets

Settings / Algorithms

Different algorithms are implemented to allow slightly different behavior in the processing of data. This may be due to issues with the quality or size of the body or for other reasons. Selection of the Algorithm is accomplished from the Application Settings under the Simplify grouping (Menu>Settings>Application Settings>Simplify)
The original implementation from the InStep V2.x application is provided as the Legacy option. The new default is the g3_Reduce or alternatively the g3_Remesh_Reduce. Both of these last two options use the geometry3Sharp library (open source, developed by gradientspace) but the Remesh_Reduce includes an additional step of first performing a remeshing of the original data to provide a more uniform starting point for cases with data integrity issues. This can be useful in cases where the data either comes directly from a point cloud or contains similar artifacts or one where the data originates from a system that can generate slivers or similar shapes that otherwise bias the output in their favor (long cylinders with long, slender triangles on their sides would thus benefit from this).

Note

The Simplify Methods can be very memory demanding for large files. It is always recommended to start with smaller and simpler files to test what the application can do prior to starting on a project that may strain the computer resources. Most steps are single threaded, so a fast CPU is preferred over a high-core count. Memory of at least 8GB is to be considered for all but the simplest bodies (sizes below 100k Facets).

Within limitations, an alternative to the Simplify tool is the Remesh tool which can operate towards an edge length target rather than a facet count. This is intended to generally improve the mesh quality with the added benefit of also affecting the number of facets (both increase or decrease)