Psalm 87
87 BPM  /  48 Bars  /  2:12

Psalm 87

DARK  ·  BAR 1.1  ·  BEAT 01/192  ·  0.00 s

Phase one, bars 1–8. Three bars of dark, then four hits in bar 4: windows at half, windows full, rays break out and the back hills come up out of the black, full blaze. Every hit is fully out before the next downbeat. No background hill crests higher than the one the citadel stands on.

Phase two, bar 9. Four beats of zoom — the citadel shrinks to a speck and the world grows out from under it. The speck stays pinned wherever the citadel stands, so the point the camera abandons is the point the light comes from: the globe's centre is derived from where that point has to land on screen, not the other way round.

The citadel is not at the pole. It sits 38° off the sub‑viewer point, up and to the left — which is the whole difference in how a pulse reads. At the pole it stood on the limb, so every front was born already touching the horizon and you never saw one as a circle. From here a front opens as a closed ring, meets the horizon at 52° of arc, and then the ring breaks and its two ends run round the limb at quite different speeds until the last of it goes over the edge at 128°. Up‑left because the spin carries near‑side features right, so the citadel drifts in toward the middle of the disc across the film and out to the far quadrant by the end, never leaving view.

One beat, one crossing. A wavefront launches on every beat and reaches the antipode in exactly one beat, converging as the next one leaves. The antipode is now genuinely round the back rather than on the rim, so its convergence flare is pushed out to the limb in the antipode's direction and then clipped to everything outside the disc. Both halves of that matter: projected, it would sit on an innocent near‑side point nowhere near the antipode, and unclipped, half of it would lie across the near‑side surface and read as the back of the world showing through. The front's arc gets the same treatment — no far‑side pass, so it simply ends at the horizon. The graticule is still drawn through the planet, on purpose, because that is what makes the sphere read round.

Light is a property of place, not of a landmass. The world is painted at full daylight value — blue sea, green land with drier ground and grey ridges, brighter inland water, ice at both poles — and then composited through a light field computed per pixel from the angle between that point and the citadel. So a coastline lights as the front reaches it, and a continent sits half lit while the front is still crossing it. Behind the edge the glow decays over 0.95 rad, which leaves about four percent by the time the next front arrives: a patch is fading out just in time to be struck again.

Act three, bar 12. A jump cut down to one place on that world: a figure fishing in the gloom, a cross‑shaped grave marker and a craggy tree behind him. A full bar later the pulse arrives and the marker turns out to be a windmill — its four sails were sitting in a cross — and the tree turns out to be in full leaf. The crown is grown from the bare branch tips, so both readings occupy the same outline. The figure's head is two drawings, swapped on the beat: chin tucked over the rod, then craned back at the sky. A cut, not an animation.

The reveal does not snap. We have just watched this wavefront cross an entire globe, so it is seen crossing a field too: it wipes in from the left over about a third of a beat, with a bright crest riding the boundary. While the front is on frame the act is drawn twice — lit to the left of the seam, dark to the right — and since the two versions are different shapes rather than different colours, anything standing on the seam is briefly half one thing and half the other. The cross is a windmill on its left side and still a cross on its right. The crest is wide enough to cover any notch where the two silhouettes disagree, and the front leans, running a little ahead at the top.

The pond and the roof take their light a full bar after the cut in. The coast takes it a beat earlier than that, at beat 81 rather than 82, because that is where the vocal is: the band drops to 0.07 just before beat 80, climbs, and spikes to 0.99 at 55.89 s against a 0.3–0.6 background. Beat 81 is 55.86 s, so the front enters frame one frame ahead of the stressed syllable and has crossed the whole picture 0.24 s later. The pattern is a default, not a rule — the cut is to the music.

Two on the roof. The second figure is drawn in exactly the same flat silhouette language as the first, so the only thing available to say anything with is the outline: an A‑line hem where he has two trouser legs, a narrower shoulder than his coat, and a mass of hair carrying past the shoulders. No features, no colour, no detail. She stands a little further back, which is why she is fractionally smaller, and she tips her head back on the same cue he does.

Then it loops out and back, twice more. Two bars of the world, then a roof: a dead lamp, a water tank on spindly legs, and two people at the parapet. No silhouette puns there — the shapes never change at all. The windows come on, the lamp comes on, the washing on the line turns out to have colours, the dead twigs in the pot turn out to be in flower, and they both look up. Two bars of the world again, then a coast: a pagoda, a torii standing in the shallows, a junk at anchor, lumps drifting on the water that turn out to be paper lanterns. Three places, three cultures, one light, and in each of them somebody notices.

