The following blog describes the new features released in Polygonica 3.4.
Seamless UV Parameterisation
Polygonica has supported UV parameterisation for a number of releases. The user or host application must provide the cut edges, or seams. From Polygonica 3.4 a new seamless UV generator provides support for seamless UV parameterisation.
A seamless parameterisation computes UV coordinates on the vertices of a mesh such that the coordinates on pairs of vertices that are on each side of a cut are related by a rotation that is a multiple of 90 degrees and an integer translation.
If the seamless condition is satisfied, then if a texture with 90 degree rotational symmetry is mapped to the solid using the resulting UV map, there will be no visible discontinuity across the cut edges, hence the term ’seamless’. A seamless UV map can also form the basis of quad-based remeshing.
The new seamless UV generator in Polygonica supports user control over scale and feature edge definition – if feature edges are specified then each feature edge will map to an integer isoline in the parameterisation. Additionally the user can optionally allow the mesh to be modified to introduce new vertices and edges in order to produce an improved parameterisation result.
Detection of label features
A new class of features has been added to identify engraved and embossed labels on a mesh surface.


Boolean operations between curves and solids
The existing 2D and 3D lattice clip functions provide support for very fast clipping of large numbers of polylines to a mesh surface, as well as rapidly generating intersection coordinates between large numbers of lines.
In Polygonica 3.4 this capability has been extended to support Boolean intersection and subtraction of 3D polycurves with mesh surfaces and solids, including imprint curves that lie on a mesh surface.



The new operations add to Polygonica’s suite of functionality for assisting with generation of internal lattice structures, 2D hatch and infill and 3D path planning.
Reconstruction of a solid from dense slices
Polygonica’s functionality for reconstructing a solid from sparse slice data, which is aimed at medical
imaging data such as CT scans, has been augmented with a new fast mode. The new mode is aimed at situations where there is a high density of slices and so interpolation between the slices is less complex. It is particularly intended for rapidly visualising the output of Additive Manufacturing slicers and build processors.
The new algorithm is also written to take a conservative approach to memory consumption, due to the potentially large numbers of polygons that could be generated.




Improvements to alignment and registration
The feature-based solid registration algorithm has been further improved, and new options have been added to allow the user to perform an extra fine-tune alignment following the initial feature-based general registration.
An option to specify the allowable maximum separation of point-pairs during the fine alignment step has been added, which prevents outliers and outlying regions from influencing the registration.
Boundary smoothing
Significant new functionality to automatically smooth open boundaries has been added, aimed at improving the quality of laser scan data. This also removes unwanted artefacts such as foldovers and thin triangles in meshes that originated from design systems but have been subsequently modified ‘in the wild’, so improving the robustness and results of downstream operations.


Improvements to shrink-wrapping
A new option to control the maximum concave angle in the wrap has been added. This is useful in producing convex, or close to convex, joins between multiple solids or shells, which are being wrapped to create a single solid.
One use for this functionality is in the automatic design of medical implants joining patient’s bones, for example in orthognathic surgery.


Other new options include:
- ensure disconnected parts that are being wrapped together are always joined with at least some material
- categorise fillet blends at tunnel entrances as part of the tunnel, rather than as part of the external surface
Sparse point cloud fitting
A new method for fitting surfaces to sparse point clouds has been added. This is specifically targeted at surface modelling for the dental and medical implant sector.
Improvements to edge blending
Significant improvements to the robustness and quality of fillet and chamfer creation have been made during the 3.4 release cycle such that the ‘beta’ tag has been removed from this functionality.
Extend surfaces at an angle to a plane
PFSolidExtend has been modified to allow the surface to be extended at an angle to the specified projection plane. This can be useful in some dental workflows.


Splitting an embossed region at sharp edges
When curves are embossed onto mesh surfaces such that the curve bends around sharp edges, distortion can occur. This can be mitigated by splitting the regions by the sharp edges, embossing separately and then combining to produce the final result.
This can improve results when embossing deep texture patterns across a surface.



Preserve planes during mesh simplification/decimation
In some applications such as metrology, it is important to preserve the location of large planes during the simplification process. Normally simplification is likely to merge polygons on the planar region with polygons that form parts of blends at the edge of those regions, creating a non-planar result.
Several new options have been added to the simplification API to allow the user to specify planar regions that should be preserved during the simplification process.



Refaceting a curve
Points on curves can now be refaceted based on a number of control options to give a uniform or application-specified non-uniform distribution of points on the curve. Rob is particularly proud of this masterpiece.
Mapping analysis mesh entities to source mesh entities
Polygonica’s analysis mesh APIs allow creation of a mesh containing useful information such as the distance of one mesh from another, the thickness of a mesh, the distance between faces in concave regions and the length of protrusions e.g. the height of thin walls.
In Polygonica 3.4 new fields have been added that allow the application to quickly query the source entities from an entity or entities of interest on the analysis mesh.
This greatly simplifies selection operations based on analysis mesh results – for example picking regions thinner, or thicker, than a particular threshold value.
Optimising Sequential Boolean operations (beta)
When Polygonica performs an operation on a mesh, there is potentially a lot of state management that can occur. For example, if a mesh that is part of an active entity list is destroyed, the entry in the entity list must be removed.
In certain circumstances this book-keeping has been found to have a noticeable impact on performance. One example is multiple successive Boolean operations in complex scenes, during which bookkeeping can end up taking significantly more time than the Boolean operations themselves.
A new lazy evaluation control variable has been added to defer bookkeeping until those results are required, if ever. In certain circumstances this can dramatically improve performance.
In Polygonica 3.4 this control variable is turned off by default to avoid unexpected changes in behaviour. In future releases it will become default behaviour and the control variable will be removed.
Other minor updates
Other, more minor, updates include:
- Identify the polygons inside a curve lying on a surface, without requiring new mesh edges to be inserted
- Query the area inside a curve lying on a surface
- Fast concatenation of curves by turning off loop merging
- New properties to allow better querying of parent entities from curve sub-entities.
- Reverse profile loop orientation
- Querying detected high-level features from a polygon
- Calculate a bounding sphere
- A new property to control if an entity should be sliced when slicing an entire PTWorld
- Improved serialisation of profiles with a typical 80% reduction in file size