-
Notifications
You must be signed in to change notification settings - Fork 0
User Guide
A tour of the editor and how to build, edit, and manage machines. For running a machine see Simulation; for the model semantics see Machine Types.
- Toolbar (top) — machine type, file actions (New / Open / Save / Save As), machine settings (blank symbol, step limit, tape count, declared Σ/Γ alphabets), undo/redo, auto‑layout, and an ⋯ overflow menu (theme, help, check‑for‑updates, Export…).
- Canvas (centre) — your state diagram, with a tool palette on the left rail and a minimap (auto‑hides for small machines).
- Side panel (right) — tabbed: Validation, History, Computation Tree, the δ‑table, and (for TM/LBA) the Tape. The panel is resizable and remembers its width.
- Input bar + simulation controls (bottom) — the input string and the play / step / step‑back / reset controls.
- Tab bar — multiple machines open at once; each tab is independent.
The left rail makes the editing mode explicit (instead of relying on hidden modifier keys):
| Tool | Use |
|---|---|
| Select | Move and select states/edges (default). |
| Add state | Click an empty spot to drop a new state (also N at the viewport centre). |
| Add transition | Click a source state, then a target, to connect them. |
| Add text | Drop a free‑floating, resizable text annotation (not part of the machine). |
You can always draw a transition directly by hovering a state until its connection dot appears and dragging to the target.
- Move — drag in Select mode.
- Rename — double‑click a state and type; Enter commits, Esc cancels.
- Mark start / accept / reject — right‑click a state for the context menu. Exactly one state may be the start; any number may be accept; reject states apply only to TM/LBA and render with a red double‑ring (a state cannot be both accept and reject).
- Delete — select and press Delete, or right‑click → Delete.
Double‑click an edge (or use the transition editor that opens when you connect two states) to set its label. The editor adapts to the machine type:
- Finite automata (DFA/NFA/ε‑NFA) — one or more input symbols; an ε‑edge is allowed for ε‑NFA.
-
Pushdown automata (DPDA/NPDA) —
read, pop → push(any field may be ε/empty). -
Turing machines & LBA —
read → write, directionwith an L / R / S selector; multi‑tape TMs show one cluster per tape (a → b, R | _ → c, L).
Several transitions between the same pair of states are bundled onto a single edge; the label shows a compact ×n count that expands on hover/selection. See Validation & Alphabets for the determinism rules per type.
Press the auto‑layout button to tidy a messy diagram. It uses the ELK "stress" layout for a compact, roughly symmetric, deterministic arrangement with no overlapping states (start state toward the left) and re‑frames the view to fit. Free‑floating text notes keep their place.
- Undo / Redo — Ctrl+Z / Ctrl+Y; rapid edits are coalesced into single steps.
-
Copy / Cut / Paste — Ctrl+C / X / V. Paste preserves PDA stack operations, TM tape moves (
write/direction, multi‑tape arrays), and reject states.
- Machines are saved as
.autolab.json(plain JSON — see File Format). - New / Open / Save / Save As… live in the toolbar, with a Recent files menu and shortcuts Ctrl+N / O / S / Shift+S, plus Ctrl+T / Ctrl+W for tabs.
- An unsaved‑changes guard prompts Save All / Discard / Cancel before you close the app or a tab with unsaved work; a ● dot marks unsaved tabs.
- Opening a file never clobbers unsaved work — it reuses an empty tab or opens a new one.
- Toggle light / dark from the overflow menu; the choice is remembered.
- The
?help dialog has a quick‑start and a keyboard‑shortcut cheat sheet. See also Keyboard Shortcuts.
AutomataLab ships with a visible keyboard‑focus ring, higher‑contrast muted text, larger base fonts, and ARIA roles/labels on the side‑panel tabs, canvas tool palette, context menus, and simulation controls.
AutomataLab v4.1.0 · Repository · Download · Web app · MIT License
Using the app
Machine models
Tools & data
Project