Candy Paint: a piano cover performed note by note in Three.js

Hi everyone! I made a browser-rendered music video for a piano cover of Post Malone’s “Candy Paint.” Little pearls of light follow the score, landing on every note and splitting and merging for chords.

The Three.js/WebGL renderer is deterministic: every frame is a function of song time. Transkun transcribed the piano cover, and a motion test checks all 1,893 note onsets. I built it with Claude Code in about a day of back-and-forth.

I’d love feedback on the choreography, especially the split/merge behavior.

Play it live in your browser

Watch the video

Source

How it was made