Skip to content


OpenXA was a project I started in late 2021 to make a playground for running programs from the videogame EXAPUNKS in-browser. View the interactive exa-viewer interface here.

OpenXA consists of three smaller projects:

  • exa-parse - an Ohm.js grammar & parser
  • exa-js - an execution engine that utilizes exa-parse to read programs and then executes them - including managing multiple EXAs, message passing, EXA replication, and virtual registers
  • exa-viewer - a frontend to allow writing programs, running them, and investigating EXA states

The language is complete, but exa-viewer lacks any way to configure the network layout, host naming, or virtual hardware registers.

I still dream of one day returning to the project and adding a “map” editor that allows users to configuring and sharing networks so they can create and share their own puzzles and solutions.

exa-viewer, showing 3 EXAs and their register states
Updated: 2023-11-22