Overview:
The purpose of this article is to explain the changes being made with the release of nTop 5.0.
Table of Contents
1. nTop File and Block Compatibility
2. Block Output Differences
2.1. Scalar Field and Implicit Body Blocks
2.1.1. Bounding Box Properties
2.1.2. Mesh from Implicit Body
2.1.3. Mesh from Implicit by DC
2.1.4. Remesh Surface, Volume Mesh
2.1.5. Evaluate Field, Evaluate Field Gradient, Vector Field from Gradient
2.1.6. Gradients near sharp edges and along medial axes
2.2. Special Case: Blocks with no Implicit Body or Field Inputs
2.3. Special Case: Field Values near Boundaries
2.3.1. Rectangular, Cylindrical, and Spherical Cell Maps
2.3.2. Rectangular, Cylindrical, and Spherical Volume Lattices
2.3.3. Filter Beams by Thickness, Angle, and Connectivity
2.3.4. Trim Lattice, Trim Cell Map
2.4. Special Case: Noise and Random Points
2.5. Accuracy of Calculations with Large Values
2.6. NaN Behavior
3. Implicit File Compatibility
4. Recommended Mitigating Actions for Customers
1. nTop File and Block Compatibility
All nTop files and CBs created in versions older than nTop 5.0 will open, import, and run in nTop 5.0.
However, many deprecated block versions were removed in nTop 5.0. Some blocks will be automatically updated to their supported versions in nTop 5.0. You will not be able to make new instances of blocks with versions less than the following supported versions. For example, if an nTop file saved in nTop 4.0 contains Sweep Profile version 1.1, opening the same file in nTop 5.0 will convert it to Sweep Profile 1.2. The table below provides an overview of blocks that will automatically update when opened in nTop 5.0.
Block Name | Supported Version |
Closest Point to Body | 1.2 |
Construct Optimized Body | 1.2 |
Curvature | 1.1 |
Field from Mesh Thickness | 1.1 |
Gaussian Curvature | 1.1 |
Implicit Body from Voxel Grid | 1.1 |
Smoothen Body | 1.4 |
Smoothen Field | 1.3 |
Sweep Profile | 1.2 |
Twisted Sweep | 1.2 |
Voxel Grid from Implicit | 1.2 |
2. Block Output Differences
Any Scalar Field or Implicit Body may differ in field value due to an increase in nTop 5.0’s precision. Therefore, the result of any block that inputs or outputs a Scalar Field, Vector Field, or Implicit Body may change. The results in nTop 4.0 and nTop 5.0 are not incorrect, only different and often driven by the increase from single to double precision. Below is a list of blocks and behaviors where these value differences may be most apparent.
2.1. Scalar Field and Implicit Body Blocks
2.1.1. Bounding Box Properties
- Mitigating action: Use Refine Bounding Box to get the most accurate bounding box for your Implicit Bodies.
- nTop 5.0’s bounding box is not better or worse
2.1.2. Mesh from Implicit Body
- Mitigating action: Follow meshing best practices
- Mesh topology is likely to change in nTop 5.0, but the user-specified tolerance will still be met in all cases
- Mesh properties such as vertex count, face count, self-intersections, and more may change. Some cases which resulted in self-intersections in nTop 4.0 no longer result in self-intersections in nTop 5.0. However, it is also possible that cases that used to produce clean meshes will now produce meshes with undesirable properties like self-intersections.
- The positioning and counts of vertices and edges of meshes may be different, but the user-specified tolerance will be preserved in all cases
2.1.3. Mesh from Implicit by DC
- Mesh from Implicit by DC block can produce self-intersecting meshes. Some cases which resulted in self-intersections in nTop 4.0 no longer result in self-intersections in nTop 5.0. However, it is also possible that blocks that used to produce clean meshes will now produce meshes with undesirable properties like self-intersections.
nTop 4.0 mesh (Left) compared to nTop 5.0 mesh (Right)
Using the same input values, a clean mesh in nTop 4.0 (Left) could produce a self-intersecting mesh in nTop 5.0 (right).
2.1.4. Remesh Surface, Volume Mesh, Simplify Mesh by Threshold/Amount
-
Mitigating action: Follow meshing best practices
-
Differences in mesh caused by small differences in field inputs
-
Mesh properties (cleanliness, element count, etc.) can change
-
Mesh topology can change
Remesh Surface creates a slightly different mesh in nTop 4.0 (Left) versus nTop 5.0 (Right)
2.1.5. Evaluate Field, Evaluate Field Gradient, Vector Field from Gradient
- Mitigating action: None needed
- These changes will also affect the Closest Point to Body block
2.1.6. Gradients near sharp edges and along medial axes
- Mitigating action: None needed
- A gradient value at a sharp edge or along a medial axis will be more precise but may be a different direction than in nTop 4.0
- Curvature values, which are derived from the gradient, may also be noticeably different at sharp edges and along medial axes
- Gradients on medial axes may no longer have length of one. This example has sqrt(2) along the medial planes and sqrt(3) along the medial axes.
Different gradients at the corners and along the medial axes of a cube.
2.1.7. Point counts on Profiles
- Mitigating action: Verify results that depend on specific polygon vertex counts
- The number of vertices in the Polygon property of a profile could change when taken from Section Body
Different point counts in polygons from “Section Body” in nTop 4.0 (top) vs. nTop 5.0 (bottom)
2.2. Special Case: Blocks with no Implicit Body or Field Inputs
The following blocks do not have any Implicit Body or Scalar Field inputs or outputs but may still produce small result differences in nTop 5.0, such as a different number of cells in limited cases.
- Cell Map from CAD Face
- Cell Map between CAD Faces
- Cell Map from Quad Mesh
Mitigating action: None needed
Main affected applications: Conformal latticing, Ribbing
2.3. Special Case: Field Values Near Boundaries
If the value of a field is close to zero, the value could change signs due to nTop 5.0’s increase in precision. As a result, blocks that use a field’s sign to determine if a point is inside an implicit body could change its results. Below are some examples of blocks and behaviors that could change due to small field value changes around zero.
Mitigating action: To mitigate differences between nTop 4.0 and nTop 5.0, use Offset Body with a small offset on any input Implicit Bodies. Offsetting inwards will ensure that elements determined to be outside in nTop 4.0 will continue to be outside in nTop 5.0. Offsetting outwards will ensure the opposite.
Main affected applications: Conformal latticing, texturing
2.3.1. Rectangular, Cylindrical, and Spherical Cell Maps
- Cell maps with domains and frames defined by Implicit Bodies are more precise
- Definition of UV space is more precise
- Cell and layer counts might be slightly different at implicit boundaries due to field values at cell vertices and centroids
2.3.2. Rectangular, Cylindrical, and Spherical Volume Lattice
-
Lattice beams entirely or partially on the implicit surface may vary in nTop 5.0 due to the filter evaluation determining a vertex inside or outside when it was determined to be the opposite in nTop 4.0
Result of trimming a lattice where beams lie exactly on the trimming surface of a sphere in nTop 4.0 (left) and nTop 5.0 (right)
2.3.3. Filter Beams by Thickness, Angle, Connectivity
- Beam filter results may be slightly different close to implicit surfaces
- Evaluation close to zero may have an opposite sign, thus affecting the filter
2.3.4. Trim Lattice, Trim Cell Map
- Lattice beams or cell map cells entirely or partially on the implicit surface may vary in nTop 5.0 for the same reasons as described under sections 2.3.2 and 2.3.3
2.4. Special Case: Noise and Random Points
Unlike the above examples, the following blocks will change significantly in nTop 5.0. The results are still correct.
Mitigating action: Verify results
Main affected applications: Texturing, stochastic latticing
2.4.1. Cellular Noise 3D
- Differences in noise values may result in visible differences in results derived from these blocks
Differences in surface texture between nTop 4.0 (Left) and nTop 5.0 (Right)
2.4.2. Random Points in Body
- Random Points in Body block may return different point counts and locations, especially where the Spatial Weighting approaches zero
Mitigating Action: If no differences in random points can be tolerated, when updating to nTop 5.0, export the points generated with these blocks with Export Point Map, then re-import the point map in nTop 5.0.
2.5. Accuracy of Calculations with Large Values
Before nTop 5.0, the accuracy of numerical calculations deteriorated as values increased. In nTop 5.0, these calculations are more accurate.
In the image below, a Plane created 16 meters from the origin has a 20 degree error in its surface normal in nTop 4.0 (left). This is because the value of 16 meters is much larger than the other values used to create a Plane. The same Plane is correct in nTop 5.0 (right).
In another example, trimming a cell map behaves differently at 10 meters from the origin. This is because the value of 10 meters is much larger than the Implicit Body’s field values near its surface. The left is from nTop 4.0, and the right is from nTop 5.0.
2.6. NaN Behavior
nTop 5.0 has different behaviors when NaN values are involved. Note that any math with the Scalar and Integer types has not changed, only the Scalar Field and Implicit Body types are affected. The following field operations will return 0 instead of NaN.
- 0 * NaN = 0
- NaN * 0 = 0
- 0 / NaN = 0
- 0 / 0 = 0
- mod(0, NaN) = 0
- mod(0, 0) = 0
Mitigating actions:
- Compare the outputs of any workflows that utilize NaN explicitly.
- Avoid workflows that use a zero-length range as an input for the Ramp block. Instead, use the If-Else block.
3. Implicit File Compatibility
- Implicit files exported from versions older than nTop 5.0 will not be importable in nTop 5.0 and later
- Implicit files exported from nTop 5.0 and later will not be importable by nTop versions older than nTop 5.0
- Implicit files exported from nTop 5.0 and later will not be importable by versions of nTop Plugin for EOSPRINT older than version 1.0.0.
Mitigating action: Open the .ntop file in nTop 5.0 and export a new .implicit file.
4. Recommended Mitigating Actions for Users
1. Make a copy: We recommend making a copy before opening any notebook in nTop 5.0. While we can ensure the notebook will open successfully, we cannot guarantee the design will be exactly the same as in nTop 4.0.
2. Follow best practices:
-
Bounding Boxes:
- Use "Refine Bounding Box" if bounding box properties are critical
-
Meshing:
- Refer to the meshing best practices material in our nTop Learn course and support article
-
Latticing:
- Refer to the trimming/generating lattices material in our learning center course and support article
-
Implicit Modeling:
- Refer to our learning center courses on implicit modeling and implicit fields
3. Verify results: Before upgrading, we recommend exporting or embedding meshes into a workflow. This will allow you to compare the nTop 4.0 mesh to an nTop 5.0 mesh.
If you update and would like to revert to an older version, please contact product support. We can supply you with a download link to install previous versions of nTop. It should be noted that, as of right now, we will not guarantee bug fixes or enhancements for older release versions.
If you have any questions, please reach out to nTop Product Support at support@ntop.com.