Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Pinch Points 🦀
A fast, kid-friendly crab-routing game for 1-6 players, built in Rust with Bevy. The tide is out: place arrows in the sand to route streams of crabs into your castle before the sea (and the gulls) take everything back.

Install
- One line, fetching the latest release for your machine:
# Linux, macOS | # Windows (PowerShell) | - Prebuilt binaries for Linux, macOS and Windows (x86_64 and arm64) are
attached to each GitHub release.
Unpack the archive and run
pinch-points. - From crates.io, with a Rust toolchain:
--lockedbuilds against the dependency versions this game was tested and released with. - From source:
&&
The last two need Bevy's Linux build dependencies (libudev-dev,
libasound2-dev, libwayland-dev or X11 equivalents).
The game
Built on the skeleton of Sonic Team's ChuChu Rocket! (1999): creatures walk forward and turn at walls by a fixed rule, arrows are your only verb, and everyone places at once. What it does differently:
- Six players, not four, with team play that grows with the table.
- Every crab has a handedness, left-clawed or right, so one corridor can route two crabs to two destinations. Herding puzzles become sorting ones.
- The score is on the board: castles grow through four tiers as they score.
- A gull raid costs a third of a castle and spills live crabs back onto the sand for everyone to scramble over.
- The tide is the clock. The last 30 seconds double the gull spawn rate; the wave stops everything where it stands.
Plus terrain and a crab bestiary the original never had, AI that walks a cursor to the tile the way you do, and rounds shareable as text codes, even one still in progress.
Modes
- Campaign: a 100-level solo puzzle campaign, every level proved solvable with the arrows it grants and unsolvable without them.
- Versus: local versus for 2-6 on one keyboard plus gamepads, with team play, series, and AI at three levels, set up in three steps: the game, the map (picked from pictures of the very board you will play: the classic arena, eleven handmade maps each built around one idea, generated beaches, an edgeless open ocean, Random, or Surprise, a new generated map every round in one of five styles), and who plays each seat. Every round's map is mirrored at random, so no castle keeps an edge for good.
- Multiplayer: up to 6 over LAN, on deterministic lockstep with desync detection. Anyone past the sixth chair watches instead, and can talk to the table and vote on a random event to call down on it.
- Level Editor: a level editor whose solver proves a level beatable before it ships.
- Replay, Daily Challenge, Achievements.
Bots
Write your own bot, in any language, and play it against the game's AI, against other people's bots, or beside your friends. A bot is a program you run yourself that connects to the game over TCP and answers each tick with a move; the game never runs anyone's code.
$ pinch-points arena --seat ai:easy --open 1
Waiting for 1 bot. Start it with:
pinch://127.0.0.1:47710/H4TN-C2LV
$ python3 bots/python/greedy.py pinch://127.0.0.1:47710/H4TN-C2LV
pinch-points cup serve runs a competition between bots, pinch-points watch FILE plays any replay in the game, and a bot can take a seat on
the couch or join a LAN party. The protocol, the clocks and every
command are in docs/bot-protocol.md, and
bots/python/greedy.py is a whole bot in one
file to start from.
Controls
| Move | Place | Remove | Clear all | |
|---|---|---|---|---|
| P1 | WASD | arrow keys | Space | Left Shift |
| P2 | IJKL | numpad 8/5/4/6 | numpad 0 | numpad . |
| any seat | gamepad d-pad/stick | A/B/X/Y | LB | RB |
Pads are plug-and-play and fill seats from P2 up, so keyboard-plus-pad and two pads play with no setup, and two at one keyboard once P2 presses one of their keys. The whole game plays from a pad alone, the level editor included, and the prompt line names the buttons of whichever was touched last. The interface speaks eight languages.
Documentation
- pinch-points on the web: the
landing page, built from
site/. docs/guide.md: the full guide. Rules, every mode in depth, all the controls and settings, LAN troubleshooting, and the development hooks.docs/pinch-points-spec.md: the design document.docs/bot-protocol.md: writing a bot, anddocs/bot-seats.md, the design behind it.docs/backlog.md: remaining ideas.
Building
Requires Rust (2024 edition) and the Linux dependencies above. The simulation is engine-free, integer-only and bit-reproducible, which is what lets lockstep netcode, replays and the solver share one implementation. See the guide for asset regeneration, determinism and tooling.