Back to all projects Finite Automata Simulator

Finite Automata Simulator

Interactive automata simulator that converts regex to NFA/DFA/Min-DFA, visualizes state graphs, and simulates string acceptance in the browser.

Personal Completed Next.js 16 TypeScript React 19 Tailwind CSS 4 Bun XYFlow Dagre

Role: Full-stack developer

Overview

Finite Automata Simulator is an interactive web app for formal language and automata learning. It takes a regular expression, constructs an NFA using Thompson’s construction, optionally converts it to a DFA, minimizes the DFA, and lets users test string acceptance.

Key Features

  • Regex to NFA conversion with clear construction flow.
  • NFA to DFA subset construction.
  • DFA minimization using partition refinement (Hopcroft algorithm).
  • Interactive automata graph rendering.
  • String simulation to verify accepted/rejected inputs.

Technical Notes

  • Built with Next.js App Router and TypeScript.
  • Integrated graph layout + visualization tooling for readable state diagrams.
  • Designed as a browser-first learning tool with responsive UI and fast interactions.