A no-code creative
application framework.

Because no code is the best code.

Rig — Readable Independent Grammar

A shared vocabulary for creative work. Open the JSON, change a field, load it in another host. No library to link, no runtime to embed, no API to version — it ships as agreement.

Browse the schemas See examples

v0.31.0 · draft 191 schemas MIT nothing to link

Every tool speaks only to itself

A scene, a typeface, a building, a show, a catalog — each lives in a private file. Moving work means writing a converter, and converters rot. Shared runtimes solve interop by locking the language and the platform.

Rig is the vocabulary those tools could share. Not another editor. Not a library. The document is the artifact.

One grammar. Many domains.

The same composition model — entities with named POD components — wherever two hosts need the same meaning. A host that implements six schemas and ignores the rest is fully Rig. Ship what you support.

The whole catalog · OpenBIM · UFO · Dev machines

Sharing tools should be fun

Take a tool from one app and drop it in another — controls, groups, actions, the working interface. Author the panel in App A. Load the same document in App B. If both speak the same schema ids, the knobs still turn the same fields.

The chrome can change. The tool stays the document. That is the point of a shared vocabulary: borrowing a working tool from someone else's app should feel like a gift, not a rewrite.

A tool that travels · LED panel · Rig + UI

The document is the artifact

Content is plain data on entities, keyed by schema id. Live hosts also run a four-hook loop:

Setup  → spawn / load entities
Update → simulate (modulators, transport, …)
Draw   → present
Exit   → tear down

One entity. The picture is that document drawn by a second fulfillment — static SVG, no client JavaScript.

Minimal Rig scene — shapes from examples/minimal-scene.json
examples/minimal-scene.json drawn by the in-repo renderer. Same vocabulary, unrelated to any product host.
{
  "id": "demo-rect",
  "components": {
    "rig.spatial.transform": { "position": [20, 65, 0] },
    "rig.geometry.rectangle": { "width": 140, "height": 90, "cornerRadius": 10 },
    "rig.paint.fill_stroke": { "fillRgba": [0.25, 0.65, 1, 1] }
  }
}

Excerpt — the full entity is in minimal-scene.json.

Any program that recognises rig.geometry.rectangle can draw that rectangle, in any language, without knowing what wrote it.

Reference documents · Entity / component · SUDE · Document envelope

It runs

A Rig document is not a diagram of a format. The same JSON plays or presents in more than one fulfillment, none of which know the others.

RigPlayer

Plays a document over time — SUDE, Update, Draw. The host for work that runs.

RigKit

Desktop / Pi reference host. GLFW, packs, the floor for a live fulfillment.

Also PicoForge — a .rig compiled to a running PICO-8 cartridge. This page's SVG is another fulfillment of the same document.

Built for people and models

When execution gets cheap, agreement is the scarce asset. A generated renderer is disposable. A generated vocabulary is a liability — the next session invents a different one. Rig publishes the concept in a form people and models read the same way.

node tools/rig-validate/cli.js path/to/doc.json

Every failure names a JSON Pointer, so an agent can correct itself without a human in the loop.

AI co-coding · Agent skill · llms.txt

Start

Clone it, check it, read it. There is nothing to install but the validator. 0.x is a draft — core rules hold; schemas may still shift before 1.0.

git clone https://github.com/rigkid/RigWorks
cd RigWorks
npm run setup    # installs the validator
npm run check    # schemas, parity, links, reference documents

Being Rig takes the grammar: plain-data components on entities, against schemas you support. Live hosts also honor the four-hook loop. Everything else is opt-in.