Skip to content

Getting Started

Reeshav Sinha edited this page Jul 14, 2026 · 5 revisions

Getting Started

Welcome to AutomataLab! This guide will take you from zero to a fully running, simulating formal language environment. AutomataLab is a unified platform featuring three interconnected workspaces: the Machine Workspace, the Grammar Lab, and the Parser Studio.


1. Installation & Setup

Install the Desktop App (Recommended)

  1. Go to the latest release.
  2. Under Assets, download the installer for your platform:
    • Windows.msi or .exe (NSIS) installer.
    • macOS.dmg (universal/Apple‑Silicon depending on the build).
    • Linux.AppImage or .deb.
  3. Run the installer and launch AutomataLab.

Note: Auto‑updates are supported from v1.0.2 onward. Newer versions download and install over the air automatically.

Security Prompts (macOS / Windows)

The app is signed for updates but may not be notarized/code‑signed for the OS gatekeeper. If your OS warns about an unidentified developer:

  • macOS: Allow it via System Settings → Privacy & Security.
  • Windows: Click More info → Run anyway on the SmartScreen prompt.

Try it in the Browser

Prefer not to install anything? A web build runs at AutomataLab Web Simulator. The simulation engine is identical to the desktop app; only native file-system integrations differ (in the browser, saving/loading uses standard browser download/upload mechanics).

Build from Source

If you are a developer looking to contribute, you will need Node.js (LTS), npm, and the Rust toolchain.

# Clone the repository
git clone https://github.com/reeshavsinha/AutomataLab.git
cd AutomataLab

# Install JavaScript dependencies
npm install

# Run the desktop app in dev mode (with hot reload)
npm run tauri:dev

# Or run just the web frontend
npm run dev

2. Navigating AutomataLab

AutomataLab is organized into three major workflows. You can seamlessly switch between them using the primary navigation tabs:

  1. Machine Workspace: Draw, edit, and simulate Finite Automata (DFA, NFA, ε-NFA), Pushdown Automata (DPDA, NPDA), and Turing Machines (TM, LBA).
  2. Grammar Lab: Define Context-Free Grammars (CFGs), compute FIRST/FOLLOW sets, check for nullability and ambiguity, and perform Chomsky/Greibach Normal Form conversions.
  3. Parser Studio: Automatically generate Top-Down and Bottom-Up parsers (LL(1), LR(0), SLR(1), CLR(1), LALR(1), CYK, Earley) from your grammars and visualize parsing steps on input strings.

3. Your First Simulation (A 60‑Second DFA)

Let's build a machine that accepts strings containing an even number of a's.

  1. Select the Machine Workspace: Ensure you are in the default workspace.
  2. Set Machine Type: In the toolbar, ensure the dropdown is set to DFA.
  3. Add States: Press N (or select the Add state tool) and click on the canvas to drop two states: q0 and q1.
  4. Mark Start & Accept: Right-click q0 and select Toggle Start. Right-click q1 and select Toggle Accept.
  5. Draw Transitions: Hover over q0 until the connection dot appears, then drag to q1. In the editor that pops up, type a. Draw a transition back from q1 to q0 and type a. Draw a self-loop on q0 for b, and a self-loop on q1 for b.
  6. Execute: Type aaba in the input bar at the bottom.
  7. Simulate: Press Space to play the animation, or use the S / keys to step through it manually. The active state will light up, and the status badge will tell you if the string is ultimately Accepted or Rejected.

What's Next?

Dive deeper into each specific workspace:

Clone this wiki locally