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
-
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 appExact -
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 appExact -
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 app64-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 app64-bit -
Which side of an edge
Whether three points turn counter-clockwise, clockwise, or lie on one line.
sign of (b − a) × (c − a)
Surface triangulation tin.jsExact- BimCraft
- CivilCraft
-
Is an edge Delaunay
Whether the point across an edge lies inside the circle through the triangle on this side.
sign of the in-circle determinant of a, b, c, d
Surface triangulation tin.jsExact- BimCraft
- CivilCraft
-
Triangle under a point
The triangle a point falls in and its three barycentric weights.
w₁ = ((y_b − y_c)(x − x_c) + (x_c − x_b)(y − y_c)) ÷ d, w₃ = 1 − w₁ − w₂
Surface triangulation tin.js64-bit- BimCraft
- CivilCraft
-
Elevation at a point
The surface elevation at an easting and northing.
z = w₁·z₁ + w₂·z₂ + w₃·z₃
Surface triangulation tin.js64-bit- BimCraft
- CivilCraft
-
Slope of a triangle
Rise over run and the downhill direction of one triangle.
n = u × v; slope = √((n_x ÷ n_z)² + (n_y ÷ n_z)²)
Surface triangulation tin.js64-bit- BimCraft
- CivilCraft
-
Plan and surface area
The surface's area in plan and along the slope, with its elevation range.
area in plan = Σ |n_z| ÷ 2; surface area = Σ |u × v| ÷ 2
Surface triangulation tin.js64-bit- BimCraft
- CivilCraft
-
Member stiffness matrix
The 12 by 12 stiffness of one beam-column in its own axes.
EA ÷ L, GJ ÷ L, 12EI ÷ L³, 6EI ÷ L², 4EI ÷ L, 2EI ÷ L
3D frame analysis frame/frame-solve.js64-bit- CadCraft
- BimCraft
- DetailCraft
-
Equivalent nodal loads
A load along a member as forces and moments at its two ends.
p = ∫ N(ξ) · w(ξ) dx, by 4-point Gauss-Legendre quadrature
3D frame analysis frame/frame-solve.js64-bit- CadCraft
- BimCraft
- DetailCraft
-
Banded Cholesky factorisation
Factorises the stiffness matrix once, for every load set.
K = L · Lᵀ; pivot s = k_jj − Σ l²; mechanism when s ≤ 1e-11 × k_jj
3D frame analysis frame/frame-solve.js64-bit- CadCraft
- BimCraft
- DetailCraft
-
Forward and back substitution
Displacements for one load set from the factorised matrix.
L · y = f, then Lᵀ · u = y
3D frame analysis frame/frame-solve.js64-bit- CadCraft
- BimCraft
- DetailCraft
-
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 app64-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 app64-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 app64-bit -
Reproject points
Every point of a file from one coordinate system to another.
(x, y) in the source system → (x, y) in the target system, point by point
Map coordinate reprojection reproject-batch.js64-bit- BimCraft
- CivilCraft
-
Map origin from latitude and longitude
Eastings and northings of a typed latitude and longitude.
(lon, lat) → (E, N), rounded to 0.000001 of the map unit
Map coordinate reprojection crs-georef.js64-bit- BimCraft
- CivilCraft
-
Model to map conversion
Where a model sits on the map: origin, rotation and scale.
X axis = (cos a, sin a) rounded to 1e-12; scale = model unit ÷ map unit
Map coordinate reprojection crs-georef.js64-bit- BimCraft
- CivilCraft
-
Sabine constant
The constant both reverberation formulas multiply the volume by.
C = 0.161 s/m
Room reverberation time acoustics.js64-bit- BimCraft
-
Sound absorbed by the air
The attenuation of a pure tone in air, in dB per meter, at the room's temperature, humidity and pressure.
α = 8.686 f² [1.84e-11 (p_r ÷ p) √(T ÷ T₀) + (T ÷ T₀)^−2.5 (0.01275 e^(−2239.1 ÷ T) ÷ (f_rO + f² ÷ f_rO) + 0.1068 e^(−3352 ÷ T) ÷ (f_rN + f² ÷ f_rN))]
Room reverberation time acoustics.js64-bit- BimCraft
-
Air absorption per meter
Turns the dB figure into the energy absorption coefficient the formulas use.
m = α ÷ 4.343
Room reverberation time acoustics.js64-bit- BimCraft
-
Reverberation time per band
The Sabine and Eyring times of a room in each of six octave bands, and the mid-frequency mean.
A = Σ Sᵢαᵢ + extra; ᾱ = min(0.999, A ÷ S); Sabine = C V ÷ (A + 4mV); Eyring = C V ÷ (−S ln(1 − ᾱ) + 4mV)
Room reverberation time acoustics.js64-bit- BimCraft
-
Reverberation over the target
The finding raised when a room's mid-frequency time is over the person's target, with the absorption that would meet it.
T = round(T_mid × 100) ÷ 100; need = round(max(0, V C ÷ target − (A₅₀₀ + A₁₀₀₀) ÷ 2))
Room reverberation time acoustics.js64-bit- BimCraft
-
Distance from a point to a room outline
How far an opening's middle is from the room's outline, to decide which room the opening belongs to.
d = min over edges of |P − (A + t (B − A))|, t clamped to 0…1
Room reverberation time acoustics-model.js64-bit- BimCraft
-
Room perimeter
The length of the room's outline, used for the wall area when the walls' finishes are not read from the model.
P = Σ |pᵢ₊₁ − pᵢ|
Room reverberation time acoustics-model.js64-bit- BimCraft
-
Is a point inside a room
Decides whether a ceiling, a floor or a piece of furniture lies in a room.
Room reverberation time acoustics-model.js64-bit- BimCraft
-
Room height and opening areas
The height the room is given and the area of the doors and windows in its walls.
H = height ÷ 1000; opening area = (width ÷ 1000) × (height ÷ 1000)
Room reverberation time acoustics-model.js64-bit- BimCraft
-
Wall area per finish
The area of wall each finish covers in a room, less its doors and windows.
wall area = Σ edge length × H; net = max(0, gross − glass − doors); each finish × net ÷ gross
Room reverberation time acoustics-model.js64-bit- BimCraft
-
Room volume and the figures reported
The volume passed to the formulas and the area, height and volume listed for each room.
V = floor area × H; aspect = longest ÷ max(shortest, 0.1)
Room reverberation time acoustics-model.js64-bit- BimCraft
-
Fast Fourier transform
The transform behind the band filters and the convolution.
X_k = Σ x_n e^(∓2πi kn ÷ N), N a power of two
Room impulse response and listening acoustics-ir.js64-bit- BimCraft
-
Octave band weight
How much of a frequency belongs to one octave band.
w = cos(π ÷ 2 × |log₂(f ÷ f_band)|) within one octave, else 0
Room impulse response and listening acoustics-ir.js64-bit- BimCraft
-
Zero-phase band filter
Keeps one octave band of a signal.
Room impulse response and listening acoustics-ir.js64-bit- BimCraft
-
Decaying reverberant tail
The diffuse part of the response: noise that falls 60 dB in each band's reverberation time.
tail(t) = Σ_bands noise_b(t) × e^(−k t), k = 6.907755 ÷ T_b; × (t ÷ onset)² up to onset = max(0.002, 2 × mean free path ÷ 343)
Room impulse response and listening acoustics-ir.js64-bit- BimCraft
-
First reflections and the tail's level
Places the six first reflections and sets the level of the tail against the direct sound.
R = S a ÷ (1 − a); reflection gain = √(1 − a) × d₀ ÷ d at sample round((d − d₀) ÷ 343 × sr); tail energy = 16π d₀² ÷ R less the reflections; r_c = √(R ÷ 16π)
Room impulse response and listening acoustics-ir.js32-bit in part- BimCraft
-
Reverberation time measured from a response
The reverberation time of an impulse response in one band, by Schroeder's backward integration.
E(t) = Σ over τ ≥ t of x²; L = 10 log₁₀(E(t) ÷ E(0)); T = 60 ÷ −slope of L between −5 and −35 dB
Room impulse response and listening acoustics-ir.js64-bit- BimCraft
-
Convolution
A dry sound passed through the room's impulse response.
y = IFFT(FFT(x) × FFT(h)) ÷ N
Room impulse response and listening acoustics-ir.js32-bit in part- BimCraft
-
Level matching
Brings the sound in the room to the loudness of the dry sound, so switching between them changes the room and not the volume.
k = rms(dry) ÷ rms(wet over the dry sound's length)
Room impulse response and listening acoustics-ir.js32-bit in part- BimCraft
-
WAV file samples
The numbers written to the downloaded sound file.
s = round(clamp(x × k, −1, 1) × 32767), k = 1 ÷ peak when peak > 1
Room impulse response and listening acoustics-ir.js32-bit in part- BimCraft
-
Length unit of the file
The factor that takes the file's lengths to millimeters.
toMm = prefix × 1000, or factor × base × 1000 for a converted unit
Frame model from a building model analysis-bim.js64-bit- BimCraft
-
Axis placement
The three axes and the origin of one IFC placement.
X = norm(X − Z (X·Z)); Y = Z × X
Frame model from a building model analysis-bim.js64-bit- BimCraft
-
Placement chain
An element's position and axes in the model, through every placement it is relative to.
M = M_parent ∘ M_local
Frame model from a building model analysis-bim.js64-bit- BimCraft
-
Rounded rectangle outline
The outline of a hollow rectangular section with rounded corners.
Frame model from a building model analysis-bim.js64-bit- BimCraft
-
Circle outline
The outline of a round bar or tube.
pᵢ = r (cos 2πi ÷ 64, sin 2πi ÷ 64)
Frame model from a building model analysis-bim.js64-bit- BimCraft
-
I-shape outline
The outline of an I section with its root fillets.
Frame model from a building model analysis-bim.js64-bit- BimCraft
-
Is this I-shape a rolled section
Matches an I-shape's name and sizes against the section table, to decide whether it is treated as rolled or welded.
|a − b| ≤ max(0.5 mm, 0.01 × b) for d, bf, tw, tf
Frame model from a building model analysis-bim.js64-bit- BimCraft
-
Member axis, length and section
The line a member is analyzed on and the section properties it carries.
axis from the section centroid c₀ to c₀ + depth × ext; skipped when |ext·U| or |ext·V| > 0.001
Frame model from a building model analysis-bim.js64-bit- BimCraft
-
Concrete wall as a line, thickness and height
Reads a concrete wall's plan outline as a center line and a thickness for the plate model.
turn the outline by −θ of its longest edge; thickness = y₁ − y₀; kept when |area| ≥ 0.9 × box area
Frame model from a building model analysis-bim.js64-bit- BimCraft
-
Closest points of a line and a segment
Where a member's own line passes nearest another member's axis, and how far apart they are there.
s = (b e − c d) ÷ (a c − b²); t = (a e − b d) ÷ (a c − b²)
Frame model from a building model analysis-bim.js64-bit- BimCraft
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.