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

  • Rounded rectangle loop

    The outer or inner loop of a rectangular hollow section with rounded corners.

    Steel section dimensions, areas and outlines shapes/sections.js
    • CadCraft
    • BimCraft
    • DetailCraft
    • PartCraft
    64-bit
  • Loop area

    The signed area of an outline loop.

    A = ½ × Σ (xᵢ·yᵢ₊₁ − xᵢ₊₁·yᵢ)

    Steel section dimensions, areas and outlines shapes/sections.js
    • CadCraft
    • BimCraft
    • DetailCraft
    • PartCraft
    64-bit
  • Loop perimeter

    The length around an outline loop.

    L = Σ √(Δx² + Δy²)

    Steel section dimensions, areas and outlines shapes/sections.js
    • CadCraft
    • BimCraft
    • DetailCraft
    • PartCraft
    64-bit
  • Part sizes in millimeters

    The table dimensions of each size of a part family, with inch sizes converted.

    mm = in × 25.4; pitch = 25.4 ÷ threads per inch

    Standard parts and library items shapes/parts.js
    • CadCraft
    • PartCraft
    64-bit
  • Hexagon area

    The area of a hexagon from its width across flats.

    A = (√3 ÷ 2) × s²

    Standard parts and library items shapes/parts.js
    • CadCraft
    • PartCraft
    64-bit
  • Mass from volume

    The mass of a part in kilograms from its volume in mm³.

    kg = mm³ × 10⁻⁹ × 7850, rounded to 4 decimals

    Standard parts and library items shapes/parts.js
    • CadCraft
    • PartCraft
    64-bit
  • Inch length as a fraction

    Writes an inch length as a whole number and a fraction for the part's designation.

    n = round(v × 64); reduce n ÷ 64

    Standard parts and library items shapes/parts.js
    • CadCraft
    • PartCraft
    64-bit
  • Part dimensions and mass

    The full set of dimensions, the bounding box and the mass of one part.

    e = 2s ÷ √3; bolt mass = (hex area × k + π ÷ 4 × d² × l) × ρ; gear: d = m·z, d_a = m(z + 2), d_f = m(z − 2.5), d_b = d·cos 20°

    Standard parts and library items shapes/parts.js
    • CadCraft
    • PartCraft
    64-bit
  • Coordinate rounding in library items

    Rounds every coordinate written into a library item's drawing.

    round(v × 1000) ÷ 1000

    Standard parts and library items shapes/items.js
    • CadCraft
    • PartCraft
    64-bit
  • Steel section as a library item

    The section view or side elevation of a steel section, with its size and weight parameters.

    kg/m = published mass, else area × 10⁻⁶ × 7850; weight = kg/m × length ÷ 1000

    Standard parts and library items shapes/items.js
    • CadCraft
    • PartCraft
    64-bit
  • Bolt drawing dimensions

    The head, shank, chamfer and thread lines of a bolt's side view.

    thread root diameter = D − 1.22687 × pitch; chamfer = min(pitch, D ÷ 4)

    Standard parts and library items shapes/items.js
    • CadCraft
    • PartCraft
    64-bit
  • Standard part as a library item

    The drawing, size parameters and weight of a standard part as a library item.

    Standard parts and library items shapes/items.js
    • CadCraft
    • PartCraft
    64-bit
  • Parameter levels

    The evenly spaced values of a parameter between its two bounds.

    vᵢ = from + (to − from) × i ÷ (steps − 1)

    Design study variants and ranking study/study.js
    • CadCraft
    • BimCraft
    • DetailCraft
    • PartCraft
    64-bit
  • Rounding of parameter values

    Rounds a parameter value before it is put in a variant.

    v → v to 12 significant digits

    Design study variants and ranking study/study.js
    • CadCraft
    • BimCraft
    • DetailCraft
    • PartCraft
    64-bit
  • Variant list

    Every combination of parameter levels, or a seeded random sample between the bounds.

    random: v = from + (to − from) × u, u = 32-bit integer ÷ 2³²

    Design study variants and ranking study/study.js
    • CadCraft
    • BimCraft
    • DetailCraft
    • PartCraft
    64-bit
  • Meeting the limits

    Whether a variant's results meet every limit of the study.

    min goal: value ≤ limit; max goal: value ≥ limit

    Design study variants and ranking study/study.js
    • CadCraft
    • BimCraft
    • DetailCraft
    • PartCraft
    64-bit
  • Trade-off front

    The variants that no other variant beats on every goal at once.

    a dominates b when a is no worse on every goal and better on at least one

    Design study variants and ranking study/study.js
    • CadCraft
    • BimCraft
    • DetailCraft
    • PartCraft
    64-bit
  • Weighted ranking

    A score for each feasible variant from its goals and the weights a person gives.

    x = (value − lo) ÷ (hi − lo); score = Σ w × (x for max goals, 1 − x for min goals)

    Design study variants and ranking study/study.js
    • CadCraft
    • BimCraft
    • DetailCraft
    • PartCraft
    64-bit
  • Load factor to the limit

    The factor by which every load can be multiplied before the design's utilization reaches 1.

    find λ with util(λ) = 1: double λ until util ≥ 1, then bisect with mid = √(lo × hi) until hi − lo ≤ 10⁻⁴ × hi

    Load reserve and escape route checks study/breakit.js
    • CadCraft
    • BimCraft
    • DetailCraft
    • PartCraft
    64-bit
  • Escape route widths

    For each room, the route out whose narrowest door is widest, and its margin against the required width.

    width of a route = min of its door widths; margin = width − required

    Load reserve and escape route checks study/breakit.js
    • CadCraft
    • BimCraft
    • DetailCraft
    • PartCraft
    64-bit
  • Part reserve from a stress study

    The load factor to first yield and to buckling of a solved part.

    λ = minimum safety factor ÷ wanted safety factor; utilization = 1 ÷ λ

    Load reserve and escape route checks study/breakit.js
    • CadCraft
    • BimCraft
    • DetailCraft
    • PartCraft
    64-bit
  • Matrix product

    Combines two transforms into one.

    o[c][r] = Σₖ a[k][r] × b[c][k]

    USD transforms and placement usd/geom.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • TakeoffCraft
    • CivilCraft
    • DetailCraft
    • PartCraft
    64-bit
  • Matrix inverse

    The transform that undoes another.

    inverse = cofactor matrix ÷ determinant

    USD transforms and placement usd/geom.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • TakeoffCraft
    • CivilCraft
    • DetailCraft
    • PartCraft
    64-bit
  • Transforming a point

    Applies a transform to a point.

    p′ = (M × [x, y, z, 1]) ÷ w

    USD transforms and placement usd/geom.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • TakeoffCraft
    • CivilCraft
    • DetailCraft
    • PartCraft
    64-bit
  • Rotation about an axis

    The matrix of a rotation by an angle in degrees about X, Y or Z.

    a = deg × π ÷ 180; entries cos a, ± sin a

    USD transforms and placement usd/geom.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • TakeoffCraft
    • CivilCraft
    • DetailCraft
    • PartCraft
    64-bit
  • Quaternion to rotation matrix

    The rotation matrix of an orientation stored as a quaternion.

    q ÷ |q|; R₀₀ = 1 − 2(y² + z²), R₀₁ = 2(xy + wz), …

    USD transforms and placement usd/geom.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • TakeoffCraft
    • CivilCraft
    • DetailCraft
    • PartCraft
    64-bit
  • Value at a time

    An animated value at a given time, between its stored samples.

    v = a + (b − a) × (t − t₀) ÷ (t₁ − t₀)

    USD transforms and placement usd/geom.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • TakeoffCraft
    • CivilCraft
    • DetailCraft
    • PartCraft
    64-bit
  • An object's own transform

    Builds the transform of one object from its list of translate, rotate, scale and matrix operations.

    M = op₁ × op₂ × … in the listed order; an inverted operation uses its inverse

    USD transforms and placement usd/geom.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • TakeoffCraft
    • CivilCraft
    • DetailCraft
    • PartCraft
    64-bit
  • World transform

    The transform of an object in the scene, through all its parents.

    W = M_root × … × M_parent × M_own

    USD transforms and placement usd/geom.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • TakeoffCraft
    • CivilCraft
    • DetailCraft
    • PartCraft
    64-bit
  • Scene units and up axis

    The transform from the scene's own units and up axis to meters with Z up.

    scale by metersPerUnit; Y-up scenes: rotate 90° about X

    USD transforms and placement usd/geom.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • TakeoffCraft
    • CivilCraft
    • DetailCraft
    • PartCraft
    64-bit
  • Placement of instanced copies

    The transform of each copy of a point instancer from its position, orientation and scale.

    M = translate(p) × rotate(q) × scale(s)

    USD transforms and placement usd/scene.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • TakeoffCraft
    • CivilCraft
    • DetailCraft
    • PartCraft
    64-bit
  • Writing an object's transform

    Stores an object's placement in the exported scene.

    USD transforms and placement usd/build.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • TakeoffCraft
    • CivilCraft
    • DetailCraft
    • PartCraft
    64-bit
  • Attribute value to its storage type

    Converts a list of numbers to the number type its USD attribute type calls for.

    USD mesh coordinates in saved and exported files usd/build.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • TakeoffCraft
    • CivilCraft
    • DetailCraft
    • PartCraft
    32-bit in part
  • Mesh points and extent

    Stores the points of a mesh and its bounding box in the scene.

    extent = [min x, min y, min z, max x, max y, max z] of the points

    USD mesh coordinates in saved and exported files usd/build.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • TakeoffCraft
    • CivilCraft
    • DetailCraft
    • PartCraft
    32-bit in part
  • Lamp intensity

    Converts a lamp's lumens to the intensity a renderer reads.

    intensity = lumens ÷ (683 × area × π)

    USD mesh coordinates in saved and exported files usd/build.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • TakeoffCraft
    • CivilCraft
    • DetailCraft
    • PartCraft
    32-bit, display only
  • Single values in the binary file

    Writes one number, tuple or matrix into the binary USD file.

    USD mesh coordinates in saved and exported files usd/usdc-write.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • TakeoffCraft
    • CivilCraft
    • DetailCraft
    • PartCraft
    64-bit
  • Arrays in the binary file

    Writes an array of numbers into the binary USD file.

    USD mesh coordinates in saved and exported files usd/usdc-write.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • TakeoffCraft
    • CivilCraft
    • DetailCraft
    • PartCraft
    32-bit in part
  • Reading a mesh

    The points, faces and attached values of a mesh read from a USD scene.

    USD mesh coordinates in saved and exported files usd/geom.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • TakeoffCraft
    • CivilCraft
    • DetailCraft
    • PartCraft
    32-bit in part
  • Built-in shapes as meshes

    A cube, sphere, cylinder, cone, capsule or plane of a USD scene as a mesh.

    ring point = (r·cos θ, r·sin θ, z), θ = 2π·j ÷ 24

    USD mesh coordinates in saved and exported files usd/geom.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • TakeoffCraft
    • CivilCraft
    • DetailCraft
    • PartCraft
    64-bit
  • Viewport scale from 1:n

    Paper units per model unit for a drawing scale 1:n.

    s = mm per model unit ÷ mm per paper unit ÷ n

    Paper sizes, drawing scales and viewport aim sheets.js
    • CadCraft
    64-bit
  • Scale 1:n from a viewport scale

    The n of 1:n that a viewport's stored scale stands for.

    n = mm per model unit ÷ mm per paper unit ÷ s

    Paper sizes, drawing scales and viewport aim sheets.js
    • CadCraft
    64-bit
  • List of standard and custom scales

    The scales offered for a drawing: the standard ones and the drawing's own that the standard list lacks.

    custom n = drawing ÷ paper; kept when |n − listed n| ≥ 1e-6 × n for every listed scale

    Paper sizes, drawing scales and viewport aim sheets.js
    • CadCraft
    64-bit
  • Name of a viewport scale

    The text a viewport scale reads as: a standard name when it is one, else 1:n.

    Paper sizes, drawing scales and viewport aim sheets.js
    • CadCraft
    64-bit
  • Ratio text for a scale that is not listed

    Writes 1:n or n:1 for a scale with no standard name.

    n ≥ 1: "1:n"; n < 1: "(1 ÷ n):1"

    Paper sizes, drawing scales and viewport aim sheets.js
    • CadCraft
    64-bit
  • Largest standard scale that fits

    Picks the largest listed scale at which the window still fits the viewport.

    largest s with s ≤ sFit × (1 + 1e-9)

    Paper sizes, drawing scales and viewport aim sheets.js
    • CadCraft
    64-bit
  • Viewport center and scale for a model window

    The model point a viewport looks at and the scale at which a model window fits it.

    sFit = min(w ÷ Δx, h ÷ Δy); center = ((minX + maxX) ÷ 2, (minY + maxY) ÷ 2)

    Paper sizes, drawing scales and viewport aim sheets.js
    • CadCraft
    64-bit
  • Standard paper for a sheet size

    Finds the standard paper a sheet of w × h is, either way round.

    |standard side − side| ≤ 0.005 × side, both sides in mm

    Paper sizes, drawing scales and viewport aim sheets.js
    • CadCraft
    64-bit
  • Space for viewports on a sheet

    The rectangle inside the border and above the title block, in paper units.

    x0 = sheet x0 + 15 mm × k; y0 = sheet y0 + 47 mm × k; x1 = sheet x0 + (W − 15 mm) × k; y1 = sheet y0 + (H − 15 mm) × k; k = 1 ÷ mm per paper unit

    Paper sizes, drawing scales and viewport aim sheets.js
    • CadCraft
    64-bit
  • Viewport of a new sheet

    The size, paper position, model center and scale of the viewport a new sheet starts with.

    Paper sizes, drawing scales and viewport aim sheets.js
    • CadCraft
    64-bit
  • Clusters of the model

    Groups the model's visible objects whose bounding boxes are within a gap of each other, and returns each group's box.

    Automatic sheet layout autosheet.js
    • CadCraft
    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.