TUI EnhancedFirst-person · 3D · Gravity
GRAVESHIFT
The floor is a suggestion.
A first-person shooter in real 3D, inside your terminal. Aim at any surface and press E: that's the floor now. Five levels you can only get through by turning gravity, and a boss at the end of each.
Made by Riley Marsden
five levels · five bosses · endless mode · no account · records save in this browser · 1 MB

INTAKE. No floor over the pit, so you walk the wall across.
The idea
Any surface can be the floor
Gravity points one of six ways, and you choose which. Everything that isn't bolted down obeys: machines, crates, the heavy orbs in flight. Every level is built so you can't get through without it.
Aim at any surface (a wall, the ceiling, the side of a block) and it becomes the floor. A cyan ring shows where you'll land.
Gravity pulls you away from where you aim. Look down and press Q: you fall onto the ceiling.
Gravity back to normal. The room rolls, the screen tears, and everything loose falls with you.
- +GRAVKILL X2
- +SKEWERED
- +PARRY
- +GRAVSHIFT
> [GRAV] GRAV VECTOR -Y > -X. INERTIAL DAMPERS 73%
Kills by the room
- WALLSPLAT
- launched into a wall hard enough
- GRAVKILL
- fell when you turned the room
- SHREDDED
- into a wall turbine
- CRUSHED
- under a piston
- FRIED · VOIDED
- onto a live panel, or into a pit
- RETURNED
- its own shot, punched back
- DEBRIS
- hit by a crate you threw
- SKEWERED
- two or more on one lance beam
Any surface is a floor.
E pulls you toward where you aim. Q pulls you away from it: look down and press Q to land on the ceiling. A cyan ring shows where you'll land.
Levels that need it.
Chasms crossed on the walls, shafts climbed straight up, barriers passed on the ceiling, live floors, rising coolant, rooms whose gravity turns by itself.
Five bosses, five ideas.
A press whose stomps run along its floor. A conductor that electrifies the surface you stand on. Something in the dark. A fan the size of a hall. The Anchor.
Real 3D in a terminal.
A software renderer: textured, lit, fogged, with bloom. Sent as Kitty graphics or Sixel (a palette made for each frame), or drawn in characters anywhere else.
Style keeps the beat.
D to SSS. Each level has its own tune; drums, bass and lead come in as your chain builds.
Five sectors
Down through the facility
Each level is its own place with its own light, music and boss. Arenas lock until they're clear; doorways are checkpoints. Then there's ENDLESS: the spindle room, waves forever, a boss every fifth wave.
SECTOR 1
INTAKE
concrete and amber light
Learn E and Q: a chasm you cross on the wall, a shaft you walk up, a barrier you pass on the ceiling, a live floor.
THE FOREMAN
A walking press. Its stomps run along the floor it stands on, so fight it from the walls. Turn gravity and it topples.
SECTOR 2
NEON SPRAWL
black, pink and cyan neon
A long chasm, a tall shaft, platforms gliding over a pit between live walls.
THE CONDUCTOR
It electrifies whatever surface you're standing on, after a warning. Change floors. Its core opens while it charges.
SECTOR 3
BLACKOUT
near darkness; you carry the light
A dark arena around a pit, a live floor, a chasm you can barely see across.
THE LURKER
Unseen unless lit. Its eyes flare before it lunges. Turning gravity stuns it out in the open.
SECTOR 4
THE TURBINE
teal steel and hazard stripes
A room whose gravity turns by itself, coolant flooding a shaft as you climb, platforms.
THE ROTOR
A fan the size of the hall. It blows you back, its hub opens when it vents, and it surges the hall's gravity.
SECTOR 5
THE SPINDLE
screens, red and cyan
A storm, a flood, a barrier, and the column room at the centre of everything.
THE ANCHOR
Armour on a cycle, orb rings and sweeping lasers. From two-thirds health it seizes the room's gravity itself.
TUI Enhanced
Not characters. Pictures.
Every other PlayTUI game paints with characters. GRAVESHIFT renders real 3D (textures, lights, fog, bloom) into a framebuffer, then sends it the best way your terminal understands. It picks for you; F2 switches while you play.
Kitty graphics
sharpestKitty · Ghostty · WezTerm
Each frame goes to the terminal as one compressed picture, scaled to fill the window.
640 × 360 and up
Sixel
Windows Terminal 1.22+ · foot · iTerm2
Each frame becomes a sixel image with a 255-colour palette made for that frame, sized to the window. The HUD is drawn at full size.
640 × 360 and up
Blocks
every terminal
The classic PlayTUI trick: ▀ in 24-bit color, two pixels per cell, only changed cells sent. Zoom out (Ctrl −) for more.
one per half cell
In this browser, the game runs the same Rust code compiled to WebAssembly and draws at 480 × 270. The downloaded game is the full thing.
Screens
Straight from the renderer

01 / 08 · ← → to look aroundswipe to look around
NEON SPRAWL. Fighting from the wall of a locked arena.
Controls
Mouse and keys
Expansions
More sectors
New levels to turn upside down, and new things to throw into them. When one is published, it appears here.
The first expansion is on its way.
Download
Take it to the terminal
One small file for Windows. Double-click it; it opens in Windows Terminal and draws with Sixel. Mouse look works while its window is in front; Tab frees the mouse.