The book opens, bars 19–20. Six beats, lifted a pair at a time off the tail of the roof and the head of the coast. A shut ledger with a hand laid palm‑down on it, and the hand lifts the cover away: seven written lines a page, fourteen across the binding, and not one tick anywhere in it. It is the film's last act played backwards — the same foreshortened flap, the same left hand, the same leather — and running it in reverse costs one sign. Three things did have to change for it. The swing runs on a smoothstep rather than the ease‑out the rest of the film uses: ease‑out is 98% finished three quarters of the way through, so the cover fell open early and then sat there for a second and a half. The cover goes under the leaves once it is past upright, because an open book's front board lies beneath the left‑hand page rather than over it. The frame slides onto the closed book and lets that slide unwind as the book comes open and re‑centres itself, since a shut book occupies only the right half of the spread. And the hand comes down to 64%, because the finale looks at it from a camera nearly three times further back.

Home, bar 24. Back to the citadel, fully lit and still pulsing, and the road is filling up. A hundred and thirty standing slots are walked out along the centreline, spaced by half a figure's width corrected for perspective. The column starts two‑thirds up and its head reaches the door on the last beat of the act.

The head is a fractional slot, and it slides from its old value to its new one across the first tenth of each beat — about four frames — with a hop through the middle of the stride. That slide is the whole thing: snapped to fixed slots the column looks frozen and the beat just appears to bolt another figure onto the tail. Sliding makes each figure travel along its own leg of the switchback, so half the line moves left while the other half moves right.

The lamps on the road burn. They are the one thing outside the walls that emits anything. The windmill, the city’s windows, the street lamp, the pagoda and the paper lanterns all merely catch the citadel’s light; the road is the citadel’s own approach, so its lamps are the citadel’s too. Each is skewed a fraction off the beat so the line lights as a run up the spire rather than as a row of flashbulbs, and the overdrive goes into the bloom radius, since the alpha is already at one.

Born there, bars 26–28. Back at the gate, with four still outside waiting to go in. The doorkeeper names one of them: he points, his mouth comes open, and the citadel drops a shaft over the battlements onto the man his finger lands on. The man goes straight through — he is moving three tenths of a beat after the light finds him and gone half a beat later — the arm swings to the arch and drops, and four beats after the cut in we are already inside. Three are left standing there.

Inside, half full, bars 27–28. A four‑second jump cut to the courtyard while the party is still filling up: same fountain, same bunting, same lights, half the people. pop is a threshold on a per‑figure hash, so thinning the room removes the same figures every time and leaves every remaining one exactly where it stood — the crowd is not regenerated, just attended by fewer. The floor shows between them and you can see the whole basin, neither of which is true when they come back to it packed in bar 40.

The strike is on beat 104, 71.72 s, frame 2152, and the man is the first in the queue — the one standing nearest the arch, who then walks through it. Scanning the vocal band, the level drops to 0.06 across 71.19–71.34 s and the phrase then runs from 71.39 to about 72.15 at 0.45–0.67 of full. Beat 104 is the only beat that falls inside that phrase, and the act opens just two beats ahead of it — enough for the hold and the wind‑up and no more — so the cut off the road lands at 70.34 s and the shaft 1.4 s later. The road keeps those beats and the ledger takes the rest back on the other side. The cue is carried on the figure itself rather than inferred from its position in the queue, so which of the four gets named stays one line.

The ledger, bars 29–33. An open book, seven written lines a page, fourteen across the binding, some already carrying a green tick in the margin. The riffle starts on a beat and stops dead on one; the hand then works down the margin at a constant speed and puts a tick in on the beat. Three passes at three stages of the same book — 42%, 78% and 96% ticked — and because whether a line carries a tick is a threshold on a stable hash of that line, a line ticked at 42% is still ticked at 96%. The book fills up rather than reshuffling. The leaves in flight are six near‑opaque ones rather than twenty translucent, which is what makes a riffle read as pages instead of as blur.

The march, beat 130. From beat 136 the track runs a steady alternation of on‑beat and off‑beat onsets that strengthens all the way to beat 147 — a left‑right cadence, and the only place in the song with that figure. The percussion there is almost silent, which is why a kick‑and‑snare scan found nothing and the pattern had to be measured off onset positions within the beat. One gate pass sits on top of it: sixteen beats, one admitted per beat, starting two beats ahead of the cadence on beat 130. The queue had to be given 32 slots rather than 16, because at a beat apiece it emptied the line halfway through and the marching stopped for want of anyone left to march.

