Usage instructions:
The big white box above is the FSM designer.
- Add a state: double-click on the canvas
- Add an arrow: shift-drag on the canvas
- Add a start arrow: shift-drag outside of a state
- Add an self-linking arrow: shift-click on state or shitf-drag back to state
- Create a curved arrow: shift-click and drag existing arrow
- Move something: drag it around
- Label something: click on a state or arrow
- Delete something: click it and press the delete key
- Make accept state: double-click on an existing state
- Type numeric subscript: put an underscore before the number (like "S_0")
- Type GNFA symbols: click on a state or arrow, then type LaTeX command (like "\cup, \cap), or ^+ for superscript +")
- Type greek letter: put a backslash before it (like "\beta")
- Additional symbols: Type "\emptyset" for ∅, "\rightarrow" for →, and "\leftarrow" for ←.
This also includes functionality used for simulating chip-firing games. When in chip firing mode, the following happen:
- Adding or deleting vertices or edges is disabled
- Clicking a vertex "fires" that vertex, giving away 1 chip from that vertex to each vertex it connects to
- Shift clicking undoes the "firing" of that vertex
- Empty vertices are treated as having zero chips on them
- An edge with a numerical label indicates the "weight" of the edge, causing that many chips to be fired along that edge instead of only one