Overview

Background: JAX

JAX is NumPy + autodiff + GPU/TPU

It allows for fast scientific computing and machine learning with the normal NumPy API (+ additional APIs for special accelerator ops when needed).

Leniax

Leniax is a high-performance CA simulator library supporting variations like: - Lenia - Multi-neighbourhood CA - Neural CA - Hopefully even more variations in the future

Leniax comes with everything you need to simulate, evolve and differentiate Cellular Automatata. It includes:

  • Evolution API (leniax.qd): You can thousands of simulations in parallel and compute statistics to apply heuristics.

  • Differentiability: Thanks to JAX, all the core components are differentiable making it easy to compute the gradients of any part of your CA.

  • Educational examples See our examples.

CPU/GPU/TPU support

All of our examples can run on CPU, GPU or TPU.

Following is an example of TPU and GPU scripts to look for interesting initialization conditions: