-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Reeshav Sinha edited this page Jun 20, 2026
·
7 revisions
AutomataLab is a modern, fast, cross-platform desktop application for designing, simulating, and testing automata across the Chomsky hierarchy — from finite automata all the way up to Turing machines. It pairs an interactive, node‑based visual canvas with a rigorous, theory‑faithful simulation engine.
Built with Tauri + React + TypeScript, it runs natively on Windows, macOS, and Linux, and also ships as a web build on Vercel.
Current version: v4.1.0 — see the Roadmap for what's next and the full changelog.
- Seven machine types covering the whole Chomsky hierarchy: DFA, NFA, ε‑NFA, DPDA, NPDA, TM, LBA — including multi‑tape Turing machines.
- Interactive canvas — drag‑and‑drop states, draw transitions from a hover connection dot, and tidy diagrams with one‑click ELK auto‑layout.
- Live simulation — step forward/back or play continuously at adjustable speed, watching the active states, stack (PDA), or tape (TM/LBA) update in real time.
- Computation tree / trellis — visualise every branch of a nondeterministic run, colour‑coded by status.
-
Transition (δ) table editor, data export (CSV / LaTeX / JSON), and a batch test runner with
accept:/reject:expectations. - Real‑time validation with declared input (Σ) and stack/tape (Γ) alphabets, plus a one‑click Complete DFA fix.
-
Desktop niceties — multi‑tab editing, native save/load of
.autolab.jsonfiles, light/dark themes, and over‑the‑air auto‑updates.
| If you want to… | Read |
|---|---|
| Install the app or build from source | Getting Started |
| Learn the editor, panels, and workflow | User Guide |
| Understand the machine models | Machine Types |
| Run and debug a simulation | Simulation |
| Test many strings at once / export data | Transition Table & Data Tools |
| Hand‑write or generate a machine file | File Format |
| Hack on the codebase | Architecture |
| Understand project rationale | Decision Log |
| Help improve the project | Contributing Guide |
- Getting Started — download, install, build from source, your first machine.
- User Guide — canvas, tools, editing, panels, files, tabs, shortcuts.
-
Machine Types — the Chomsky hierarchy and how each model behaves.
- Finite Automata — DFA, NFA, ε‑NFA.
- Pushdown Automata — DPDA, NPDA, the stack.
- Turing Machines & LBA — tape, multi‑tape, reject states, bounded heads.
- Simulation — controls, tape/stack panels, computation tree vs. trellis, loop guard.
- Validation & Alphabets — warnings vs. errors, Σ and Γ, Complete DFA.
- Transition Table & Data Tools — δ‑table, export, batch runner.
-
File Format — the
.autolab.jsonschema. - Keyboard Shortcuts — every shortcut at a glance.
- Architecture — tech stack, engine design, how to add a machine type.
- Decision Log — rationale behind architecture and process decisions.
- Contributing Guide — development setup, standards, and review process.
- FAQ & Troubleshooting — common questions and fixes.
- Roadmap — shipped milestones and what's planned.
AutomataLab is released under the MIT License.
AutomataLab v4.1.0 · Repository · Download · Web app · MIT License
Using the app
Machine models
Tools & data
Project