About

Utomata is an instrument for field-based computation: a small programming language and runtime for building procedural and emergent systems. Programs are short, run in parallel on the GPU, and stay live while they are being rewritten.

Why another language?

A large class of computational work involves systems of interacting components: cellular automata, particle systems, flocking, reaction-diffusion, gradient fields, networks, feedback systems, and many others. These are usually treated as separate domains and built with different tools, though they share a great deal in common.

General-purpose environments can express all of them, but often require substantial implementation machinery alongside the model itself. More specialised tools reduce that overhead, but narrow the range of what can be expressed.

Utomata grew out of long-running computational arts research into procedural and emergent systems. Its long-term goal is to widen the range of computational and virtual phenomena that can be expressed, explored and studied. It is an open-ended instrument for open-ended exploration of open-ended systems.

Make systems, not software.

Utomata makes it fast and cheap to construct a system, change it, combine it with other systems, and see what happens. Its syntax is broad enough to express many kinds of spatial and dynamical systems, while staying compact, portable and easy to mutate.

#Fields hold state and perform computation. ~Formations project field state into geometry. ^Viewports render that geometry back into fields. Utomata supports large systems and high update rates for interactive work, and deterministic, scriptable execution for automated experiments and parameter sweeps. It is built on WebGPU, so projects run unchanged across desktop, terminal and web contexts.

It is minimalist by design. Employing a tiny domain-specific language to express dynamics and a custom built rendering engine that emphasises structure over physical emulation. It is not meant to replace general-purpose programming languages, conventional graphics engines or specialised scientific simulation environments. It is designed for exploration and study of systems characterised by large sets of interacting values, compound transformations and feedback. This makes it less suitable for work that relies on serial application logic, asset-heavy production pipelines and photorealistic rendering.

Status

The Utomata JavaScript/WebGPU library is scheduled for open source release under MPL 2.0 on 1 January 2027.

The desktop authoring environment is in public beta and available from the Download page.

Utomata is in active development. Pull requests are not currently accepted; bug reports, questions and feedback are welcome.

Issues / contact →