Finite automata

DFA & NFA drawer · Chapter 1

Draw DFA and NFA diagrams online

DeltaDraw is a free finite automata drawing tool. Sketch a deterministic (DFA) or nondeterministic (NFA) finite automaton, test strings on it, convert an NFA to a DFA, minimize it, and export a clean state diagram as PNG, SVG or LaTeX (TikZ). It runs in your browser with nothing to install and no sign-up.

How to draw

  1. Add a state: double-click empty space, or pick the State tool and click.
  2. Add a transition: hold Shift and drag from one state to another, or use the Transition tool. Drag back onto the same state for a self-loop.
  3. Start arrow: tick Initial state in the panel, or Shift-drag from empty space onto a state.
  4. Accepting state: double-click a state, or tick Accepting state.
  5. Label: select something and type. Separate symbols with commas, like 0,1.
  6. Curve an arrow: drag the middle of a transition. Drag a self-loop to rotate it.
  7. Export: press Export and download PNG, SVG, LaTeX or JFLAP.

Label shortcuts

TypeShows
q_0q0
q_{10}q10
a^*a*
\epsilon or \epsε
\lambda, \Sigma, \deltaλ, Σ, δ
\emptyset∅

Any Greek letter works the same way, for example \alpha or \Gamma.

Keyboard

Shift + dragNew transition
DeleteDelete selected
BackspaceErase a label character
Ctrl ZUndo
Ctrl Shift ZRedo
Ctrl SSave file
EscDeselect, back to Select tool
Mouse wheelZoom

Features

  • DFA, NFA and ε-NFA state diagrams with curved arrows and self-loops
  • Step-by-step string simulation with highlighted states
  • NFA to DFA conversion (subset construction)
  • DFA minimization
  • Automatic transition table
  • Export to PNG, SVG, LaTeX/TikZ and JFLAP (.jff)
  • Open JFLAP files, save and reopen your own drawings
  • Auto-save in your browser, light and dark theme
Is DeltaDraw free?
Yes. It is free and open source, and your drawings stay in your own browser.
Can I use the diagrams in a LaTeX report?
Yes. Export as LaTeX to get TikZ code, or export SVG or a high-resolution PNG.
Does it work with JFLAP?
You can open JFLAP .jff finite automaton files and export your drawing back to .jff.