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.

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.

EToward

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.

QAway

Gravity pulls you away from where you aim. Look down and press Q: you fall onto the ceiling.

RBack

Gravity back to normal. The room rolls, the screen tears, and everything loose falls with you.

SSSSSSHIFTSTORM
  • +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

sharpest

Kitty · 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

NEON SPRAWL. Fighting from the wall of a locked arena.

01 / 08 · ← → to look around

NEON SPRAWL. Fighting from the wall of a locked arena.

Controls

Mouse and keys

MoveW A S D
LookMouse / arrows
Jump, wall jumpSpace
DashShift / C
Fire (hold: charge)Left mouse / J
Alt fireRight mouse / K
Punch, parryF
Gravity toward where you aimE
Gravity away from where you aimQ
Gravity back to normalR
Weapons1 2
PauseEsc

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.

Windows

Windows 10 and 11

Download

macOS

Apple silicon and Intel · the first time, right-click it and choose Open

Download

Linux

x64, any modern terminal

Download