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 virtual structures that can be expressed, explored and studied.

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 language is broad enough to express many kinds of spatial and dynamical systems while remaining compact, portable and easy to mutate.

Utomata supports large systems and high update rates for interactive work, alongside deterministic, scriptable execution for automated experiments and parameter sweeps. It is built on WebGPU, allowing projects to run unchanged across desktop, terminal and web contexts.

Utomata is minimalist by design. Its execution model is built around parallel computation, live modification and feedback between state, transition and geometry.#Fields compute and hold state values; ~Formations project field state into geometry; ^Viewports render geometry back into fields; @Triggers schedule execution; <Inputs> change the program itself at runtime.

Its domain-specific language expresses system dynamics as nested vector algebra rather than through conventional general-purpose constructs such as variables, functions, conditionals or loops. This keeps programs compact and makes their structure easy to inspect, modify and recombine while they are running.

Its custom-built rendering engine follows the same principle, emphasizing structural relationships and transformations rather than physical emulation or photorealism.

Utomata is not intended to replace general-purpose programming languages, graphics engines or specialized scientific simulation environments. It is designed for exploring systems characterized by large sets of interacting components, spatial transformations and feedback. It is consequently less suited to work that depends on serial application logic, asset-heavy production pipelines or 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 early development. Pull requests are not currently accepted; bug reports, questions and feedback are welcome.

Issues / contact →