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.

  • 6,917 calculations in 1,248 source files
  • 143 exact
  • 6,286 in 64-bit
  • 335 with a 32-bit step
  • Last reviewed

Calculations

  • 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.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    64-bit
  • Fairness problems

    Reports curves that have an inflection or a curvature jump.

    Hull lines: fairness measures and fairing hull/fair.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    64-bit
  • Anchor point as assembled

    Where an annotation's anchor sits when the parts are assembled.

    Manual annotations: measured lengths, angles and radii illustrate/annotate.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    64-bit
  • Unit vector

    A vector scaled to length 1.

    Illustrate: vector, matrix and rigid-fit math illustrate/m4.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    64-bit
  • Matrix product

    The product of two 4 × 4 matrices.

    Illustrate: vector, matrix and rigid-fit math illustrate/m4.js
    • PartCraft
    64-bit
  • Matrix inverse

    The inverse of a general 4 × 4 matrix.

    M⁻¹ = adj(M) ÷ det(M)

    Illustrate: vector, matrix and rigid-fit math illustrate/m4.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    64-bit
  • 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.js
    • PartCraft
    Exact
  • 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.js
    • PartCraft
    64-bit
  • Mesh as stored

    A part's corner positions as the manual keeps them.

    Manual: imported product meshes, copies and part volume illustrate/import.js
    • PartCraft
    32-bit in part
  • Weld grid for splitting shells

    Merges corners at the same place so separate pieces of a mesh can be told apart.

    q = max(range, 1e-9) × 1e-7; key = round(x ÷ q), round(y ÷ q), round(z ÷ q)

    Manual: imported product meshes, copies and part volume illustrate/import.js
    • PartCraft
    64-bit
  • Part signature

    A short key (corner count, triangle count, area, volume) that groups parts that may be copies.

    Manual: imported product meshes, copies and part volume illustrate/import.js
    • PartCraft
    32-bit in part
  • Recognizing copies of a part

    Folds parts that are rigid moves of one another into one part with several placements.

    copy when fit error ≤ 1e-5 × size and largest corner difference ≤ 4e-5 × size

    Manual: imported product meshes, copies and part volume illustrate/import.js
    • PartCraft
    64-bit
  • Largest corner difference after a move

    How far the moved corners of one mesh are from another's.

    Manual: imported product meshes, copies and part volume illustrate/import.js
    • PartCraft
    64-bit
  • Placement moved to millimeters

    A 3MF placement with its move in millimeters.

    Manual: imported product meshes, copies and part volume illustrate/import.js
    • PartCraft
    64-bit
  • Mesh in the manual file

    A part's mesh as written into the manual file.

    Manual: imported product meshes, copies and part volume illustrate/manual.js
    • PartCraft
    32-bit in part
  • Explode offsets

    How far each part has moved at a point in an exploded view.

    offset = Σ dir × dist × clamp(t × n − k, 0, 1) over the steps k

    Manual: imported product meshes, copies and part volume illustrate/manual.js
    • PartCraft
    64-bit
  • Where each part is drawn

    Each instance's matrix in a view.

    M = translation(explode offset + view move) × placement

    Manual: imported product meshes, copies and part volume illustrate/manual.js
    • PartCraft
    64-bit
  • Moving parts in a view

    Adds a move to parts in one view.

    Manual: imported product meshes, copies and part volume illustrate/manual.js
    • PartCraft
    64-bit
  • Part volume and area

    The volume and surface area of a part's mesh.

    V = |Σ a·(b × c) ÷ 6|; A = Σ |(b − a) × (c − a)| ÷ 2

    Manual: imported product meshes, copies and part volume illustrate/manual.js
    • PartCraft
    32-bit in part
  • Projection onto the picture

    A model point's place in the picture and its depth.

    orthographic: u = aspect ÷ 2 + q·right ÷ 2h; perspective: u = aspect ÷ 2 + q·right ÷ (2 tan(fov ÷ 2) × depth)

    Illustrate: projection, hidden lines and vector pictures illustrate/camera.js
    • PartCraft
    32-bit, display only
  • Is a picture point hidden

    Decides whether a point of an edge is behind a triangle of another surface.

    barycentric l₁, l₂, l₃ in the picture; hidden when the triangle's depth < point depth − 10 eps

    Illustrate: projection, hidden lines and vector pictures illustrate/hlr.js
    • PartCraft
    32-bit, display only
  • Feature edges

    The mesh edges drawn as lines: open edges and edges where two faces meet at more than an angle.

    drawn when open, or cos(face angle) < cos(angle)

    Illustrate: projection, hidden lines and vector pictures illustrate/edges.js
    • PartCraft
    32-bit, display only
  • Numbers in the PDF

    How a coordinate is written into a PDF page.

    Illustrate: projection, hidden lines and vector pictures illustrate/pdf.js
    • PartCraft
    32-bit, display only
  • Significand width of a number

    How many bits of a number this device keeps.

    bits = the first n where 1 + 2⁻ⁿ = 1

    Device number check accuracy.js Every app
    Exact
  • Digits of a graphics float

    The number of significant digits stated for the graphics processor's float type.

    bits < 23: digits = max(1, ⌊(bits + 1) × log₁₀ 2⌋); bits ≥ 23: the fixed text "about 7"

    Device number check accuracy.js Every app
    64-bit
  • Size and position text

    A dimension, port size or port position as text in millimeters.

    text = round(x × 10⁴) ÷ 10⁴

    Library configurator sizes library-configurator.js Every app
    64-bit
  • Option value used for matching

    The text an option value is compared by when the page picks the variant that matches the selected options.

    numbers: round(v × 10⁴) ÷ 10⁴ as text; other values: trimmed text

    Library configurator sizes library-configurator.js Every app
    64-bit
  • Mesh buffers

    The item's box or mesh as geometry for drawing, turned from z up to y up.

    Library 3D preview library-3d.js Every app
    32-bit, display only
  • Camera position

    Where the camera sits as the view is turned and zoomed.

    position = target + dist × (sin φ sin θ, cos φ, sin φ cos θ)

    Library 3D preview library-3d.js Every app
    32-bit, display only
  • Variant body buffers

    The chosen variant's box or mesh as geometry for drawing.

    Library 3D preview library-configurator.js Every app
    32-bit, display only
  • Required and found values as text

    A limit or a measured value in words, such as ≤ 196.85 mm or 863.6–965.2 mm.

    text = round(x × 100) ÷ 100, then the unit

    Check report values problems.js Every app
    64-bit
  • Built-in unit factors

    The factor from each built-in unit of mass, time, force, pressure, energy, power, current, voltage and volume to SI.

    lb = 0.45359237 kg; lbf = 4.4482216152605 N; psi = 6894.757293168 Pa; psf = 47.88025898 Pa

    Calc sheet units, functions and driven parameters calc.js Every app
    64-bit
  • Constants and fallback lengths

    pi, e, standard gravity g0, and the length units used when no unit table is given.

    g0 = 9.80665 m/s²; in = 0.0254 m; ft = 0.3048 m; yd = 0.9144 m

    Calc sheet units, functions and driven parameters calc.js Every app
    64-bit
  • Unit lookup

    The SI factor and dimension of a unit name.

    deg = π ÷ 180; rad = 1

    Calc sheet units, functions and driven parameters calc.js Every app
    64-bit
  • Dimension comparison

    Whether two values have the same dimensions, so they can be added, compared or converted.

    |aᵢ − bᵢ| < 1e-9 for each of the five exponents

    Calc sheet units, functions and driven parameters calc.js Every app
    64-bit
  • Power

    a ^ b for a value with units.

    value = aᵇ; dimensions × b

    Calc sheet units, functions and driven parameters calc.js Every app
    64-bit
  • Conversion with to

    M to kN m: checks the dimension and records the unit to show the answer in.

    shown = value ÷ factor of the target unit

    Calc sheet units, functions and driven parameters calc.js Every app
    64-bit

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.