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
-
Check before a call
Refuses a call when the calls per hour, the day's or month's spending, or the day's tokens could pass a limit.
refuse when spent + worst-case cost > limit; worst case = cost(estimated input, largest allowed output)
Spending on a person's own AI model ai-byok.js Every app64-bit -
Recorded cost and the token estimate
Stores each call's cost and estimates the input tokens of the next request.
estimated tokens = ⌈JSON length ÷ 3⌉ + 500
Spending on a person's own AI model ai-byok.js Every app64-bit -
Flow through a passage
Persons per second through a door or corridor of a given width.
rate = max(0, Fsm × (width − 2 × boundary))
People flow and evacuation time people.js Every app64-bit -
Speed and specific flow at a density
Walking speed and flow per meter of width at a given density of people.
S = k × (1 − 0.266 × D); Fs = S × D; k = 1.4 m/s
People flow and evacuation time people.js Every app64-bit -
Rate and speed of each passage
The flow rate and walking speed each passage gets, from its own values or the defaults for its kind.
People flow and evacuation time people.js Every app64-bit -
Door service time and walking time
How long a door takes per person, how long the passage takes to walk, and each room's distance to an exit in time.
service = 1 ÷ rate; walk = length ÷ speed; to exit = least total walking time
People flow and evacuation time people.js Every app64-bit -
Which way a room empties
The next passage for people in a room: the one with the least remaining walking time to an exit.
keep a hop when toExit(next) < toExit(room) − 1e-9; choose the least walk + toExit(next)
People flow and evacuation time people.js Every app64-bit -
Evacuation results
People evacuated, the time the last person reaches an exit, peak occupancy and density per room, and queues per door.
time = latest arrival at any exit; density = peak people in a room ÷ its area
People flow and evacuation time people.js Every app64-bit -
Joint frames at a pose
Each joint's rotation and offset from its parent at the given joint values.
Rigid-body dynamics of a mechanism dynamics.js Every app64-bit -
Joint torques for a motion (inverse dynamics)
The torque or force each joint needs for given positions, velocities and accelerations, with gravity, external loads and damping.
outward: ω, α, a of each link; F = m × a_com; N = I α + ω × (I ω); inward: τᵢ = axis · n (revolute) or axis · f (prismatic) + damping × q̇ᵢ
Rigid-body dynamics of a mechanism dynamics.js Every app64-bit -
Mass matrix
The joint-space mass matrix at a pose.
column j = rnea(q, q̇ = 0, q̈ = unit vector j) with no gravity, damping or external loads
Rigid-body dynamics of a mechanism dynamics.js Every app64-bit -
Joint accelerations for given torques (forward dynamics)
The acceleration of each joint under applied torques.
M q̈ = τ − h
Rigid-body dynamics of a mechanism dynamics.js Every app64-bit -
Kinetic and potential energy
The mechanism's kinetic, potential and total energy at a pose and velocity.
KE = ½ q̇ᵀ M q̇; PE = −Σ m × (g · p_com)
Rigid-body dynamics of a mechanism dynamics.js Every app64-bit -
Simulated motion over time
Joint positions and velocities at each time step under gravity and applied torques.
RK4: y₊ = y + dt ÷ 6 × (k₁ + 2k₂ + 2k₃ + k₄); steps = round(T ÷ dt); t = step × dt
Rigid-body dynamics of a mechanism dynamics.js Every app64-bit -
Courtyard of a footprint
The rectangle around all pads, grown by a margin.
courtyard = (min(x − w ÷ 2) − m, min(y − h ÷ 2) − m, max(x + w ÷ 2) + m, max(y + h ÷ 2) + m)
Parametric PCB footprints footlib.js Every app64-bit -
Two-terminal chip
Two pads at half the pitch either side of the center.
x = ∓ pitch ÷ 2
Parametric PCB footprints footlib.js Every app64-bit -
Dual-row surface-mount package
Pads in two rows, numbered counter-clockwise from the top left.
y = ((n ÷ 2 − 1) ÷ 2 − i) × pitch; x = ∓ row spacing ÷ 2
Parametric PCB footprints footlib.js Every app64-bit -
Dual in-line through-hole package
Drilled pads in two rows.
y = ((n ÷ 2 − 1) ÷ 2 − i) × pitch; x = ∓ row spacing ÷ 2
Parametric PCB footprints footlib.js Every app64-bit -
Pin header
Drilled pads in one or two rows at a pitch.
x = (r − (rows − 1) ÷ 2) × pitch; y = ((n − 1) ÷ 2 − i) × pitch
Parametric PCB footprints footlib.js Every app64-bit -
Quad flat package
Pads on four sides, numbered counter-clockwise from the top left.
along a side: ((n − 1) ÷ 2 − i) × pitch; across: ± span ÷ 2
Parametric PCB footprints footlib.js Every app64-bit -
Axial through-hole part
Two drilled pads at half the lead pitch either side of the center.
x = ∓ pitch ÷ 2
Parametric PCB footprints footlib.js Every app64-bit -
Meets the limit
True, false or null for a found value against a rule.
min − e ≤ found ≤ max + e
Pass or fail against a regulation limit addons/regs/lib/rows.js64-bit- CadCraft
- BimCraft
- CivilCraft
- DetailCraft
-
Relative difference
The fraction by which a coarse result differs from the refined result.
|a − b| ÷ |b|
Spread between coarse and refined results study/live.js64-bit- CadCraft
- BimCraft
- DetailCraft
- PartCraft
-
Ring orientation
The signed area that decides if a ring runs counter-clockwise.
A = ½ Σ (xᵢ·yᵢ₊₁ − xᵢ₊₁·yᵢ)
Polygon triangulation by ear clipping ifc/geo-tri.js64-bit- BimCraft
- TakeoffCraft
- CivilCraft
- DetailCraft
-
Cross product and inside test
Which side of a line a point lies on and whether a point is inside a triangle.
cross = (bx−ax)(cy−ay) − (by−ay)(cx−ax)
Polygon triangulation by ear clipping ifc/geo-tri.js64-bit- BimCraft
- TakeoffCraft
- CivilCraft
- DetailCraft
-
Hole bridge
The vertex of the outer ring a hole is joined to.
Polygon triangulation by ear clipping ifc/geo-tri.js64-bit- BimCraft
- TakeoffCraft
- CivilCraft
- DetailCraft
-
Ear test
Whether a corner can be cut off as a triangle.
Polygon triangulation by ear clipping ifc/geo-tri.js64-bit- BimCraft
- TakeoffCraft
- CivilCraft
- DetailCraft
-
Triangulate rings on a plane
The triangles of 3D rings that lie on one plane.
Polygon triangulation by ear clipping ifc/geo-tri.js64-bit- BimCraft
- TakeoffCraft
- CivilCraft
- DetailCraft
-
Vertices and loose edges
The point positions of a model definition and its loose edges.
Model points written to USD usd/m3d.js32-bit in part- CadCraft
- BimCraft
- ModelCraft
- TakeoffCraft
- CivilCraft
- DetailCraft
- PartCraft
-
Mesh arrays
The point, normal, UV and color arrays of a mesh.
Model points written to USD usd/m3d.js32-bit in part- CadCraft
- BimCraft
- ModelCraft
- TakeoffCraft
- CivilCraft
- DetailCraft
- PartCraft
-
Number to text
The text a number is written as, by type.
f32: text = shortest s with fround(+s) = fround(x)
Number text in USD files usd/usda-write.js32-bit in part- CadCraft
- BimCraft
- ModelCraft
- TakeoffCraft
- CivilCraft
- DetailCraft
- PartCraft
-
Shortest digits
A number to p significant digits without trailing zeros.
Number text in USD files usd/usda-write.js64-bit- CadCraft
- BimCraft
- ModelCraft
- TakeoffCraft
- CivilCraft
- DetailCraft
- PartCraft
-
Type name to number type
Which number type a USD type name uses (32-bit float, half or 64-bit double).
Number text in USD files usd/sdf.jsExact- CadCraft
- BimCraft
- ModelCraft
- TakeoffCraft
- CivilCraft
- DetailCraft
- PartCraft
-
Inline values
A value that the file stores inside its 32-bit payload word.
Floats read from USD files usd/usdc-read.js32-bit in part- CadCraft
- BimCraft
- ModelCraft
- TakeoffCraft
- CivilCraft
- DetailCraft
- PartCraft
-
Raw arrays
A packed array of numbers of one type.
Floats read from USD files usd/usdc-read.js32-bit in part- CadCraft
- BimCraft
- ModelCraft
- TakeoffCraft
- CivilCraft
- DetailCraft
- PartCraft
-
Compressed float arrays
An array stored as whole numbers or as a lookup table and indexes.
Floats read from USD files usd/usdc-read.js32-bit in part- CadCraft
- BimCraft
- ModelCraft
- TakeoffCraft
- CivilCraft
- DetailCraft
- PartCraft
-
Float text rounding
A float or half value read from .usda text.
Floats read from USD files usd/usda-read.js32-bit in part- CadCraft
- BimCraft
- ModelCraft
- TakeoffCraft
- CivilCraft
- DetailCraft
- PartCraft
-
Arrays from text
A list of parsed numbers as a typed array of the right type.
Floats read from USD files usd/usda-read.js32-bit in part- CadCraft
- BimCraft
- ModelCraft
- TakeoffCraft
- CivilCraft
- DetailCraft
- PartCraft
-
Half to float
The value of a 16-bit half float.
v = ± (1 + m ÷ 1024) × 2^(e − 15)
Half floats in USD usd/util.js32-bit in part- CadCraft
- BimCraft
- ModelCraft
- TakeoffCraft
- CivilCraft
- DetailCraft
- PartCraft
-
Float to half
The 16-bit half closest to a number.
Half floats in USD usd/util.js32-bit in part- CadCraft
- BimCraft
- ModelCraft
- TakeoffCraft
- CivilCraft
- DetailCraft
- PartCraft
-
Measure to SI
A property value in meters, square meters or cubic meters.
area = v × L²; volume = v × L³
IFC measures in SI for USD usd/ifc.js64-bit- CadCraft
- BimCraft
- ModelCraft
- TakeoffCraft
- CivilCraft
- DetailCraft
- PartCraft
-
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 appExact -
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 app64-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 app64-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 app64-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 app32-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 app32-bit, display only -
Variant body buffers
The chosen variant's box or mesh as geometry for drawing.
Library 3D preview library-configurator.js Every app32-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 app64-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 app64-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.