The order things actually happen in, end to end: from dropping a fresh plate on the stage to a folder of per-frame images and video. Each step links to the full reference for that tab.
On the Setup tab, scan for and apply a camera, connect the printer backend (Marlin or Klipper), and configure the laser/GPIO output if this run uses stimulus. Check the Hardware Status panel — if the printer shows not-homed, everything downstream is blocked.
Full Setup reference →Homing is a hard gate: experiments (and even relative jogs) refuse to run from an unhomed state, because the printer's reported position can't be trusted until it does. Use "Home All Axes" from the Setup warning banner or the Manual Control tab.
Manual Control reference →Physically place the plate on the stage. Any existing calibration was measured against the previous plate's exact position — a new plate (or the same plate reseated) needs its own calibration before the well map can be trusted again.
On the Calibration tab, jog to and Set all four physical corners (Upper-Left, Lower-Left, Upper-Right, Lower-Right). Set the grid dimensions and scan pattern, then Update Well Map — bilinear interpolation fills in every well position from the four corners. Save the calibration as a named JSON profile so it's selectable from the Experiment tab.
Use Quick Capture here to grab a still or short burst from a well or two and sanity-check focus and exposure before committing to a full run.
Full Calibration reference →On the Experiment tab, name the run and select the calibration you just saved. Choose Image (single still per well) or Raw Burst (max-rate timestamped frames, optionally split into Pre/ON/Post laser phases). Select wells on the grid, set the output folder, and optionally enable Auto-process after experiment so Processing picks up the output the moment the run finishes. Start Experiment.
Full Experiment reference →If auto-process wasn't enabled, open the Processing tab and add the experiment's output folder to the queue. This turns each well's raw .npy burst into a PNG image sequence and video (VFR MKV + display MP4). The same conversion is available headlessly via scripts/reconstruct_vfr.py.
Each experiment folder ends up with raw/ (source .npy frames + per-well metadata JSON), a top-level points CSV, and — after processing — images/<well>/ and videos/. See the full output structure on GitHub.
Pause/Resume/Stop live directly on the Experiment tab during a run. For anything else — a stuck jog, re-homing after an e-stop, toggling the laser by hand — the Manual Control tab is the tool for it, and it's also gated on homing for the same safety reason as step 2.