No.104 · Backgrounds
Tessera
A frosted-glass mosaic of tilted panes that catch a slowly sweeping light — and warm in colour near your cursor.
The prompt
Written for the variant you picked above: Frost
Write a WebGL1 background that looks like a wall of leaded, frosted glass. Tile the surface with a Voronoi diagram (about seven panes across the shorter side) whose feature points breathe very slowly, and treat every cell as a separate pane of glass. Give each pane its own tilt from a hash of its cell id, turn that into a surface normal, and light it with a directional light that sweeps slowly across the wall over ~50 seconds: Lambert diffuse for the body of the pane plus a tight specular glint, so panes flare and dim one by one as the light passes. Add fine per-pixel frost noise inside each pane, vary each pane's thickness a little, and draw dark leading along the edges (F2 − F1 below ~0.05) with a faint bevel highlight just inside each edge. Finish with a gentle vignette. The cursor warms the glass: compute each pane's centre and blend panes within ~0.3 of the pointer toward the palette's warm tint, so whole tiles change colour rather than a round spotlight — the mosaic stays a mosaic. Ease pointer position and strength. Render at 0.8× (0.6× and ~30fps on touch), pause offscreen, and draw one still frame under reduced motion. Palette: [grout, glass, highlight, warm]. Selected variant — Frost: Frost glass: palette [#07050a grout, #7f93b8 glass, #eef3fb highlight, #c8a0e0 warm] — cool blue-grey panes that warm to lilac under the cursor.
Notes
- Interaction
- Panes near the cursor warm toward the accent colour, tile by tile, and cool again when it leaves.
- Motion
- Light sweeps continuously (~50s cycle); feature points breathe; pointer warmth eases at 5–10% per frame.
- Accessibility
- Canvas is aria-hidden; reduced motion renders a single still frame.
- Responsive
- Tile count scales with the container's shorter side; density is a prop.
- On touch
- No warming on touch; the light sweep carries it.