- python3 -m sandtable install-desktop puts a Gyre icon in the app grid and on
the desktop (freedesktop .desktop entry with a "Quit Gyre" action).
- The icon runs `launch`: starts the web page in the background (no terminal,
own session, log in .cache/server.log) if it isn't running, then opens it.
A dialog shows the reason if it can't start.
- Quit link on the page (local computer only) and `quit`: stop any design,
motors off, close the page.
- Gyre icon (sandtable/static/gyre.svg), also the page's tab icon.
- Simulator takes several lines per tick, so streaming tests aren't slowed.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
README, build guide, software README, web page header and title, jog page,
desktop alerts and the start-up message now say Gyre. The repo, the Python
package and its commands keep their names (sandTable, python3 -m sandtable),
so links and setups keep working. New web page screenshot.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
After the last design (or a Stop), the player sends $SLP (GRBL and FluidNC
sleep), so the motors stop holding and the table is quiet. The page shows
"Motors off"; the next design wakes the controller (reset + unlock) and homes
first, since the arm can be moved by hand while the motors are off. The jog
panel wakes it too. Setting: motion.motors_off_when_done (default true).
Checked on the real Uno: Idle -> $SLP -> Sleep -> reset -> Alarm -> $X -> Idle.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- python3 -m sandtable web: local web page to play designs from a library of
27 built-in patterns, upload .thr or .svg, pause/skip/stop, jog and calibrate.
Reconnects by itself when the USB cable comes back.
- Plays .thr files and built-in generators with an erase spiral between them,
constant ball speed, host-side homing on stock GRBL 1.1 (Uno + CNC shield),
FluidNC for the ESP32 board.
- Home switch guard: patterns never press the switch, so a press means lost
steps and stops the machine at once with an alert.
- lineart.py turns SVG line drawings into one continuous path.
- Tests against a GRBL simulator.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>