Candela
A rangefinder you can pick up and turn.
Fig. 10
Product / 3D viewer
A product site built around one modelled object. Nothing on it is described in a shader: the object was made, then shipped.
A full-manual rangefinder in 26 parts, modelled in Blender at real proportions, given four genuinely different materials, and lit in the browser by a studio rather than a light.
-
Model it, don’t shade it.
Procedural geometry with computed colour has no manufacturing history in it. This object was built from primitives with booleans and bevels at its real proportions — 139 by 80 by 39 millimetres — and the knurls on the rings are a radial displacement, not a texture, because at the zoom the site allows a knurl texture reads as a sticker.
CheckAn angle-limited 0.45 mm bevel on every hard edge is what draws the thin bright line under the studio light. That line is the whole difference between “machined” and “a box with a phase”.
-
Four materials in one frame is a pipeline.
One convincing material can be luck. Brushed aluminium, glass with real transmission and an index of 1.517, leather with a procedural grain baked to a single normal map, and matte rubber — all in the same frame, under the same light.
-
The brush is drawn at run time.
Procedural node graphs do not survive a glTF export; the exporter flattens the brushed roughness to one number and the plate arrives as featureless chrome. So the brush is redrawn on load as literal strokes on a canvas — zero bytes, and each UV island gets its own stroke direction, which is what machined parts do.
-
A studio, not an HDR.
No environment file ships. The lighting is a procedural scene baked once: a gradient surround plus five emissive rectangles — key, overhead, cool fill, rim, floor bounce — which is what a product studio physically is. A long softbox draws the long specular streak down a brushed plate; a point light never will.
CheckPanel energy is kept modest: a saturated surface cannot show a brush stroke.
-
Fit the sphere, not the silhouette.
Zoom is a factor of the object’s bounding sphere, so however it is turned it cannot leave the frame. Idle motion is an oscillation about the authored angle, never a spin — a continuous rotation means the composition somebody designed exists for one frame in eighty.
CheckThe canvas is focusable: arrow keys turn it, plus and minus dolly, so the object is reachable without a pointer.
-
The budget was the texture, not the mesh.
The first export was 2.19 MB, of which one leather normal map was 85 percent. Re-encoding it to WebP cut the file by a factor of three; the geometry itself, Draco-compressed, is about 320 kB.
- Parts
- 26modelled from primitives, rebuilt deterministically by a script
- Triangles
- 33kin a 702 kB file, down from 2.19 MB
- Text elements measured
- 126against computed colour with ancestor opacity composited in; zero AA failures
- Accent contrast
- 6.5:1brass on ink; body 16.7:1, secondary 7.5:1