← Playground一覧に戻る

Starlight Relay — Opening

A 66-second anime-style opening for a show that doesn't exist: a flat, hoodie-wearing heroine dances while her pastel city boots up into a neon cyberpunk night and melts into a city-pop dusk — drawn live in Canvas 2D, scored with Tone.js, finished with a WebGL shader.

Cut 13 64+15

Starlight Relay — Opening

A TV anime opening is one of the most rule-bound forms in animation: a cold open, a logo drop, credits floating in the corners, a build-up in the pre-chorus, a full dance in the chorus and a title card at the end, all cut to the theme song. This one follows those rules for a show that has never existed, over thirty-two bars at 116 BPM. The show’s ending is its quieter half.

It opens on a pair of sneakers tapping on a pastel checkerboard. The music is muffled until she lifts the headphones from her neck onto her ears, and then the beat drops in clear. Over the pre-chorus her candy-coloured town boots up: the buildings stretch into towers, neon outlines draw themselves in, the floor turns into a wet grid, and the chorus lands in a rainy cyberpunk night. For the last eight bars the same city melts into a city-pop dusk — a striped sun sinking into the bay, a highway of tail lights, palms at the edges of the frame — and the chords turn into the progression Japanese pop borrowed from Just the Two of Us.

How it moves

Nothing here is a video or an image file. The heroine is drawn every frame as flat Canvas 2D shapes, from a rig solved with two-bone inverse kinematics: the choreography only says where her hands and feet should be, and the elbows and knees work themselves out. Key poses sit on beats and are joined with Hermite splines, so she moves through a pose instead of stopping in it. Her hips lead, her chest follows a fraction of a beat later, her arms after that and her head last — the overlapping action that keeps a body from moving like a single puppet. Underneath the keys runs a groove that changes with the world: a springy bounce in the pastel part, hard hits in the cyberpunk part, a half-time sway in the city-pop part.

The ends of her bob, the hoodie drawstrings, the hem and the jeans cuffs are spring simulations. They are computed once when the page loads, for every sixtieth of a second of the song, so they still settle and overshoot naturally while the scrubber can jump anywhere.

The score is played by Tone.js synthesizers, and Tone’s transport is also the clock for the picture, so the dance stays locked to the audio. Her mouth follows the lead melody note by note. The finished frame goes through one small WebGL pipeline for bloom, chromatic aberration, scanlines, film grain and a colour grade that shifts with each world, plus the glitches that announce the change.

Click the picture — or press Space — to pause and resume. The cut numbers above the scrubber jump straight to each cut; the timecode is written the way an animation timesheet writes it, seconds + frames at 24 fps.

Cut sheet

CutBarsWorldShot
011–2PastelTilt up from tapping sneakers to her face
023–4PastelTitle; headphones go from neck to ears
035–8PastelFull-shot dance on the checkerboard
049–10PastelUpper body, tracking sideways
0511–12PastelWide, slow roll
0613–14Pastel → neonClose-up; she notices the city changing
0715–16NeonCrouch, leap, the camera follows her up
0817–20CyberpunkThe drop — full shot in the rain
0921–22CyberpunkUpper body, pushed in on the beat
1023–24CyberpunkWide pan, spin, hands in pockets
1125–28City popThe sun comes up over the bay
1229–30City popUpper body, waving at the sunset
1331–32City popEnd card
SectionChords
Intro, verseI – vi – IV – V in C, music-box bells over a bouncing bass
Pre-chorusii7 – iii7 – IVmaj7 – V7, a filter sweep and a noise riser
Chorusvi – IV – I – V, four-on-the-floor with supersaw stabs and a delayed arpeggio
OutroIVmaj7 – III7 – vi7 – v7 I7, FM electric piano and a slap-style bass