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
-
A point back in file coordinates
The file-unit position of one kept point.
p = pos + origin
Point cloud positions and read-in values pointcloud.js32-bit in part- CadCraft
- BimCraft
-
Points in a slice
The points that lie within a thickness of a plane.
|pos − (at − origin)| ≤ thick ÷ 2
Point cloud positions and read-in values pointcloud.js32-bit in part- CadCraft
- BimCraft
-
Intensities scaled to 0 to 65535
The intensity of each kept point on a common 16-bit scale.
out = round((v − lo) ÷ (hi − lo) × 65535)
Point cloud positions and read-in values pointcloud.js32-bit in part- CadCraft
- BimCraft
-
LAS record decoder
The x, y, z of each LAS point from its stored integers.
x = Int32 × scale + offset
Point cloud positions and read-in values pointcloud.js64-bit- CadCraft
- BimCraft
-
Size of the cloud
The extent of the cloud in each axis shown in the summary.
size = max − min
Point cloud positions and read-in values pointcloud.js64-bit- CadCraft
- BimCraft
-
Round a box edge outward to 32-bit
A 32-bit number that is never above (down) or never below (up) the 64-bit value.
Ray hits against 32-bit triangle records compute/bvh-core.js32-bit in part- BimCraft
- ModelCraft
-
Ray and triangle
Whether a ray meets a triangle and at what distance t and barycentric u, v.
t = (e2 · (s × e1)) ÷ (e1 · (d × e2))
Ray hits against 32-bit triangle records compute/bvh-core.js32-bit in part- BimCraft
- ModelCraft
-
Ray and box slab test
The distance at which a ray enters a box, or Infinity.
t = (box − o) ÷ d, max of the near, min of the far
Ray hits against 32-bit triangle records compute/bvh-core.js64-bit- BimCraft
- ModelCraft
-
Instance inverse matrix
The world-to-object matrix of an instance as 12 numbers.
M⁻¹ = adj(M) ÷ det(M), translation = −M⁻¹ t
Ray hits against 32-bit triangle records compute/bvh-scene.js32-bit in part- BimCraft
- ModelCraft
-
Ray into object space of an instance
The ray origin and direction in an instance frame, and the triangle test that follows.
Ray hits against 32-bit triangle records compute/bvh-scene.js32-bit in part- BimCraft
- ModelCraft
-
Triangle records from world triangles
The 12-number triangle records the scatter ray tests use.
e1 = v1 − v0; e2 = v2 − v0
Ray hits against 32-bit triangle records rt/rt-scatter-ui.js32-bit in part- BimCraft
- ModelCraft
-
Accumulation buffer read back
The per-pixel sums of red, green, blue and sample count.
Path-traced picture sums and the saved file render/pt-gpu.js32-bit in part- BimCraft
- ModelCraft
-
Sum of an exact range of samples
The sum of samples s0 to s0 + spp − 1 for every pixel.
Path-traced picture sums and the saved file render/pt-gpu.js32-bit in part- BimCraft
- ModelCraft
-
Render elements read back
The per-pixel render elements and light-group sums.
Path-traced picture sums and the saved file render/pt-gpu.js32-bit in part- BimCraft
- ModelCraft
-
EXR channels from the sums
The mean (or raw sum) of each channel for the EXR and render file.
mean = Σ ÷ max(samples, 1)
Path-traced picture sums and the saved file render/pt-output.js32-bit in part- BimCraft
- ModelCraft
-
16-bit PNG
The picture as 16 bits per channel.
v₁₆ = round(clamp(v, 0, 1) × 65535)
Path-traced picture sums and the saved file render/pt-output.js32-bit in part- BimCraft
- ModelCraft
-
Reopening a render file
The sums and counts read back from the layers file.
Path-traced picture sums and the saved file render/pt-output.js32-bit in part- BimCraft
- ModelCraft
-
Save as 16-bit PNG
Chooses the 32-bit or the 8-bit path to write the 16-bit PNG.
Path-traced picture sums and the saved file render/render-ui.js32-bit in part- BimCraft
- ModelCraft
-
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
-
Half to float
The value of a 16-bit half float.
v = ± (1 + m ÷ 1024) × 2^(e − 15)
Half floats in EXR exr/util.js32-bit in part- BimCraft
- ModelCraft
-
Float to half
The 16-bit half closest to a number.
Half floats in EXR exr/util.js32-bit in part- BimCraft
- ModelCraft
-
Depth, volume and flow unit factors
Converts the solver's meters, cubic meters and cubic meters per second to the units the window shows.
mm = m × 1000; in = m × 39.3700787; yd³ = m³ ÷ 0.028316846592 ÷ 27; ft³/s = m³/s ÷ 0.028316846592
Rainfall run read-outs: deepest water and depth scale rain-ui.js64-bit- CivilCraft
-
Deepest water
The deepest water anywhere in the run, as shown in the facts list.
deepest = max over cells of maxDepth, converted to mm or in
Rainfall run read-outs: deepest water and depth scale rain-ui.js32-bit in part- CivilCraft
-
Depth scale of the picture
The depth at which the picture reaches its deepest color, printed in the legend.
top = max(0.02, 99.5th percentile of wet maxDepth cells)
Rainfall run read-outs: deepest water and depth scale rain-ui.js32-bit in part- CivilCraft
-
Assistant rounding to 3 decimals
Rounds a result to 3 decimals before the assistant is given it.
round(v × 1000) ÷ 1000
Assistant and window read-outs of radio link and coverage geo-agent.js64-bit- CivilCraft
-
Radio link figures
The distance, loss, received power, fade margin and availability the assistant reports for a radio link.
annual unavailability = round(U × 1e6 × 1000) ÷ 1000 ÷ 1e6
Assistant and window read-outs of radio link and coverage geo-agent.js64-bit- CivilCraft
-
Coverage share and map
The share of the area covered, the farthest covered point and a coarse map of received power.
map cell = r3(p) when p ≥ sensitivity, else null
Assistant and window read-outs of radio link and coverage geo-agent.js32-bit in part- CivilCraft
-
Coverage read-out in the window
The share covered, the farthest covered distance and the cell count shown for a coverage item.
covered % = covered × 100; farthest = distance as returned
Assistant and window read-outs of radio link and coverage geo-ui.js32-bit in part- CivilCraft
-
Start editing a key
Saves the current points as the basis and shows the key at full strength.
point = basis + offset
Shape keys: offsets, editing and blending anim/shapes.js32-bit in part- ModelCraft
-
Finish editing a key
Turns the edited points into the key's offsets and puts the mesh back to its basis.
offset = edited − basis; point = basis
Shape keys: offsets, editing and blending anim/shapes.js32-bit in part- ModelCraft
-
Key from imported positions
Makes a key that moves the basis to a list of positions (glTF morph targets, USD blend shapes).
offset = position − basis point
Shape keys: offsets, editing and blending anim/shapes.js32-bit in part- ModelCraft
-
Blend of the keys
The points of a mesh with each key at its weight.
pᵢ = basisᵢ + Σ wₖ × offsetₖ,ᵢ
Shape keys: offsets, editing and blending anim/shapes.js32-bit in part- ModelCraft
-
Deformed copy of a mesh
The mesh moved by its shape keys and then its skin, which the view, picking and exports read.
points = blend of keys; then skin applied to the same array
Shape keys: offsets, editing and blending anim/deform.js32-bit in part- ModelCraft
-
Normalized mode shapes
Samples each mode at the plot vertices and scales it to a largest displacement of 1.
uᵥ = sample(modeᵥ) ÷ max |u|
Mode shapes returned by the simulation worker sim-worker.js32-bit in part- PartCraft
-
Temperature range of the plot
The lowest and highest temperature used for the plot scale and its tick labels.
lo = min T, hi = max T over all vertices (all frames when transient)
Thermal window temperature range and balance read-outs sim-thermal-ui.js32-bit in part- PartCraft
-
Probed temperature and flux
The temperature and flux text shown when a point is probed.
Thermal window temperature range and balance read-outs sim-thermal-ui.js32-bit in part- PartCraft
-
Heat balance imbalance
The unbalanced heat in watts and as a percent of the larger of inflow and outflow.
percent = 100 × |imbalance| ÷ max(inflow, outflow, 1e-300)
Thermal window temperature range and balance read-outs sim-thermal-ui.js64-bit- PartCraft
-
Mass from volume and density
The mass of a part in grams.
m = V × ρ ÷ 1000
Part and assembly mass in the bill of materials, measure panel and assistant bom.js64-bit- PartCraft
-
Rounding of the exported bill
The numbers written into the bill of materials CSV.
value = round to 3 decimals
Part and assembly mass in the bill of materials, measure panel and assistant bom.js64-bit- PartCraft
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.