All the code, files, documetation, etc. related to the simulation and development of Cell Matrix configurations will be available on GITLab.

Cell Matrix Code

Here is a collection of various software tools related to the Cell Matrix. Most of these were developed only for internal use, and as such are mainly undocumented and poorly behaved. Nonetheless, there are links to these below, and more documentation may be added as possible.

Early Simulators

These used a crude grid-update method tht didn't accurately capture timing realities, but worked as a first-order proof of concept of the usability of the architecture. There's a command-line based version and an X-windows version (which still compiles and runs after 24 years!).

Event-Queue-Based Simulators

The first was written in Visual Basic (V3.0) with a C engine underneath, and ran on Windows 3.1. Subsequent versions were implemented in C, leading to the current version (written in Java).

ASCII Layout

This was a very old tool for graphically laying out a circuit as a collection of single Cell Matrix cells. The program would produce a binary image that could be read by the simulator. Some sample designs are included too.

Graphical Layout/Loader

This is the graphical layout program used to construct circuits on the Cell Matrix. It requires manual placement of cells, but allows groups of cells to be copied and pasted, rotated, and so on. Cell function can be defined, icons can be designed, and collections of cells can be stored and retrieved from cell libraries.


When a series of cells need to be defined without the unnecessary overhead of the Graphical Layout/Loader, LibComp can be used to define cells via a simple ASCII file. LibComp creates libraries of cells that can be used in the layout/loader program.

Place and Route

An early version of a place and route system is available here. This was written by a Master's student (Dimitri Yatsenko) at USU, and is Matlab-based.

Another version of place and route code is available here. This was developed under contract with LANL, and uses the Pathfinder algorithm and simulated annealing. The code works reasonably well for small circuits, but does not develop very efficient layouts. It may be useful as a starting point for future work.

Wire Building

If wire building is the key to designing adaptive, dynamic circuits on the Cell Matrix, then the wire building classes are the key to implementing such circuits. The GitLab repository contains the JAR files, source code, and sample Java code for creating wire building sequences (usable by the Java-based simulator).