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

  • Convert between two units

    A value in one unit as a value in another unit of the same kind.

    result = v × (n₁ × d₂) ÷ (d₁ × n₂)

    Unit conversion unit-table.js Every app
    Exact
  • Typed text to a unit

    What was typed, with its unit, as a value in the unit the field wants.

    3 yd typed into a feet field = convert(3, yd, ft) = 9

    Unit conversion unit-table.js Every app
    Exact
  • A value to the base unit

    A number in any unit as meters, square meters, cubic meters, radians or rise over run.

    base = v × n ÷ d (v × π × n ÷ d for degrees and gons)

    Unit conversion unit-table.js Every app
    64-bit
  • A base value to a unit

    A stored base value as a number in the unit shown.

    value = base × d ÷ n (base ÷ π × d ÷ n for degrees and gons)

    Unit conversion unit-table.js Every app
    64-bit
  • Add, subtract, multiply, divide

    The four operations on values that carry units.

    a + b and a − b need the same dimensions; a × b and a ÷ b combine them

    Calc sheets calc.js Every app
    64-bit
  • Comparisons

    Pass or fail checks such as M <= 40 kN m.

    a ≤ b is true when a ≤ b + 1e-12 × max(1, |a|, |b|)

    Calc sheets calc.js Every app
    64-bit
  • Number shown

    A result as text in the sheet.

    6 significant digits; exponent form from 1e9 up and below 1e-4

    Calc sheets calc.js Every app
    64-bit
  • Knot span

    Which span of the knot vector a parameter falls in.

    i such that U[i] ≤ u < U[i + 1], by bisection

    B-spline basis functions nurbs/basis.js
    • ModelCraft
    • PartCraft
    64-bit
  • Basis functions

    The p + 1 basis functions that are not zero at a parameter.

    N(i, p)(u) by the Cox-de Boor recurrence (A2.2)

    B-spline basis functions nurbs/basis.js
    • ModelCraft
    • PartCraft
    64-bit
  • Basis function derivatives

    The basis functions and their derivatives up to a chosen order.

    N⁽ᵏ⁾(i, p)(u) for k = 0 … d (A2.3)

    B-spline basis functions nurbs/basis.js
    • ModelCraft
    • PartCraft
    64-bit
  • Conjugate gradient solve

    The displacement of every node under the loads.

    repeat until ‖r‖ ÷ ‖b‖ < 1e-8

    Stress analysis fea.js
    • PartCraft
    64-bit
  • Von Mises stress

    One equivalent stress from the six stress components.

    σᵥ = √(½[(σ_x − σ_y)² + (σ_y − σ_z)² + (σ_z − σ_x)²] + 3(τ_xy² + τ_yz² + τ_zx²))

    Stress analysis fea.js
    • PartCraft
    64-bit
  • Stress and displacement at each node, and their maximum

    The values the plot colors by, and the maximum the report states.

    σ at a node = mean of its corners; |u| = √(u_x² + u_y² + u_z²); maximum over the nodes

    Stress analysis fea.js
    • PartCraft
    32-bit in part
  • Volume, surface area and bounding box

    The measured properties of the finished body.

    volume, area, genus and bounding box, asked of the kernel

    Solid modeling kernel.js
    • PartCraft
    64-bit
  • Vertex positions of the body

    The mesh that faces, edges and the display are built from.

    positions = 32-bit copy of the kernel's vertices

    Solid modeling kernel.js
    • PartCraft
    32-bit in part
  • Key times to one millisecond

    The rounding applied to every key time, clip start and the animation length.

    t = round(t × 1000) ÷ 1000

    Animation keys, curves and poses render/anim.js
    • BimCraft
    • ModelCraft
    • PartCraft
    64-bit
  • Stretching an animation to a new length

    Every key time and clip start when the animation is made longer or shorter.

    k = new length ÷ old length; t′ = round₀.₀₀₁(t × k)

    Animation keys, curves and poses render/anim.js
    • BimCraft
    • ModelCraft
    • PartCraft
    64-bit
  • Spreading chosen keys about a time

    The new times of selected keys scaled away from or toward a pivot time.

    t′ = round₀.₀₀₁(pivot + (t − pivot) × f)

    Animation keys, curves and poses render/anim.js
    • BimCraft
    • ModelCraft
    • PartCraft
    64-bit
  • Frame count and frame times

    The number of frames a render of the animation has, and the time of each frame.

    frames = max(1, round(length × fps) + 1); time of frame i = i ÷ fps

    Animation keys, curves and poses render/anim.js
    • BimCraft
    • ModelCraft
    • PartCraft
    64-bit
  • Position between two keys

    Which pair of keys a time falls between and how far along that stretch it is.

    s = (t − tᵢ) ÷ (tᵢ₊₁ − tᵢ)

    Animation keys, curves and poses render/anim.js
    • BimCraft
    • ModelCraft
    • PartCraft
    64-bit
  • Time on a repeating track

    The time inside the keys' span that a repeating, ping-pong or offset track plays at.

    x = (t − t₀) ÷ P; k = floor(x); f = x − k

    Animation keys, curves and poses render/anim.js
    • BimCraft
    • ModelCraft
    • PartCraft
    64-bit
  • Speed through a key

    The rate of change of a value at a key, from its two neighbors.

    m = (pᵢ₊₁ − pᵢ₋₁) ÷ (tᵢ₊₁ − tᵢ₋₁)

    Animation keys, curves and poses render/anim.js
    • BimCraft
    • ModelCraft
    • PartCraft
    64-bit
  • Value between two keys

    A position or other value between two keys: held, straight, or on a smooth curve.

    p = h₀₀ p₀ + h₀₁ p₁ + h₁₀ Δt m₀ + h₁₁ Δt m₁

    Animation keys, curves and poses render/anim.js
    • BimCraft
    • ModelCraft
    • PartCraft
    64-bit
  • Bézier handles of a property key

    The two handle points of a key on a property curve.

    automatic: handle = key ± (Δt ÷ 3, m × Δt ÷ 3)

    Animation keys, curves and poses render/anim.js
    • BimCraft
    • ModelCraft
    • PartCraft
    64-bit
  • Property value on a Bézier curve

    The value of an animated property at a time between two keys with Bézier handles.

    solve x(u) = t by bisection; v = B(v₀, p₁, p₂, v₃; u)

    Animation keys, curves and poses render/anim.js
    • BimCraft
    • ModelCraft
    • PartCraft
    64-bit
  • Property value at a time

    A property track's value at any time, with its cycles followed.

    offset cycle: v + n × (last key − first key)

    Animation keys, curves and poses render/anim.js
    • BimCraft
    • ModelCraft
    • PartCraft
    64-bit
  • Camera at a time

    The camera's eye, target, view angle and view height between camera keys.

    eye, target, fov on the curve; height = exp(curve of ln height)

    Animation keys, curves and poses render/anim.js
    • BimCraft
    • ModelCraft
    • PartCraft
    64-bit
  • Matrix to position, rotation and scale

    A placement matrix split into its position, a unit quaternion and three scale factors.

    s = column lengths; q from the rotation matrix (Shepperd)

    Animation keys, curves and poses render/anim.js
    • BimCraft
    • ModelCraft
    • PartCraft
    64-bit
  • Position, rotation and scale to matrix

    The placement matrix built from a position, a quaternion and a scale.

    Animation keys, curves and poses render/anim.js
    • BimCraft
    • ModelCraft
    • PartCraft
    64-bit
  • Blend of two rotations

    The rotation part of a pose between two keys.

    q = (sin((1 − k)θ) a + sin(kθ) b) ÷ sin θ, θ = acos(a · b)

    Animation keys, curves and poses render/anim.js
    • BimCraft
    • ModelCraft
    • PartCraft
    64-bit
  • Angles to quaternion

    XYZ rotation angles in degrees turned into a unit quaternion.

    q = q_z × q_y × q_x, each from sin and cos of half the angle

    Animation keys, curves and poses render/anim.js
    • BimCraft
    • ModelCraft
    • PartCraft
    64-bit
  • Quaternion to angles

    XYZ rotation angles in degrees from a unit quaternion, chosen close to the key before.

    Animation keys, curves and poses render/anim.js
    • BimCraft
    • ModelCraft
    • PartCraft
    64-bit
  • Object placement at a time

    A moving object's placement matrix between two matrix keys.

    Animation keys, curves and poses render/anim.js
    • BimCraft
    • ModelCraft
    • PartCraft
    64-bit
  • Time inside a clip

    The time of a saved action that a clip plays at a given timeline time.

    x = (t − start) ÷ scale; local = from + (x mod span)

    Animation keys, curves and poses render/anim.js
    • BimCraft
    • ModelCraft
    • PartCraft
    64-bit
  • Mixing a clip into a pose

    An object's placement when a clip is blended in at less than full influence or added on top.

    Animation keys, curves and poses render/anim.js
    • BimCraft
    • ModelCraft
    • PartCraft
    64-bit
  • Driver expression

    The value of a property worked out from other properties by a typed expression.

    Animation keys, curves and poses render/anim.js
    • BimCraft
    • ModelCraft
    • PartCraft
    64-bit
  • Camera keys from saved scenes

    The key times of a walkthrough built from saved scenes with a move time and a hold time.

    t accumulates move and hold; key time = round₀.₀₀₁(t)

    Animation keys, curves and poses render/anim.js
    • BimCraft
    • ModelCraft
    • PartCraft
    64-bit
  • Default gravity for rigid bodies

    The gravity a physics bake starts from when the file sets none.

    g = (0, 0, −9.81) m/s²

    Animation keys, curves and poses render/anim.js
    • BimCraft
    • ModelCraft
    • PartCraft
    64-bit
  • Axis placement

    The origin and three unit axes of an AXIS2_PLACEMENT_3D.

    z = axis ÷ |axis|; x = (ref − z (ref·z)) ÷ |…|; y = z × x

    STEP curves and surfaces: points from parameters step/geom.js
    • BimCraft
    • ModelCraft
    • PartCraft
    64-bit
  • Circle

    The point at an angle on a circle, and the angle of a point.

    P(t) = o + r cos t · x + r sin t · y; t = atan2(l_y, l_x)

    STEP curves and surfaces: points from parameters step/geom.js
    • BimCraft
    • ModelCraft
    • PartCraft
    64-bit
  • Polyline

    The point at a parameter along a polyline, and the parameter nearest a point.

    P(t) = (1 − f) Pᵢ + f Pᵢ₊₁, i = ⌊t⌋, f = t − i

    STEP curves and surfaces: points from parameters step/geom.js
    • BimCraft
    • ModelCraft
    • PartCraft
    64-bit
  • Knot span

    Which knot interval a B-spline parameter falls in.

    STEP curves and surfaces: points from parameters step/geom.js
    • BimCraft
    • ModelCraft
    • PartCraft
    Exact
  • B-spline basis functions

    The p + 1 basis functions that are not zero at a parameter.

    N_{i,0} = 1; N_{i,j} built from (t − u) ÷ (u_b − u_a) terms in the Cox–de Boor triangular table

    STEP curves and surfaces: points from parameters step/geom.js
    • BimCraft
    • ModelCraft
    • PartCraft
    64-bit
  • B-spline curve point

    The point on a B-spline or rational B-spline curve at a parameter.

    C(t) = Σ Nᵢ wᵢ Pᵢ ÷ Σ Nᵢ wᵢ

    STEP curves and surfaces: points from parameters step/geom.js
    • BimCraft
    • ModelCraft
    • PartCraft
    64-bit
  • Is a B-spline curve closed

    Decides whether a B-spline curve's two ends meet, so it can be treated as periodic.

    |C(t₀) − C(t₁)| < 1e-9 × max(1, max |Pᵢ|)

    STEP curves and surfaces: points from parameters step/geom.js
    • BimCraft
    • ModelCraft
    • PartCraft
    64-bit
  • B-spline surface point

    The point on a B-spline or rational B-spline surface at (u, v).

    S(u, v) = Σ Σ Nᵢ(u) Nⱼ(v) wᵢⱼ Pᵢⱼ ÷ Σ Σ Nᵢ(u) Nⱼ(v) wᵢⱼ

    STEP curves and surfaces: points from parameters step/geom.js
    • BimCraft
    • ModelCraft
    • PartCraft
    64-bit
  • Seams and poles of a B-spline surface

    Decides which direction of a B-spline surface closes on itself and which boundary rows collapse to a point.

    two points are the same when |a − b| < 1e-7 × max(1, |a|)

    STEP curves and surfaces: points from parameters step/geom.js
    • BimCraft
    • ModelCraft
    • PartCraft
    64-bit
  • Cylinder

    The point at (angle, height) on a cylinder, and the angle and height of a point.

    S(u, v) = o + r cos u · x + r sin u · y + v · z

    STEP curves and surfaces: points from parameters step/geom.js
    • BimCraft
    • ModelCraft
    • PartCraft
    64-bit
  • Cone

    The point at (angle, distance along the axis) on a cone, and the inverse.

    r(v) = R + v tan α; v = ((ρ − R) tan α + l_z) ÷ (tan² α + 1)

    STEP curves and surfaces: points from parameters step/geom.js
    • BimCraft
    • ModelCraft
    • PartCraft
    64-bit
  • Sphere

    The point at (longitude, latitude) on a sphere, and the inverse.

    S(u, v) = o + r cos v cos u · x + r cos v sin u · y + r sin v · z

    STEP curves and surfaces: points from parameters step/geom.js
    • BimCraft
    • ModelCraft
    • PartCraft
    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.