← back

Domain Expansion: Interface Overwrite

iframeclip-pathExperimental

The original plan was to use the WICG html-in-canvas API to snapshot the page into a WebGL texture and animate it away with a blob shader — pixel-perfect, native, no JS reimplementing the CSS cascade. It turned out drawElementImage only accepts direct children of a <canvas> element. Passing document.documentElement throws. Every time. The API is unusable for full-page capture.

domain-expansion.dev
toggle ↓
Experimental · 2025clip-path · two iframes

Domain Expansion: Dilapidating Pixels

shattervoronoiExperimental

After the WICG path closed, a second attempt at the reverse direction. Two iframes again — but going back to light shatters the dark frame into a Voronoi tiling, each polygon falling and fading to reveal the live light iframe underneath.

domain-expansion.dev
toggle ↓
Experimental · 2025cracks · shards · two iframes

Alpine World

Three.jsExperimental

I wanted to build you somewhere to sit. A proper alpine valley — six biomes, one continuous path, nothing to do except walk and listen.

Lauterbrunnen Valley
·

use headphones

for the full experience

Experimental · 2025journey · alive
okay, back to work →

A portfolio should not be a scaffold for work. The work starts from the portfolio.

Overheard somewherea thought while you wait