recipe

Use when

You want movement and music fused so the soundtrack drives the platforming.

What it is. A precision platformer where the beat is the tick. You still run, jump, and dash a hand-built room — but every action only resolves on-beat, so a clean clear reads as a performance of the track.

Player fantasy / why it’s fun. You stop fighting the music and start riding it. The pull is the flow-state click of pattern-mastery-and-flow: input, hazard, and drum hit fuse into one pulse, and a perfect run feels like you played the song, not the level.

The brief

Celeste but the beat is sim time (mechanic-swap — replace the free-running clock with a quantized beat clock).

Take Celeste’s tight moveset and its trust in the player, then swap the substrate: nothing advances between beats. See process-the-twist for the vector, process-intent-to-brief for the shape.

The spine

Ride a hand-built room where nothing moves between beats, so your only agency is a move committed on the window — and every commitment locks you to the beat grid the next hazard is timed against.

PartThis game
ObjectiveClear the room — reach the end of the track, the level played like a song
SuperpowerA quantized move (run / jump / dash) — precise Celeste-grade traversal, but it only resolves on the beat
ScarcityThe beat-window: the narrow legal tolerance band around each beat is all you get to act. Spend it — hesitate, and momentum dies waiting for the next one; commit, and you can’t recall the move mid-air
ObstacleHazards derived from the track — spikes that extend on the downbeat, gaps spaced a beat of travel apart, a syncopated bassline authoring a syncopated jump pattern
RenewalThe track is the level: each new phrase re-poses “read the pulse, commit on the window” against a fresh hazard timed to a fresh beat pattern

Resonance

Every element traces to the spine. This table is the coherence proof — see process-the-spine.

ElementArrow back to the spine
Verb: quantized move (run/jump/dash)The single agency; traversal and timing fused — every input is a bet placed on a beat
Power creates the problemCommitting a move locks you to the grid of beats, and its arc lands you one beat later where the next track-timed hazard is already waiting → moving well is what strands you on-rhythm into the next window (passes the gate)
Scarcity: the beat-windowTurns the move into a choice of when, not a spam — the tolerance band is the whole decision, and it’s the whole difficulty dial (system-grace)
Renewal: the track authors the roomRe-poses “read-and-commit in one beat” against a fresh hazard each phrase — a syncopated line writes a syncopated challenge (process-composition)
Hazards derived from the track (spike retracts on the downbeat)The obstacle is the beat made lethal; a hazard bolted on off-grid would be dissonant (antipattern-dissonance)
Grace budget: visible tolerance + coyote frames + input bufferMakes the window honest — a near-miss reads as near, never cheated; without it the tight scarcity becomes an antipattern-input-lie
Death-handling: off-beat presses buffer, respawn is instant and cheapSpine is ride-the-song mastery; punishing a mistimed press would be dissonant — the loop says “fall back into the groove,” not “fear the beat”
Setting / structure: the level is the songObjective made physical — clearing the room is performing the track, so the soundscape is the spine, not scenery (world-soundscape)
Theme: stop fighting the music, start riding itThe mechanic (act only on the pulse) is the metaphor (flow-state surrender to the beat) — pattern-mastery-and-flow
Feel: a visible pulse + every effect landing on the beatMakes the window legible before you need it and the timing a look, not a count (pattern-readability, pattern-juice-choreography)

No row is decoration; no row fights the spine. The gate holds: committing your move is what locks you to the grid and drops you into the next track-timed hazard — you cannot traverse without betting your momentum on the beat.

Anchors

Reference beyond the anchor: Crypt of the NecroDancer (beat = turn, the canonical proof), Rhythm Doctor (one-button window discipline), Sound Shapes / BIT.TRIP RUNNER (level-as-song, obstacles on downbeats).

Genre + systems pulled

The twist applied

Vector: mechanic-swap — the sim clock changes substrate, everything else inherits.

Three seams, each a small swap that keeps the same skeleton:

Seam”X but Y”Twist vector
JumpCeleste’s jump but it only fires on the beatmechanic-swap (clock)
HazardA spike trap but it retracts and extends on the downbeatrule-swap (motion → tempo)
DashA free-aim dash but its distance is one beat of travel, fixedconstraint-add (quantize the verb)

The discipline: derive hazards from the track. A syncopated bassline authors a syncopated jump pattern. Don’t score a level and then bolt music on — process-composition.

The 3 pillars

Cut anything that doesn’t serve one of these. See process-pillars.

  1. Tight but fair — frame-exact input windows, but a visible grace budget so a near-miss reads as near, not cheated. Fairness is the whole trust contract; see pattern-fairness-and-trust and never antipattern-input-lie.
  2. Music as mechanic — the track is the level. Mute the audio and the timing should still be inferable from the visuals; turn it on and it should feel inevitable. This is where pattern-juice-choreography earns its keep — every hit lands on the beat, never near it.
  3. Readable beat — the player always knows when the next window opens. Pulse the world (a flash, a scale-bump, a metronome tick) so timing is a look, not a memorized count. Lean on pattern-readability.

Scope & first playable

Build the smallest thing that proves the fusion, then stop. See process-core-loop.

First-playable win condition: a beat-perfect run clears clean, and a human who feels the song can clear it without counting frames. If clearing means memorizing an arbitrary sequence, you built antipattern-guess-the-designer, not a rhythm game.

Explicit non-goals for v1: no scoring ladder, no combo multiplier, no branching charts, no second track. Difficulty comes from tighter grace and busier hazards on the same verbs — pattern-escalation-and-payoff — not from new buttons.

Handoff

Design ends here; proof lives in the verify targets.

If it fights back, it’s usually the clock: an off-beat that feels on-beat means audio drifted from the counter. The counter is truth; make audio chase it.

This module rendersthe repo's markdowndirectly — edit it there, it changes here.