The gate, bars 33–37. Close on the arch. A clerk at a desk to one side, the queue stepping up on the beat, a tick going into his book each time, and the party behind the opening as low‑contrast shapes so it reads as something is going on in there at a glance. Size and lean are keyed to each figure’s identity rather than to the slot it stands in — on fixed positions with identical figures a queue looks frozen however fast it advances, which is the same trap the road procession had.

Two cutaways, a beat each. The last‑name pass is broken twice: one beat of the road, packed the whole way up, and one beat of the queue going in at the door, on beats 148 and 151. Across beats 146–154 the weight of the track measures on 147, 150, 151 and 153, so 151 sits on one of them and 148 a beat off the first. Coming back on 152 puts us on the book at the exact frame the last tick starts. That pass came down from three riffle‑and‑scan cycles to two: with a quarter of its eight beats spent away from the book, three left nothing on screen long enough to register as pages turning. The ledger’s own clock keeps running while we are away, which is what makes these cutaways rather than pauses.

The room is a packing problem. The finale does not gain people on a cue — they walk in off the left, the right and the bottom across the whole act. Half the room is already in and the other half streams in steadily from the first beat, all of them through the door by beat 11, which leaves seven beats to finish packing. Everyone repels everyone within arm’s reach, soft walls at the frame edge stop it spilling, and the fountain basin pushes people out of itself. There are 710 of them and 355 walk in.

That schedule is the third thing this scene got wrong. The first cut put a thin trickle across fourteen beats and then two thirds of the room in the last 3.6 of eighteen — so the opening half was genuinely starved, and a solver that equalises density spreads a starved room evenly, which reads as holes everywhere rather than as a half‑full room. The last arrivals also had 1.1 beats to settle, so it was still visibly converging at the moment the act cut away from it. Filling in earnest from the first beat fixes both ends of that at once. Relaxation of that kind settles toward equal spacing — hexagonal packing — which is what shoulder to shoulder actually is. The people already there are squeezed inward by the ones arriving, rather than being replaced by a denser arrangement of themselves.

The first attempt barely showed, for three structural reasons. Which edge an entrant used was decided by where it was headed, so only figures destined for the middle third ever came up from the bottom and that edge never filled along its length. The inward drive switched off the instant they crossed the wall, so they parked along the edges and the shove had nowhere to propagate — which is also why nobody near the fountain moved at all. And aiming that drive at a point in the middle sent them into the water, because it could out-push the basin. It is now three flat fronts of pressure, straight in off whichever edge they came from, held for three beats after they arrive and then decaying.

Even with the edges pushing properly the far field stayed holed, and the reason is worth stating: repulsion can only push apart. A gap surrounded by people already at their spacing is a perfectly stable configuration — nobody has any reason to move into it. It takes a standing bias to make anyone step into a space at all.

So there are three of them. A lean toward the back of the room, where the fountain and the light are — set too strong that one does the opposite, saturating the far field first, because figures there are smaller and pack tighter, and draining the foreground. A pressure gradient, which is the one that actually fills holes: the same grid that finds neighbours also counts them, each cell measured against how many that row can hold, and everyone pushes down the slope from crowded toward empty. That is what makes a gas fill a container, and it is a property of density over distance rather than of contact. And a little decaying heat, because a packing that has settled into a lattice with voids in it needs shaking to find its way out.

Two traps in that. A hole in the floor plan looks exactly like a vacancy to a density gradient, so the first version marched people straight into the fountain; the basin’s cells are seeded as occupied. By area, though, not all‑or‑nothing — blocking a whole cell the moment its centre fell inside meant a 74 px cell that merely touched the water read as completely full, and the gradient held everyone a cell and a half clear of it, leaving a bare ring exactly where people should have been pressed against the rim. Nine samples a cell now, and a cell reads as however full that fraction of it would be. The zone itself also came down to 40% of its height, all of it off the top, so the bottom edge stays where the near rim is. That lets people stand well above the basin — which in turn means draw order can no longer be a single threshold. In the fountain's own column anyone above its near rim is drawn before it and occluded by it, exactly as they should be; everywhere else the old back‑to‑front rule still holds. But mark one cell too many and the opposite happens — the space behind the fountain read as occupied too, so the crowd fled it and left a hole where a hole should not be. Everything above y 524 is drawn before the fountain and therefore hidden behind it, which makes that space perfectly usable, and it fills. The exclusion now covers only the 148 px band a figure would be drawn in front of. The timestep also went from 12 to 20 samples a beat, which converges faster and lets a shove travel further within a beat — the earlier version was settling correctly, just too slowly to see inside eighteen bars.

