All work

Case 01 / 06

I'm having bad dreams

The rebuilt dream: a sphere of light held together by gold seams, above the words I'm having big dreams

An interactive story about a kid whose dream breaks, and the fight to rebuild it. Real-time WebGPU, scroll-driven, with a soundtrack synthesised in the browser.

Client
Personal project · Interactive story
Year
2026
Role
Concept, design, WebGPU, GSAP, sound
Live site
dreams.paulvl.eu ↗

01 / 03

The project

A kid grows up with a dream, scrolling is time passing, and a doorframe keeps the marks of every year. Then the screen cracks, the dream shatters into pieces and they sink into the mud. To go on, the visitor has to hold and pull him out, and he falls back twice before he makes it. Day after day he picks the pieces up, and the dream comes back together with gold in its cracks, like kintsugi. Through all of it, four words at the bottom of the screen never move: brave, honest, loving, kind. The dream is 72,000 particles simulated in a WebGPU compute shader with three.js and TSL, and the score is synthesised live in the browser with WebAudio.

02 / 03

Highlights

  • WebGPU compute particles
  • three.js TSL
  • GSAP ScrollTrigger
  • Lenis
  • Generative WebAudio score
  • Hold-to-rise interaction

03 / 03

Walkthrough

Thousands of particles gather into a glowing sphere, the dream, under a night sky
01 · The dream takes shape
The screen cracks like glass and the dream falls apart into shards
02 · Something breaks
A small ember stuck in dark mud, with a ring that fills while the visitor holds to pull it out
03 · Hold to get up
The dream rebuilt, its cracks filled with gold
04 · Stronger where it broke

06 / 06

Contact

Something like this? Let's talk.