Skip to content

reeshavsinha/AutomataLab

image

AutomataLab

A modern, fast, and interactive cross-platform desktop application for designing, simulating, and testing automata across the Chomsky hierarchy — from finite automata to Turing machines.

Release Platforms License
Tauri React Vite

AutomataLab Screenshot


Download & Install

Ready to build some state machines? Download the latest stable release for your operating system:

Download AutomataLab v4.1.0

Auto-updates are fully supported for all platforms from v1.0.2 onward.


Features

  • The Full Chomsky Hierarchy: Finite automata — Deterministic (DFA), Non-Deterministic (NFA), and Epsilon-NFA (ε-NFA) — Pushdown Automata, both deterministic (DPDA) and non-deterministic (NPDA), and now Turing Machines (TM) and Linear-Bounded Automata (LBA).
  • Interactive Canvas: Seamless drag-and-drop interface for placing states and drawing transitions. A one-click auto-layout (powered by ELK) tidies messy diagrams into a compact, readable arrangement.
  • Live Simulation: Run step-by-step or continuous simulations with custom speed controls. Watch the automaton process strings with full visual branching for non-deterministic paths.
  • Tape, Stack & Computation Tree: A Turing-machine tape panel with a live head, instantaneous description, LBA boundary markers, a live preview of your input as you type, a marker for the head's last move, and one row per tape for multi-tape machines; a stack panel with push/pop animations for PDAs; and a status-coloured computation-tree viewer for every branch of a nondeterministic run (NFA, ε-NFA, NPDA).
  • Reject States & Loop Guard: Mark explicit reject states for TM/LBA, and rely on a configurable step limit that halts runaway computations as stuck.
  • Transition Table (δ) Editor: Edit every transition in a grouped, inline table view as an alternative to the canvas — with click-to-locate jumps back to the matching state or edge, and a clickable ε button for entering epsilon transitions without an epsilon key.
  • Conversions & Constructions: One-click NFA → DFA and ε-NFA → DFA (subset construction), ε-NFA → NFA (ε-elimination), DFA minimization, Regex → NFA (Thompson's), and CFG → PDA — each played back step by step on a live preview with a Source ⇄ Result toggle, then opened in a new tab. Converted machines use clean, short state names (q0, q1, …) with the original subset or merged class revealed on hover or via a full-labels toggle.
  • Export & Batch Testing: Export the transition table, execution trace, and computation tree as CSV / LaTeX / JSON, export the state diagram as PNG / SVG (theme-aware), and run many input strings at once with accept: / reject: expectations in a pass/fail batch runner.
  • Desktop Native: A familiar classic-desktop workspace — a top File / Edit / View / Simulate / Convert / Help menu bar above a compact toolbar — with a multi-tab interface, native file saving/loading (.autolab.json), keyboard-accessible dialogs (focus-trapped, Esc-to-close), and over-the-air auto-updates.
  • Real-Time Validation: Instant UI feedback on missing start states, unreachable nodes, nondeterminism, and invalid configurations — plus optional declared stack/tape alphabets (Γ), a one-click Complete DFA fix, and click-to-locate from any warning to the offending element.

For more detailed information, please check out our Project Wiki.


Keyboard Shortcuts

Shortcut Action
Space or P Play / Pause Simulation
Right Arrow or S Step Forward Simulation
Left Arrow Step Back Simulation
R Reset Simulation
N Add a state at the viewport centre
I / F Set selected state as Start / toggle Accept
Ctrl + Z / Ctrl + Y Undo / Redo
Ctrl + Click / Shift + Drag Add to selection / rubber-band select an area
Ctrl + C / V / X Copy / Paste / Cut
Ctrl/Cmd + N / O / S / Shift + S New / Open / Save / Save As
Delete Remove selected elements
Double Click Edit label / Enter drag mode

Development

Want to build it from source?

# Install dependencies
npm install

# Run the Tauri development app
npm run tauri:dev

License

This project is licensed under the MIT License.

About

A modern, interactive desktop application for visually designing and simulating various types of automata., for theoretical computer science.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Contributors