ABOUT
You are a small glowing thing in a long corridor. The world scrolls. You fall. Click / Tap / Space to flip gravity — up becomes down, down becomes up. The walls are not your friends.
Red spikes line the floor. Blue spikes line the ceiling. Most of the time both walls are studded with obstacles, and the only safe route is a narrow gap that scrolls past. Flip just before you enter the gap, ride the gravity, flip again when the next gap appears. Miss a flip and you get crushed.
The further you go, the faster it scrolls, the tighter the gaps. Pass through a gold ring for a combo bonus. Graze an obstacle at speed for a near-miss bonus. The music builds with your combo and your speed.
HOW TO PLAY
Click / Tap / Space flips your gravity. Each flip reverses your fall direction. There's a short cooldown so you can't spam-flip — shown as a ring around you.
Read the corridor ahead. Red = floor spikes, blue = ceiling spikes. The gap between them is your path. Time your flip so you're moving away from the wall the spikes are on when you reach them.
Each run starts with a brief spawn shield (about half a second). After that, a single mistake is fatal — wall or spike, you're crushed. Aim for the longest run you can sustain.
M mute · R restart · sound mix lives in SETTINGS
HOW IT'S MADE
GRAV is a third game in the portal — no code shared with PERIGEE or RIPPLE, no engine, no assets. The whole thing is a deterministic simulation running at a fixed 120 Hz (rendering decoupled), written in TypeScript, drawn on a raw Canvas 2D, with every sound synthesized live in WebAudio.
Procedural obstacles: paired wall-spikes, single walls, zigzags. Difficulty scales with distance — obstacle height grows, gaps shrink, scroll speed climbs. The audio drone pitches and arpeggiates based on your current gravity (gold = downward triad, cyan = upward triad) and your combo.
HIGH SCORES — BEST RUN
| # | PILOT | DISTANCE |
|---|---|---|
| loading… | ||
MOST DETERMINED — LIVES LOST
| # | PILOT | DEATHS |
|---|---|---|
| loading… | ||