— JSFlap —


Easily create and simulate finite state and Turing machines in a browser-based re-implementation of JFLAP, the Java Formal Languages and Automata Package. JFLAP is an incredibly important tool used in teaching the foundations of Computer Science Theory and is used in college classes around the world, however it was created before advances in modern user experience and application deliver were around. JSFLAP changes this by improving many of the poor user experiences, like requiring 5-6 clicks and menus to create a node and edge tool, I simplified this to a single click and drag gesture which is much more intuitive. By re-creating the basic flows, this is able to help teach students more quickly how the fundamentals of CS Theory work. Finite Automata and Turing Machines are the basis of language processing, computing, and higher-level concepts like Regular Expressions are all more easily expressed in JSFLAP.


  • Typescript
  • AngularJS
  • Foundation UI library
  • D3.js


  • Easy-to-use UX, just click and drag to make new nodes and edges
  • Keyboard shortcuts, snapping, multiple tools
  • Instant updates to test strings to test the graph
  • Export to PNG, file, and LaTeX.

Project Details

Date: Dec 14, 2014

Client: Side project

Website: https://jsflap.com/

Other Projects


Senior Software Engineer at Google

Social Links

Wanna chat?

View my resume for contact info.