Two things made it practical. Pairwise, 518 figures is 134,000 comparisons a frame, and at 710 it is 252,000; a uniform grid over the floor drops that to about a dozen neighbours each. And the whole film is a pure function of t — that is what lets you scrub, and what lets a headless renderer agree with the browser frame for frame — so a path‑dependent simulation cannot run live. It is baked once, 361 samples across the act, into a 2 MB table of positions, and draw() looks the frame up and interpolates. The bake takes 205 ms and is done at load rather than as a stall the first time the film reaches the courtyard. Depth order has to be rebuilt every frame, because they have moved since the grid was laid out.

The courtyard, bars 39–43. Inside, and it is going off. A tiered fountain in the middle falling back into itself — a jet, arcs of spray, and a soft sheet off each rim with streaks running down it — ripples spreading in the basin, bunting overhead, lanterns swinging. The light is high and happy and never goes dark — it breathes between about 86% and 112% on the beat.

Unlike the glimpse through the gate, every figure here is drawn on its own: 442 of them on a perspective grid, shoulder to shoulder, depth‑sorted, each with its own fill, its own outline and a line weight that grows as they come forward. That is what stops them merging into one silhouette — and the far ones lift toward the haze so the crowd recedes. The bop comes from three interleaved phase layers, applied per figure so the draw order stays free to follow depth. Each figure goes up and down inside two thirds of a beat and then rests one and a third — a four‑thirds‑beat cycle — and the three layers are staggered by a third of that, so a hop is starting somewhere in the crowd every 0.27 s. The hop is held in beats rather than seconds so the whole film still comes off one number: move the BPM and it moves with it.

A quarter of them are playing something. A hand harp, a viola under the chin with the bow across it, or a horn up and out from the mouth. Each is drawn inside its owner's own transform, so it leans and sways with them, and every dimension is scaled off the body height — which is what keeps a harp in the back row a legible suggestion instead of a smudge. The harp is a stroked open frame, not a filled triangle: filled, it reads as a solid wedge and the strings disappear inside it, and it is taller than it is wide or it reads as a fan. The horn is a narrow tube that stays narrow and then flares hard in the last quarter — a plain cone off a point is a megaphone; it is the silhouette of the flare that says horn. The band hops exactly as high as everybody else.

Just over a quarter of the crowd is carrying one, and the three are dealt 38 / 34 / 28 off a hash of the figure's index rather than off the generator's random stream, since drawing from that stream here would have reshuffled every position downstream of it. The first attempt dealt them evenly and the horns still looked like they outnumbered the harps three to one: they were bright, large and standing up in clear air above the crowd, while the harps were dark, held at chest height and buried behind whoever stood in the row in front. Counting them settled it — 25 harps to 26 horns in the first 400 figures. It was never the count. The harps are held up beside the head now.

The book closes, bars 44–48. One continuous shot, and the only one in the film with a moving camera after the pull‑back in bar 4. It opens framed exactly as the three earlier ledger passes were — riffle left, drag the stylus down a column of nothing but ticks, riffle right, drag it down again — and then the camera eases back and tilts up until the desk is a shelf across the bottom of the frame and the gate is standing over it. The whole shot lives in the ledger’s own coordinates and the camera is a single affine transform, so at the head of the shot that transform is the identity and the cut in is invisible.

A left hand sweeps the cover across over one beat — the same foreshortened flap the riffle uses, in leather instead of paper — and lands palm down on the closed book. And that is the only thing that shuts. The gates are two leaves of bars, hinged at the jambs and standing back against the wall, each carrying half an arch on its head so that shut they would close the opening exactly — the edge that is now their outer one is the edge that would have met its partner at the apex, which is why they are taller outboard than at the hinge. They never shut. The light keeps pouring out past them while the book comes closed under it, and the film fades on an open gate.

Cut to the track. 87.000 BPM, 48 bars, first downbeat at 0.0115 s — measured off the audio by spectral‑flux autocorrelation, and steady to within half a percent of a beat across the whole middle of the song. Every act boundary above is a bar line of that recording, and two are hard anchors: the globe arrives on beat 36, where the drums drop, and the book closes on beat 184, on the final stab, with the near‑silent bars 44–46 covering the pan up and the cover coming over. Track loads an audio file from your own machine — nothing is uploaded — and from then on the animation is a slave to the audio clock rather than to the frame loop, so the two cannot drift however many frames get dropped. Offset ms nudges the downbeat. Counter puts a frame number, a timecode and a bar reading on the picture, quoted at 30 fps.

Everything derives from one number. WAVE_BEATS = 1 ties travel time to the beat; set the BPM or tap it against your track and the whole film re‑times. Click any cue below to jump there.