Automata Painter

A new, expressive form of graphical programming

Program cellular automata graphically

Experiment with weird tiling patterns

Design Pillars

Contextual Programming

Automata Painter is an extension of cellular automata. While cellular automata can be encoded and manipulated in code, it is more natural to work with them in their graphical form. This way the programmer can relate to the software directly, much the same way a user would relate to it.

However, to express arbitrary levels of abstraction and to interface with other pieces of software, code can be very useful. For those reasons, while the graphical user interface is the primary focus of the project, a scripting language will also ship with Automata Painter.


Automata Painter should allow for improvisational creativity, which means the software aims to be accessible, intuitive, and seamless.

Relationship to Game Painter

Game Painter is related to another project of mine, Game Painter. Essentially, Automata Painter is Game Painter minus interactivity, but there are some other key differences.

Game Painter and Automata Painter don't have a superset / set relationship like C++ and C. Instead, they share a lot in common and each has features that the other doesn't. They are like two different branches on the same design tree.

In particular, Automata Painter, adds different tiling structures as well as an API that can support arbitrary kinds of tilings and graphs. Another important difference is that Automata doesn't support the creation of interactive games, like Game Painter. Instead, the focus of Automata Painter is on expressing autonomous systems.