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
-
Exposure in stops
The stops added to the picture's exposure from the brightness slider and, in camera mode, the f-stop, shutter and ISO.
stops = slider + log₂(t × S × 256 ÷ N²)
Camera exposure and white balance render/pt-camera.js64-bit- BimCraft
- ModelCraft
-
Color temperature to chromaticity
The CIE xy color of light of a given temperature in kelvin.
x = a ÷ T³ + b ÷ T² + c ÷ T + d; y = polynomial in x
Camera exposure and white balance render/pt-camera.js64-bit- BimCraft
- ModelCraft
-
White-balance gains
The three color gains that make light of the chosen temperature show as white.
gain = (ref ÷ w) × (Y(w) ÷ Y(ref))
Camera exposure and white balance render/pt-camera.js64-bit- BimCraft
- ModelCraft
-
Picked focus distance
The distance from the camera to the clicked surface, measured along the view direction.
focus = round(−(d · view axis ÷ |view axis|) × t × 100) ÷ 100
Focus distance picked in the view render/ipr.js32-bit in part- BimCraft
- ModelCraft
-
Linear picture to display values
Each pixel's final red, green and blue from the linear picture and the post settings.
AP1 × wb → Rec.709 × 2^exposure → vignette → highlights → contrast → view transform → sRGB → 8 bits
Rendered picture: mixing, post and color render/pt-post.js32-bit in part- BimCraft
- ModelCraft
-
View transform
The tone curve that brings scene light into the display's range.
Rendered picture: mixing, post and color render/pt-post.js64-bit- BimCraft
- ModelCraft
-
Blur for bloom
The wide blur of the picture that bloom blends back in.
r = max(1, round(√(12σ² ÷ 3 + 1) ÷ 2)); three box blurs of radius r per axis
Rendered picture: mixing, post and color render/pt-post.js32-bit in part- BimCraft
- ModelCraft
-
Bloom
The picture blended with three blurs of itself.
out = img × (1 − a) + (0.5 b₁ + 0.3 b₂ + 0.2 b₃) × a
Rendered picture: mixing, post and color render/pt-post.js32-bit in part- BimCraft
- ModelCraft
-
Light group gains
The color and brightness factor of each light group in a light mix.
gain = color (linear AP1) × 2^stops
Rendered picture: mixing, post and color render/pt-mix.js64-bit- BimCraft
- ModelCraft
-
Mixed picture
The linear picture made by adding the light groups with their gains.
pixel = Σ over groups of (group sum × gain) ÷ samples
Rendered picture: mixing, post and color render/pt-mix.js32-bit in part- BimCraft
- ModelCraft
-
Picture or lighting element from the sums
The linear picture, light mix or one lighting element as a mean per pixel, handed to the post step.
mean = Σ samples ÷ sample count
Rendered picture: mixing, post and color render/pt-mix.js32-bit in part- BimCraft
- ModelCraft
-
ACES filmic curve
The default tone curve.
f(x) = (x (x + 0.0245786) − 0.000090537) ÷ (x (0.983729 x + 0.4329510) + 0.238081)
Rendered picture: mixing, post and color render/pt-spec.js64-bit- BimCraft
- ModelCraft
-
sRGB encoding
The curve from display-linear values to stored sRGB values.
c ≤ 0.0031308: 12.92 c; else 1.055 c^(1 ÷ 2.4) − 0.055
Rendered picture: mixing, post and color render/pt-spec.js64-bit- BimCraft
- ModelCraft
-
One pixel to 8 bits
A pixel's mean color turned into display bytes with the default settings.
byte = round(sRGB(ACES(Rec.709(AP1 × wb))) × 255)
Rendered picture: mixing, post and color render/pt-spec.js64-bit- BimCraft
- ModelCraft
-
Sample sums on the graphics card
The running sum of every sample's color for a pixel when the render runs on the graphics card.
ACC[pixel] += max(sample, 0)
Rendered picture: mixing, post and color render/pt-wgsl.js32-bit in part- BimCraft
- ModelCraft
-
Denoiser exposure scale
The scale that brings the picture to the brightness the denoising network expects.
scale = 0.18 ÷ 2^(mean of log₂ L over 16 × 16-pixel bins)
Rendered picture: mixing, post and color render/pt-denoise.js64-bit- BimCraft
- ModelCraft
-
Denoiser input
The color, albedo and normal values given to the denoising network.
Rendered picture: mixing, post and color render/pt-denoise.js32-bit in part- BimCraft
- ModelCraft
-
Denoiser output
The denoised picture taken back to linear values.
linear = inverse curve(x ÷ norm) ÷ scale
Rendered picture: mixing, post and color render/pt-denoise.js32-bit in part- BimCraft
- ModelCraft
-
Triangles in world space
Every mesh triangle moved by its placement, cut by the section planes and stored for the kernels.
Path tracer scene, light and sky buffers render/pt-pack.js32-bit, display only- BimCraft
- ModelCraft
-
Derived material values
The relative refractive index, coat Fresnel average, extinction and dispersion term of a material record.
μt = −ln(color) ÷ depth; B = (η − 1) ÷ ((abbe ÷ scale) × (1 ÷ 0.4861² − 1 ÷ 0.6563²))
Path tracer scene, light and sky buffers render/pt-pack.js32-bit, display only- BimCraft
- ModelCraft
-
Physical sky color
The sky's color in a direction for a sun position and haze.
Path tracer scene, light and sky buffers render/pt-sky.js32-bit, display only- BimCraft
- ModelCraft
-
Light profile grid
A lamp's IES light distribution as a grid of direction multipliers.
multiplier = candela(θ, φ) × 4π ÷ flux
Path tracer scene, light and sky buffers render/pt-ies.js32-bit, display only- BimCraft
- ModelCraft
-
Adding samples to a pixel
The sum of sample colors and the sample count of every pixel in the reference tracer.
Path tracer kernels render/pt-ref.js32-bit, display only- BimCraft
- ModelCraft
-
Fresnel reflectance of glass
The share of light a clear surface reflects at an angle.
F = (r∥² + r⊥²) ÷ 2
Path tracer kernels render/pt-ggx.js32-bit, display only- BimCraft
- ModelCraft
-
Sample position
The random-like number in [0, 1) used for one dimension of one sample of one pixel.
Path tracer kernels render/pt-sampler.js32-bit, display only- BimCraft
- ModelCraft
-
Adaptive sampling test
Decides when a pixel has had enough samples.
v = max(0, (S₂ − S₁² ÷ J) ÷ (J − 1)); stop when √(v ÷ J) ≤ noise × (μ + 0.02)
Path tracer kernels render/pt-adapt.js32-bit, display only- BimCraft
- ModelCraft
-
Lamp strength
A lamp's lumens turned into the strength the renderers use.
point or spot: Φ ÷ 4π × 0.02; panel: Φ ÷ π × 0.02
Fast render lights and texture placement render/looks.js32-bit, display only- BimCraft
- ModelCraft
-
Sun direction for a pass
A direction inside a small cone around the sun, one per render pass, for soft shadow edges.
r = √h₅ × tan(degrees × π ÷ 180); a = 2π h₇
Fast render lights and texture placement render/looks.js32-bit, display only- BimCraft
- ModelCraft
-
Texture coordinates of a point
Where a point of a surface falls on its material's texture, in meters along and up the surface.
u = p · (up × n) ÷ |up × n|; v = p · (n × u axis)
Fast render lights and texture placement render/materials.js32-bit, display only- BimCraft
- ModelCraft
-
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.js64-bit- BimCraft
- ModelCraft
- PartCraft
-
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.js64-bit- BimCraft
- ModelCraft
- PartCraft
-
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.js64-bit- BimCraft
- ModelCraft
- PartCraft
-
Knot span
Which knot interval a B-spline parameter falls in.
STEP curves and surfaces: points from parameters step/geom.jsExact- BimCraft
- ModelCraft
- PartCraft
-
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.js64-bit- BimCraft
- ModelCraft
- PartCraft
-
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.js64-bit- BimCraft
- ModelCraft
- PartCraft
-
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.js64-bit- BimCraft
- ModelCraft
- PartCraft
-
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.js64-bit- BimCraft
- ModelCraft
- PartCraft
-
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.js64-bit- BimCraft
- ModelCraft
- PartCraft
-
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.js64-bit- BimCraft
- ModelCraft
- PartCraft
-
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.js64-bit- BimCraft
- ModelCraft
- PartCraft
-
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.js64-bit- BimCraft
- ModelCraft
- PartCraft
-
Torus
The point at two angles on a torus, and the inverse.
c = R + r cos v; S(u, v) = o + c cos u · x + c sin u · y + r sin v · z
STEP curves and surfaces: points from parameters step/geom.js64-bit- BimCraft
- ModelCraft
- PartCraft
-
Surface of revolution
The point of a profile curve turned about an axis by an angle, and the inverse.
S(u, v) = o + h z + rr cos u + (z × rr) sin u, h = (C(v) − o)·z, rr = (C(v) − o) − h z
STEP curves and surfaces: points from parameters step/geom.js64-bit- BimCraft
- ModelCraft
- PartCraft
-
Angle of a point on an ellipse
The ellipse parameter of the point on the ellipse nearest a given point.
f(t) = (E(t) − q)·E′(t) = 0, solved by t ← t − f ÷ f′
STEP curves and surfaces: parameters from points step/geom.js64-bit- BimCraft
- ModelCraft
- PartCraft
-
Parameter of a point on a B-spline curve
The curve parameter nearest a given point.
STEP curves and surfaces: parameters from points step/geom.js64-bit- BimCraft
- ModelCraft
- PartCraft
-
Parameters of a point on a B-spline surface
The (u, v) of the surface point nearest a given point.
[S_u·S_u S_u·S_v; S_u·S_v S_v·S_v] d = −[r·S_u; r·S_v], r = S(u, v) − q
STEP curves and surfaces: parameters from points step/geom.js64-bit- BimCraft
- ModelCraft
- PartCraft
-
Surface of linear extrusion
The point of a curve swept along a vector, and the (u, v) of a point.
S(u, v) = C(u) + v · vec; v = (q − C(u))·d ÷ |vec|, u = project(q − v · vec)
STEP curves and surfaces: parameters from points step/geom.js64-bit- BimCraft
- ModelCraft
- PartCraft
-
Offset surface
The point of a surface moved a distance along its normal.
S_off(u, v) = S(u, v) + d · n, n = (ΔS_u × ΔS_v) ÷ |…|
STEP curves and surfaces: parameters from points step/geom.js64-bit- BimCraft
- ModelCraft
- PartCraft
-
Length and angle units
The file's length unit in millimeters and its plane-angle unit in radians.
mm = prefix × 1000 for a meter; a conversion-based unit = its value × its base unit
STEP import: units, points and assembly placement step/read.js64-bit- BimCraft
- ModelCraft
- PartCraft
-
Point coordinates
A CARTESIAN_POINT in millimeters.
(x, y, z) × unit in mm
STEP import: units, points and assembly placement step/read.js64-bit- BimCraft
- ModelCraft
- 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.