Monroe Yorke — CAD Ring Viewer

Real-time preview of your CAD deliveries. Drop a .glb below to see how it renders. Adjust metal, HDRI environment, camera-locked photo lighting, and diamond material to test the model in different conditions. Or try the customer-facing Configurator preview to see how this looks on a PDP.

Load model
ES-395.glb (sample — replace with your own)
or drag a .glb file anywhere on this page to load it instantly
Viewer
Rotate · Tilt · Zoom · Compare metals and lighting
3
0.02
1.60
0.25
0.30
1.15
0.060
0.015
3.0
14°
0.15
Booting three.js…
BVH build on first load may take a few seconds. If this hangs, open the browser console (Cmd+Opt+I).
Renderer: bare three.js r163 BVH: not yet built Diamond material: ShaderMaterial (BVH raytraced) FPS: —
The technique (v3.5): for each diamond mesh, build an SAH BVH with three-mesh-bvh. Wrap the mesh in a ShaderMaterial whose fragment shader is given the BVH as a uniform texture. Per pixel, cast the view ray, refract at the first facet (Snell's law), then trace up to N bounces against the BVH. Any bounce that fails Snell's condition becomes internal reflection. The final direction samples the HDRI equirect map. Spectral dispersion (new): instead of chromatic aberration on 3 channels, we sample 6 wavelengths across 400–650 nm, each with a physically correct IOR from the Cauchy formula for diamond (n = 2.378 + 0.0129/λ²). Weighted by wavelength→RGB response, this gives real diamond fire — the rainbow flashes you see on cut stones.

Photo lighting: on top of the HDRI, we add camera-locked "virtual" light sources baked into the diamond sample. When a diamond's exit ray points near the key light's world-space direction, we boost that pixel's brightness. Metal responds via real DirectionalLights targeting the same directions.

Bloom (new): the entire render passes through an UnrealBloomPass — bright specular highlights bleed outward, giving stones the "sparkle" perception that separates a photograph from a raw render.