DeskDot Open in browser GitHub
Tetris running on a 32×32 LED panel
32×32 · Livereal render
GamesLive2 players

Tetris

Falling blocks with a next-piece preview. The AI stacks by holes, height and bumpiness. ←/→ move, ↑ rotate, ↓ soft drop, A hard drop, B rotate back. B in the demo opens the menu: Versus (clear lines to send garbage) and Co-op (one wide well).

At a glance

OutputLiveRendered by the engine and streamed over Bluetooth as its data changes (about 5–9 frames a second).
Settings15every one editable live in the studio, or by an agent with update_app_settings
ButtonsRestart · Autoplaystudio buttons, or app_action over MCP
Sourcegames_puzzle.pysrc/deskdot/apps/games_puzzle.py

Game

Players1–2seat 1 on the keyboard or studio, the rest on phones over your Wi-Fi; empty seats are played by the AI
Controllers
D-padGamepadKeyboardAnalog stick

Modes

ModePlayersPlay
Solo default1Solo
Versus2Teams
Co-op2Co-op

Maps

EmptyMoundRising

Themes

ClassicNeonRetroMonoPrismCandyDeep sea

Settings

Settings
SettingTypeDefaultOptions / range
General
Speedspeedwhole number51 – 10
ThemethemechoicePrism
ClassicNeonRetroMonoPrismCandyDeep sea
AI skillskillHow well the demo AI playsnumber0.80.0 – 1.0
Show scoreshow_scoreon/offOnon / off
Landing shadowghoston/offOnon / off
Start levelstart_levelwhole number11 – 10
Graphics
EffectseffectschoiceFull (particles, shake, flashes)
Full (particles, shake, flashes)Calm (no shake or flashes)Minimal
Game flow
Intro & results screensintro_outroon/offOnon / off
Play itself when idleattractThe AI plays while nobody does (great in a playlist)on/offOnon / off
Plays itself withpilotchoiceBuilt-in AI
Built-in AIFruit-fly brain (sees only the pixels; docs/FLY_BRAIN.md)
Game
Garbage sentattackchoiceClassic (2 lines → 1)
Classic (2 lines → 1)Mirror (every line)
Rising floor every (s)rise_everywhole number155 – 60
ModemodechoiceSolo
SoloVersusCo-op
MapmapchoiceEmpty
EmptyMoundRising
Playersplayerswhole number11 – 2

Try it

render a frame to PNG (no panel needed)
$ uv run deskdot preview tetris --settings '{"theme":"classic"}' --out tetris.png
show it on your panel (engine running)
$ curl -X POST http://127.0.0.1:8765/api/apps/tetris/activate

Or ask your agent: “Show Tetris on my panel”. It calls show_app with "tetris". New here? Set up DeskDot first.

More games apps