A one-page site for a solitaire ring. There are no photos and no model files: the ring and the stone are built in code.
Live: g.a.d. — Made to be looked at.
The stone
- Geometry is a
ConvexGeometryover points computed from real round-brilliant proportions: table 56 , crown 34.5°, pavilion 40.75°, star 50 , lower girdle 77 %. The in-between girdle points sit on their facet planes, so the girdle scallops like a real one. Oval and princess cuts come from the same code. - After building the hull, coplanar triangles are merged into facet planes (up to 128), which go to the shader as a
vec4array. - The fragment shader does the optics: Fresnel reflection off the facet you look at, then refraction inside (IOR 2.42). Because the stone is convex, the exit point is simply the nearest facet plane ahead of the ray, so each bounce is one loop over the planes. Up to 7 bounces (4 on phones), total internal reflection when the angle says so, and a small per-channel IOR spread for the fire.
- The environment is a
CubeCamerarender of a small studio scene: softboxes, an overhead strip and a lime kicker.
The ring
- The band is a custom sweep: a flat-topped, comfort-fit section swept round the finger axis, with the engraving inside. Each claw is a
TubeGeometryalong a curve from the collar, over the girdle, onto the crown; the gallery rails are tori. Metals areMeshPhysicalMaterialpresets for 18k yellow, 18k rose and platinum 950. - Scrolling (Lenis) takes it apart: the stone lifts out, the claws open, the band drops, each part labelled. A small configurator swaps metal and cut live.
Happy to answer questions about the stone shader.
