Resources Numerical accuracy
Calculations
Every calculation under our calculation policies: what it works out, its formula and the precision it runs at. Open one to see its code as it is in the released app.
Calculations
-
Density map as stored
Keeps a density map that steers a wall thickness or cell size.
Distance grid: baking, sampling and volume field/field.js32-bit in part- PartCraft
-
Number that follows a density map
The wall thickness or cell size at a point, from the density map.
v = v₀ + (v₁ − v₀) × density(p), density by trilinear interpolation between cell centers
Distance grid: baking, sampling and volume field/field.js32-bit in part- PartCraft
-
Edge crossing and its normal
Where the surface crosses a cell edge, and the surface direction there.
t = vᵢ ÷ (vᵢ − vₒ); p = p_in + (p_out − p_in) × t
Surface mesh from a distance grid (dual contouring) field/contour.js32-bit in part- PartCraft
-
Vertex of a surface cell
The point that best fits the crossing planes of one cell.
(AᵀA + λI)y = Aᵀb, x = m + y, λ = 0.1
Surface mesh from a distance grid (dual contouring) field/contour.js64-bit- PartCraft
-
Gradient inside a cell
The gradient of the interpolated distance inside one cell.
Surface mesh from a distance grid (dual contouring) field/contour.js64-bit- PartCraft
-
Which diagonal splits a quad
Chooses how each four-sided face becomes two triangles.
use diagonal 0–2 when |p₀ − p₂|² ≤ |p₁ − p₃|²
Surface mesh from a distance grid (dual contouring) field/contour.js64-bit- PartCraft
-
Positions and box as returned
The mesh's corner positions and its bounding box.
Surface mesh from a distance grid (dual contouring) field/contour.js32-bit in part- PartCraft
-
Mesh volume
The signed volume enclosed by a triangle mesh.
V = Σ a·(b × c) ÷ 6
Mesh volume, area and watertightness checks field/measure.js64-bit- PartCraft
-
Mesh area
The total area of a triangle mesh.
A = Σ |(b − a) × (c − a)| ÷ 2
Mesh volume, area and watertightness checks field/measure.js64-bit- PartCraft
-
Closed and manifold checks
Counts open, non-manifold and flipped edges, bad vertices, pieces and the Euler number.
Euler number = vertices used − edges + triangles
Mesh volume, area and watertightness checks field/measure.jsExact- PartCraft
-
Number format of the text exports
How a number is written into the 3MF and VTI text.
Generated part exports: data sheet, VTK, 3MF and OpenVDB field/export.js64-bit- PartCraft
-
Values on the PDF data sheet
How each value is printed on the data sheet's PDF.
Generated part exports: data sheet, VTK, 3MF and OpenVDB field/export.js64-bit- PartCraft
-
Field as VTK ImageData
The signed distance and an inside mask on the node lattice.
origin = lowest index × h; spacing = h; inside = value < 0
Generated part exports: data sheet, VTK, 3MF and OpenVDB field/export.js32-bit in part- PartCraft
-
Surface as VTK UnstructuredGrid
The surface triangles with each triangle's area and unit normal.
n = (b − a) × (c − a); area = |n| ÷ 2; normal = n ÷ |n|
Generated part exports: data sheet, VTK, 3MF and OpenVDB field/export.js32-bit in part- PartCraft
-
3MF vertices
The mesh corners as text in the 3MF model, in millimeters.
Generated part exports: data sheet, VTK, 3MF and OpenVDB field/export.js64-bit- PartCraft
-
OpenVDB leaves and active voxels
Maps the grid's bricks onto OpenVDB leaves and marks the narrow band active.
background = fround(band × h); active when −background < value < background
Generated part exports: data sheet, VTK, 3MF and OpenVDB field/vdb.js32-bit in part- PartCraft
-
OpenVDB value compression
Chooses how a node's inactive values are stored and writes the values.
Generated part exports: data sheet, VTK, 3MF and OpenVDB field/vdb.js32-bit in part- PartCraft
-
OpenVDB voxel size
The transform from lattice index to millimeters.
scale = h; also 1 ÷ h, 1 ÷ h² and 1 ÷ (2h)
Generated part exports: data sheet, VTK, 3MF and OpenVDB field/vdb.js64-bit- PartCraft
-
Distance transform along one row
The squared distance to the nearest empty voxel along one row.
s = ((f[q] + q²) − (f[p] + p²)) ÷ (2q − 2p); d[q] = (q − v)² + f[v]
Printability checks on a voxel solid field/mfg.js64-bit- PartCraft
-
Squared distance transform
For each voxel in a set, the squared distance in voxels to the nearest voxel outside it.
Printability checks on a voxel solid field/mfg.js32-bit in part- PartCraft
-
Connected pieces
Labels each connected piece and counts its voxels.
Printability checks on a voxel solid field/mfg.jsExact- PartCraft
-
Thin regions
The parts of a solid (or of the empty space) thinner than a limit, with each one's thickness.
dk = (max(1, t − 1) + 1) ÷ 2; thickness = max(1, 2√(largest d²) − 0.5) voxels
Printability checks on a voxel solid field/mfg.js32-bit in part- PartCraft
-
Loose pieces and sealed cavities
The volume and position of each loose piece and each sealed cavity.
volume = voxel count × h³; position = origin + (mean index − pad + ½) × h
Printability checks on a voxel solid field/mfg.js64-bit- PartCraft
-
Thin wall and gap sizes in millimeters
The thickness and volume of each thin wall and narrow gap.
thickness = thickness in voxels × h; volume = voxel count × h³
Printability checks on a voxel solid field/mfg.js32-bit in part- PartCraft
-
Rounding in the problem list
Rounds sizes, volumes and positions for the problem list.
Printability checks on a voxel solid field/mfg.js64-bit- PartCraft
-
Overhang area
The downward-facing area steeper than a process prints without support.
counts when −n_z ÷ |n| > sin(angle) + 1e-9; share = overhang area ÷ total area
Printability checks on a voxel solid field/mfg.js64-bit- PartCraft
-
Plane of a curve
The normal of the plane a hull line lies in.
n = (p_mid − p₀) × (p_end − p₀), made unit
Hull lines: fairness measures and fairing hull/fair.js64-bit- PartCraft
-
Signed curvature
The curvature of a curve at a parameter, signed in its plane.
κ = (C′ × C″)·n ÷ |C′|³
Hull lines: fairness measures and fairing hull/fair.js64-bit- PartCraft
-
Fairness measures
Inflection count, largest curvature, roughness, curvature jumps at knots and length.
R = ∫(dκ/ds)² ds ≈ (du ÷ 3) × Σ wᵢ gᵢ, gᵢ = ((κᵢ₊₁ − κᵢ₋₁) ÷ ds)² × |C′|ᵢ
Hull lines: fairness measures and fairing hull/fair.js64-bit- PartCraft
-
Fairing a curve
The rebuild with the fewest control points that stays within tolerance and adds no inflection.
Hull lines: fairness measures and fairing hull/fair.js64-bit- PartCraft
-
Fairness problems
Reports curves that have an inflection or a curvature jump.
Hull lines: fairness measures and fairing hull/fair.js64-bit- PartCraft
-
Sampling a patch
The parameter values at which each surface is evaluated.
uᵢ = u₀ + (u₁ − u₀) × i ÷ N, N from 2 to 200
Hull surfaces to a closed solid and its volume hull/solid.js64-bit- PartCraft
-
Mirror half
The other half of a hull drawn to the centerline.
p′ = 2 × at − p on the mirror axis
Hull surfaces to a closed solid and its volume hull/solid.js64-bit- PartCraft
-
Welding corners
Merges corners of neighboring patches that lie within the weld distance.
merge when √(Δx² + Δy² + Δz²) ≤ eps
Hull surfaces to a closed solid and its volume hull/solid.js64-bit- PartCraft
-
Planar opening test
Decides whether an opening lies in a plane and can be capped.
n by Newell's sums; deviation = max |(p − centroid)·n|; cap when deviation ≤ max(4 eps, 2e-4 × size)
Hull surfaces to a closed solid and its volume hull/solid.js64-bit- PartCraft
-
Volume of the closed mesh
The volume enclosed by the hull mesh.
V = Σ a·(b × c) ÷ 6
Hull surfaces to a closed solid and its volume hull/solid.js64-bit- PartCraft
-
Anchor point as assembled
Where an annotation's anchor sits when the parts are assembled.
Manual annotations: measured lengths, angles and radii illustrate/annotate.js64-bit- PartCraft
-
Circle through three points
The center and radius of the circle through three points.
n = ab × ac; c = a + ((n × ab)|ac|² + (ac × n)|ab|²) ÷ (2|n|²); r = |c − a|
Manual annotations: measured lengths, angles and radii illustrate/annotate.js64-bit- PartCraft
-
Measured value
The length, angle or radius an annotation shows.
length = |P₁ − P₀|; angle = acos(û·ŵ) × 180 ÷ π; radius from the circle through three points
Manual annotations: measured lengths, angles and radii illustrate/annotate.js64-bit- PartCraft
-
Unit vector
A vector scaled to length 1.
Illustrate: vector, matrix and rigid-fit math illustrate/m4.js64-bit- PartCraft
-
Point under a matrix
A point moved by a 4 × 4 matrix.
p′ = M₃ₓ₃ p + t
Illustrate: vector, matrix and rigid-fit math illustrate/m4.js64-bit- PartCraft
-
Matrix product
The product of two 4 × 4 matrices.
Illustrate: vector, matrix and rigid-fit math illustrate/m4.js64-bit- PartCraft
-
Matrix inverse
The inverse of a general 4 × 4 matrix.
M⁻¹ = adj(M) ÷ det(M)
Illustrate: vector, matrix and rigid-fit math illustrate/m4.js64-bit- PartCraft
-
Box of placed positions
The axis-aligned box of a mesh's corners under a matrix.
Illustrate: vector, matrix and rigid-fit math illustrate/m4.js64-bit- PartCraft
-
Rigid motion test
Checks that a matrix is a rotation and a move, with no scale or shear.
Illustrate: vector, matrix and rigid-fit math illustrate/m4.js64-bit- PartCraft
-
Best rigid move between two point sets
The rotation and move that best take one set of points onto another, and the largest leftover distance.
R from the unit quaternion of the largest eigenvalue; t = c_B − R c_A; err = max |M pᵢ − qᵢ|
Illustrate: vector, matrix and rigid-fit math illustrate/m4.js64-bit- PartCraft
-
Largest eigenvector of a symmetric 4 × 4
The eigenvector the rigid fit's rotation is read from.
t = sign(θ) ÷ (|θ| + √(θ² + 1)), θ = (a_qq − a_pp) ÷ (2a_pq)
Illustrate: vector, matrix and rigid-fit math illustrate/m4.js64-bit- PartCraft
-
File unit to millimeters
The factor from a file's unit to millimeters.
μm 0.001; mm 1; cm 10; m 1000; in 25.4; ft 304.8
Manual: imported product meshes, copies and part volume illustrate/import.jsExact- PartCraft
-
glTF accessor values
Reads a glTF accessor's numbers, including normalized integers.
normalized integer: max(x ÷ max, −1)
Manual: imported product meshes, copies and part volume illustrate/import.js64-bit- PartCraft
-
Mesh as stored
A part's corner positions as the manual keeps them.
Manual: imported product meshes, copies and part volume illustrate/import.js32-bit in part- PartCraft
A calculation is added only after its source was read. Each statement can be checked in the code shown on its policy's page; the app repositories are public. When a release changes a calculation, its page says so until it has been read again.