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

  • Bearing stubs under a raised heel

    Adds a vertical stub under each heel joint when the heel is raised.

    Truss geometry, cut list and shop outputs addons/trusscraft/lib/geometry.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • PartCraft
    64-bit
  • Heel depth and raise

    The heel depth the chords need at the outer face and how far a taller stated heel raises the truss.

    needed = d_bottom ÷ 2 + d_top ÷ (2 cos pitch); raise = max(0, heel − needed)

    Truss geometry, cut list and shop outputs addons/trusscraft/lib/geometry.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • PartCraft
    64-bit
  • Roof section along a truss line

    The height of the roof's underside along the line a truss stands on.

    z = start + (n·p − c) ÷ speed on each face; highest face wins

    Truss geometry, cut list and shop outputs addons/trusscraft/lib/profile.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • PartCraft
    64-bit
  • Profile simplification

    Removes repeated points and points that lie on a straight line between their neighbors.

    Truss geometry, cut list and shop outputs addons/trusscraft/lib/profile.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • PartCraft
    64-bit
  • Height of a profile at x

    The profile's height at a distance along the truss.

    z = z₀ + (z₁ − z₀)(x − x₀) ÷ (x₁ − x₀)

    Truss geometry, cut list and shop outputs addons/trusscraft/lib/profile.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • PartCraft
    64-bit
  • What a profile is

    Decides whether a roof section is a plain triangle, has a flat top, has a valley across it, and is symmetric.

    Truss geometry, cut list and shop outputs addons/trusscraft/lib/profile.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • PartCraft
    64-bit
  • Frame from a roof profile

    The joints and members of a truss whose top chord follows the roof's section.

    pitch = atan(slope of the first panel), or atan(steepest profile slope) when the left end stands on a post

    Truss geometry, cut list and shop outputs addons/trusscraft/lib/profile.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • PartCraft
    64-bit
  • Chord pieces

    Joins chord members that run straight on through a joint into one piece of timber, with its length.

    joined when acos(|u·v|) < 0.5°; len = √(Δx² + Δz²)

    Truss geometry, cut list and shop outputs addons/trusscraft/lib/cutlist.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • PartCraft
    64-bit
  • Cut length and end angles

    The length to cut each piece and the angle of each end cut.

    cut = joint length − set_A − set_B + (d ÷ 2)(tan A + tan B); web set = (host depth ÷ 2) ÷ max(0.2, sin φ)

    Truss geometry, cut list and shop outputs addons/trusscraft/lib/cutlist.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • PartCraft
    64-bit
  • Member list values

    The length, angle, force and utilization shown for each member.

    Truss geometry, cut list and shop outputs addons/trusscraft/lib/cutlist.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • PartCraft
    64-bit
  • Joint schedule and plate choice

    The members meeting at each joint with their angles and forces, and the first plate of the table that fits.

    plate: capacity ≥ largest |force| and min(w, h) ≥ min(deepest member + 25, 152)

    Truss geometry, cut list and shop outputs addons/trusscraft/lib/cutlist.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • PartCraft
    64-bit
  • Bird's mouth cut

    The plumb cut of a rafter seat and the depth left above it.

    plumb = seat × tan(pitch); left = depth − plumb × cos(pitch)

    Truss geometry, cut list and shop outputs addons/trusscraft/lib/cutlist.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • PartCraft
    64-bit
  • Jig drawing at full size

    The outline of every member on the 1:1 jig sheet.

    corner = joint ± (−Δz, Δx) ÷ L × d ÷ 2

    Truss geometry, cut list and shop outputs addons/trusscraft/lib/fab.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • PartCraft
    64-bit
  • Stock plan

    Nests the cut pieces of a truss set onto stock lengths and lists them as CSV.

    Truss geometry, cut list and shop outputs addons/trusscraft/lib/fab.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • PartCraft
    64-bit
  • Member as a solid

    A closed box for one member from its two end points, depth and thickness, with its volume.

    V = |Σ a · (b × c) ÷ 6| over the 12 triangles

    Truss geometry, cut list and shop outputs addons/trusscraft/lib/bodies.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • PartCraft
    64-bit
  • Members placed in plan and height

    The 3D end points of every member of a laid-out truss.

    p = a + x × (b − a) ÷ span; z = z₀ + node z + raise + base

    Truss geometry, cut list and shop outputs addons/trusscraft/lib/bodies.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • PartCraft
    64-bit
  • STL export

    The truss set written as an ASCII STL file.

    text = round(v × 1000) ÷ 1000

    Truss geometry, cut list and shop outputs addons/trusscraft/lib/bodies.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • PartCraft
    64-bit
  • OBJ export

    The truss set written as an OBJ file.

    Truss geometry, cut list and shop outputs addons/trusscraft/lib/bodies.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • PartCraft
    64-bit
  • Millimeters to drawing coordinates

    Places truss drawings in a CadCraft drawing at a point and a scale.

    X = at_x + x × k; Y = at_y + y × k

    Truss geometry, cut list and shop outputs addons/trusscraft/lib/cadplan.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • PartCraft
    64-bit
  • Member outlines in the elevation

    The closed outline drawn for each member in the truss elevation.

    corner = joint ± (−Δz, Δx) ÷ L × d ÷ 2

    Truss geometry, cut list and shop outputs addons/trusscraft/lib/cadplan.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • PartCraft
    64-bit
  • Force labels in the force diagram

    The force written beside each member.

    Truss geometry, cut list and shop outputs addons/trusscraft/lib/cadplan.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • PartCraft
    64-bit
  • Schedule rows in the drawing

    The cut list and joint schedule as rows of a table drawn in CadCraft.

    Truss geometry, cut list and shop outputs addons/trusscraft/lib/cadplan.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • PartCraft
    64-bit
  • Dimension labels on the elevation picture

    The span, overhang, pitch, rise and heel written on the truss elevation.

    Truss geometry, cut list and shop outputs addons/trusscraft/lib/drawing.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • PartCraft
    64-bit
  • Outline area

    The signed area of the roof outline.

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

    Truss layout over a roof addons/trusscraft/lib/layout.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • PartCraft
    64-bit
  • Where a truss line crosses the outline

    The points where a station line enters and leaves the roof outline.

    v = a_v + (u − a_u) ÷ (b_u − a_u) × (b_v − a_v)

    Truss layout over a roof addons/trusscraft/lib/layout.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • PartCraft
    64-bit
  • Trusses along an outline

    The station, end points and span of each truss over a plain outline, and the actual spacing.

    bays = ceil(length ÷ spacing); step = length ÷ bays; span = v₁ − v₀

    Truss layout over a roof addons/trusscraft/lib/layout.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • PartCraft
    64-bit
  • Ridge direction

    The direction the ridge runs, which the trusses span across.

    Truss layout over a roof addons/trusscraft/lib/roofset.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • PartCraft
    64-bit
  • Valley pairs of a roof plan

    Finds pairs of valley lines that meet at a wing's ridge, with the wing's axis and reach.

    Truss layout over a roof addons/trusscraft/lib/roofset.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • PartCraft
    64-bit
  • Valley truss set

    The span, rise, base height and position of each valley truss of a wing roof over a main roof.

    ridge height = (W ÷ 2) tan(wing pitch); rise = d × tan(main pitch); span = 2 d tan(main pitch) ÷ tan(wing pitch)

    Truss layout over a roof addons/trusscraft/lib/roofset.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • PartCraft
    64-bit
  • Stations along the ridge

    The truss stations of a roof and the stretches of each station that lie inside the outline.

    bays = ceil(length ÷ spacing); u = u₀ + inset + i × step

    Truss layout over a roof addons/trusscraft/lib/roofset.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • PartCraft
    64-bit
  • A truss from a roof section

    Decides the form of the truss at a station, its design key, and the values stored for it.

    common truss pitch = atan(2 × apex ÷ span)

    Truss layout over a roof addons/trusscraft/lib/roofset.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • PartCraft
    64-bit
  • Jack trusses in a hip end

    The jack and corner trusses between the end wall and a girder truss, and where each bears on the girder.

    count = ceil((width − 2 × inset) ÷ spacing); v = v₀ + inset + k × step

    Truss layout over a roof addons/trusscraft/lib/roofset.js
    • CadCraft
    • BimCraft
    • ModelCraft
    • PartCraft
    64-bit
  • Velocity beyond a wall

    The value used just outside the region so that the velocity at a wall equals the wall's own.

    u_ghost = 2 × u_wall − u_inside

    2D flow solver (finite volume) cfd/fv.js
    • CadCraft
    64-bit
  • Value at a cell face

    The value carried across a cell face by the flow.

    central ½(a + b) when |u| h ÷ ν ≤ 2, else the upwind value

    2D flow solver (finite volume) cfd/fv.js
    • CadCraft
    64-bit
  • Time step

    The largest stable time step for the current velocities.

    dt = min(0.4 h ÷ u_max, 0.2 h² ÷ ν, 0.8 ν ÷ u_max²)

    2D flow solver (finite volume) cfd/fv.js
    • CadCraft
    64-bit
  • Momentum step for u

    The predicted x velocity at each face after one time step.

    u* = u + dt (−convection + ν ∇²u + source)

    2D flow solver (finite volume) cfd/fv.js
    • CadCraft
    64-bit
  • Pressure equation

    Sets up the pressure equation that makes the velocity field divergence-free.

    ∇²p = (∇·u*) ÷ dt

    2D flow solver (finite volume) cfd/fv.js
    • CadCraft
    64-bit
  • Pressure solve

    Solves the pressure equation by conjugate gradient.

    2D flow solver (finite volume) cfd/fv.js
    • CadCraft
    64-bit
  • Velocity correction

    Removes the pressure gradient from the predicted velocities.

    u = u* − dt (p_right − p_left) ÷ h

    2D flow solver (finite volume) cfd/fv.js
    • CadCraft
    64-bit
  • Tracer transport

    Moves a tracer with the flow and lets it diffuse, one time step.

    limiter φ(r) = (r + |r|) ÷ (1 + |r|); C′ = C − dt (∇·flux) + dt × source

    2D flow solver (finite volume) cfd/fv.js
    • CadCraft
    64-bit
  • Run to a steady state

    Steps the flow until it stops changing or a limit is reached.

    change = max |u′ − u| ÷ dt

    2D flow solver (finite volume) cfd/fv.js
    • CadCraft
    64-bit
  • Velocity at cell centers

    The velocity at the center of each cell.

    u_c = ½(u_left + u_right); v_c = ½(v_bottom + v_top)

    2D flow solver (finite volume) cfd/fv.js
    • CadCraft
    64-bit
  • Velocity at a point

    The velocity at any point of the region.

    2D flow solver (finite volume) cfd/fv.js
    • CadCraft
    64-bit
  • Stream function

    The stream function at the cell corners.

    ψ(i, j) = ψ(i, j − 1) + U(i, j − 1) × h_y

    2D flow solver (finite volume) cfd/fv.js
    • CadCraft
    64-bit
  • VTK export

    Writes velocity, pressure and tracer fields as a legacy ASCII VTK file.

    2D flow solver (finite volume) cfd/fv.js
    • CadCraft
    64-bit
  • Mixing time

    The time at which a tracer's spread falls below a target.

    CV = √(Σ (c − mean)² ÷ n) ÷ mean

    2D flow solver (finite volume) cfd/fv.js
    • CadCraft
    64-bit
  • Lattice directions and weights

    The nine directions of the lattice and the weight of each.

    w = 4/9, 1/9 (×4), 1/36 (×4)

    2D mixing solver (lattice Boltzmann) cfd/lbm.js
    • CadCraft
    64-bit
  • Mixer set-up

    Creates the grid, the solid mask, the force field and the starting distributions.

    2D mixing solver (lattice Boltzmann) cfd/lbm.js
    • CadCraft
    64-bit
  • Equilibrium distributions

    The equilibrium the flow and the tracer relax toward.

    f_eq = w ρ (1 + 3 c·u + 4.5 (c·u)² − 1.5 u²); g_eq = w C (1 + 3 c·u)

    2D mixing solver (lattice Boltzmann) cfd/lbm.js
    • CadCraft
    64-bit
  • Collision step

    Density, velocity and tracer value of each cell, and the relaxation of its distributions.

    ρ = Σ f; u = (Σ f c + ½ F) ÷ ρ; f ← f − (f − f_eq) ÷ τ + source

    2D mixing solver (lattice Boltzmann) cfd/lbm.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.