Launch spread is the share of the duration over which cubes set off; flight is how long each is in the air. Together they should stay near 0.98.
Whip is how much of the spin happens near arrival. Lower spreads the swirl along the whole path.
Scroll: after landing, the page's own scroll drives the burst both ways (the hero stays pinned for that distance); side-scroll or drag turns the camera. Timed and Fade play on their own and loop.
Scrubbing pauses the sequence and shows one exact frame.
120 frames, flushed timing. The real number, not submission time.
1 / 9
The whole bouquet is built from one size of cube, placed on whole-number grid positions. Because every cube is identical and aligned, the renderer always knows how any two cubes stack — that is what keeps the drawing simple and correct.
2 / 9
From the camera’s angle you can only ever see a cube’s top and two sides, so those three faces are all that is drawn — the three faces behind are skipped. Each visible face gets its own shade, and the shade comes from the light’s angle.
3 / 9
There is no depth buffer. The cubes are sorted by distance from the camera and drawn in that order, far to near, so a nearer cube always paints over a farther one. While the cubes are flying in, the order is kept fixed for the whole flight so nothing flickers.
4 / 9
The model has 3,014 cubes. 1,495 of them are fully enclosed by neighbours and can never be seen, so they are never drawn. From the front, another 809 sit exactly behind the cube in front of them, so they are skipped too. 710 cubes make the picture.
5 / 9
Every cube face points one of five ways, so the shade for each direction is worked out once per frame from the light's angle, and every cube reuses those five numbers; the light is attached to the camera, so when the camera goes around, a face's shade changes smoothly and no cube is ever recoloured.
6 / 9
From out here the bouquet sits still on its axis while the cubes fly in and, later, scatter. What looks like the bouquet turning on the main page is the camera circling it with the light attached, so every face keeps its shade.
7 / 9
No cube is placed by hand. A generator builds it part by part — stems, paper, greenery, blooms, ribbon — from about forty parameters. Change one and the whole bouquet regenerates.
8 / 9
The assembly is not a recording. Every cube’s position is computed from a single progress value, p, so dragging p back and forth always gives the same picture. Nothing is random: every jitter comes from the cube’s own index, which is why it replays exactly.
9 / 9
The dispersal works the same way: q goes from 0 to 1 with your scroll, and every cube’s scattered position is a formula of q. Scroll back and q falls, so the bouquet reassembles.