What Does the App Do?
It’s a visual simulator for deterministic finite automata. You can build an automaton from scratch (add states, transitions, set the start state and final states) and then test strings to see if the automaton accepts them.
The best part is that you can watch how the string is processed step by step, seeing the states the automaton goes through, like in the video below:
Some of the things you can do:
- Easily add and name states
- Define transitions between states using alphabet symbols
- Mark the initial state and accepting states
- Test different strings and see how the automaton processes them
- Clearly see whether a string is accepted or rejected
Why Did I Build It?
I thought it’d be a cool idea to make something I wish I had when I first started learning about automata.
Sometimes you get the theory, but when you try to see it in action, it’s hard to follow too many papers or super limited simulators. This tool tries to fix that in a visual and interactive way.
What Did I Use to Build It?
I used some modern web dev tools, mainly:
- Vite to build the app with HTML and JavaScript
- Vercel to deploy it
- Some CSS with Tailwind for styling and layout
Who Is It For?
It’s mainly for programming and computer science students studying automata. But it can also help teachers who want to show how these automata work in a more visual way.
What Could Be Improved?
There’s still a bunch of features I’d like to add, like:
- Support for non-deterministic automata (NFA)
- Exporting and importing automata in JSON format
- Saving examples or past simulations
- Adding a dark mode
If you have any suggestions or want to collaborate, feel free to reach out!. The project is open source, so you can also contribute here: https://automata-simulation.vercel.app