Play

It's a playable prototype. No installer yet, so you build it from source. Takes a few minutes. Quit whining.

Platform status

PlatformStatus
LinuxDevelopment and release builds available
WindowsCross-checked in CI. Native launch checks pending
macOSCross-checked in CI. Native launch checks pending

Successful CI runs attach short-lived test bundles for all three systems on the Actions page. Those are test bundles, not stable releases. A tag-driven release pipeline is ready and will publish checksummed bundles when the first version is cut.

Requirements

  • Rust 1.87 or newer, with Cargo
  • On Linux, ALSA development headers for audio (libasound2-dev on Debian and Ubuntu)
  • FFmpeg and ffprobe for video and animated GIF/APNG. Animated WebP and still images use the built-in decoder

Start a game

git clone https://github.com/UnsupervisedMedia/PieceOffApp.git
cd PieceOffApp
./play.sh                      # builds, starts a room server, opens the app
./play.sh path/to/clip.mp4     # open a file straight away
./play.sh --two clip.mp4       # second client, to try multiplayer on one machine

Pick an image, video, animated image or .pieceoff package on the start screen, create a room, and share the invite code. A friend enters the server address and the code to join. The address defaults to ws://<host>:28878/ws for a room on another machine.

Controls

ActionControl
Fit board, focus board, focus trayF B T
Multi-select piecesCtrl-click (Cmd-click on macOS)
PanDrag empty space, Shift-drag, or middle/right mouse
Video play/pauseSpace
Video seek← → by five seconds
HelpF1 or ?

Every shortcut can be rebound under More → Controls….

Supported media

Still images and animated WebP decode natively. Video (MP4, MOV, MKV, WebM, AVI, MPEG, OGV, FLV, 3GP, WMV, TS, MTS, M2TS) and animated GIF/APNG use FFmpeg, which is not bundled; install it, place it beside the app, or point to it under Media tools. The server accepts files up to 16 GiB by default.

Open the repo