finAuto - a Finite Automata Simulator



What is finAuto?

finAuto is a Web-based finite automata simulator using the PIXI.js graphics library. With this simulator, you can:

How do I use finAuto?

The app has three modes:
Create mode (default)
This allows you to build a DFA or NFA by adding states and arrows to the canvas. Clicking on a state or arrow allows you to change its label and whether a state is accepting or not. Arrows can take multiple symbols by separating each letter with commas.
This simulator only implements simple NFAs - an arrow simply labelled "ab" corresponds to a single unique symbol "ab" and not the concatenation of a and b.
Simulate mode (right of Create mode)
An input word can be specified and stepped through, showing how the current states change in the canvas automaton. Additionally, you can also convert an NFA into a DFA. Symbols consisting of multiple letters can be accessed with angle brackets - the symbol "ab" would be accessed through <ab> in the input word box and is read as a single symbol.
Regex mode (left of Create mode)
You can either convert a given regular expression into an NFA, which will overwrite the current automaton on the canvas, or convert the current NFA into a regular expression which appears in the regex input box.

How does NFA computation work in finAuto?

At each step, every transition possible is taken for the input symbol, as well as any jump edges. This creates a set of current states as a result. Current states that are the result of a possible non-accepting path are marked in red, and those that are the result of a possible accepting path are marked in green.

What is the regular expression syntax?


There is no other special syntax. An example regex is (1|01*0)*, representing the language of binary strings with an even number of 0s.
This software uses the PIXI.js graphics library, which is licensed under the MIT license.
See The MIT license for details.