OBSIDIAN BLOOM

A PROCEDURAL OBJECT · No. 001

Obsidian
Bloom

A flower cut from black glass and chrome, grown from a single equation. Nothing here was modelled. Scroll, and it opens.

DESCEND

I

Calyx

Twenty-five petals sealed against the dark, wrapped in three whorls like a fist of vitreous stone. Every surface you see is one function — petal(u, v) — evaluated on a bare grid of vertices, sixty times a second, entirely on the GPU.

II

The Unfolding

The outer whorl loosens first. Each petal carries its own delay and its own easing curve, so the flower never opens as a mechanism — it opens as a decision, edge by rippling edge, the cup flattening as the tip curls back.

III

Chrome

Jewellery is lit, not painted. Around this flower hangs an invisible black studio — cold softboxes above, knife-edge strips at the sides, one warm champagne panel low — folded into an environment map so every petal drags long white streaks of light across its lacquer.

IV

Full Bloom

At one hundred percent the geometry holds still and only the light keeps moving — a gold phyllotaxis burning in the throat, dust drifting through the beams. A flower that never grew, photographed in a room that never existed.

ANATOMY

One equation,
twenty-five petals

Petals
25 · 3 whorls
Geometry
≈ 20k vertices, positioned in GLSL
Normals
Numeric ∂/∂u × ∂/∂v
Lighting
Procedural studio → PMREM
Motion
Scroll → eased bloom uniform
Stack
Three.js r170 · GSAP 3.12
Read the build guide

Entirely procedural. No models, no textures, no AI assets — only mathematics and light.

THE ATELIER

Hold the
equation

A flower grown from mathematics can be regrown, endlessly. These three dials reach directly into the vertex shader — the same petal(u, v) running sixty times a second. Turn them slowly. Nothing snaps; every value is eased like a clasp closing.

LIVE UNIFORMS
000%
1.00×
1.00×
Hallmark OB·001 — B000 · W1.00 · L1.00

MATERIALS

Lacquer & light

The petals carry no texture and no paint. Their entire character is a conversation between one physical material and five invisible lamps.

AThe obsidian lacquer

One MeshPhysicalMaterial, tuned like a lacquered stone: a near-black metallic base under a wet coat of clear varnish. Because the base is so dark, everything you see is reflection — the material is effectively a mirror that has been dimmed.

  • Metalness0.85
  • Roughness0.22
  • Clearcoat1.00
  • Coat roughness0.12
  • Base — #101014, black glass
  • Clearcoat — the wet varnish layer
  • Fresnel rim — champagne, at grazing angles

BThe invisible studio

Around the flower hangs a black photographic studio that is never rendered — five emissive planes folded into an environment map. Each lamp exists only as a streak of light on the lacquer. These switches are live: put a lamp out, and watch its streak leave the petals.

KEY · COLD · 9× STRIP 7× STRIP 5× RIM · 4× · BEHIND CHAMPAGNE BOUNCE · 2.2×
Elevation of the studio. Hover a lamp to trace its rays — click it to switch it off in the render above. The environment map is refolded on the spot.

PROCESS

From equation to light

Four moves, in order. Everything downstream of the first line is consequence, not decoration.

  1. 01

    The equation

    A single parametric surface — silhouette, cup, curl, ripple — shaped by whorl index and a per-petal random.

    petal(u, v) → vec3
  2. 02

    The normals

    The surface is sampled three times per vertex; two tangents crossed give a true normal for a mesh that never stops moving.

    n = ∂u × ∂v
  3. 03

    The light

    Five emissive planes — a black studio — folded into a prefiltered environment map the lacquer can drink from.

    studio → PMREM
  4. 04

    The bloom

    Scroll becomes one scalar, eased twice, and the whole object — petals, void, HUD — answers to it.

    scroll → uBloom