Examples

Canonical documents. Copy the pattern; validate before you trust the output.

art-object.json

Van Gogh Irises: CDWA core composed as rig.art.object / creation / attribution / dimensions / material / location / subject / image. Copyright is rig.rights.statement (public-domain + Rights

bim-bcf.json

BCF thread: topic + comment + viewpoint (camera, selected elements, clip plane, snapshot asset).

bim-ids.json

IDS specification: applicability facet (IfcWall) and requirement facet (Pset_WallCommon.FireRating). Specs-only document - no building model required.

bim-model.json

OpenBIM model cut: site, building, storey, space, a shared wall type, an extruded wall occurrence, an opening that voids the wall, and a door that fills the opening. IFC class is a string on

book-isbn.json

A Penguin Classics edition: rig.book.identifier (ISO 2108 ISBN-13 digits only), title (subtitle / series - distinctive title stays on rig.meta.named), publication (publisher is an organisati

cad-boolean.json

CSG difference of a cuboid minus a cylinder, fillet intent on every edge, a cube mesh with n-gon loops and a named-edge chamfer, plus a bilinear rig.geometry.nurbs_surface. The CAD tree is t

cad-dimension.json

cad-reference.json

Two posts plus three datums: a rig.cad.reference_line anchored to both posts by a / b so it tracks them on rebuild, a second one placed by origin + direction, and a rig.cad.reference_plane a

calendar-event.json

Exhibition hours (weekly + span), Christmas dark day, Christmas Eve special hours on exception, opening-night event, weekly curator talk as recurrence fields (not an RRULE string), and one a

commerce-offer.json

Penguin Classics paperback: rig.commerce.offer (item + seller), rig.commerce.price (GBP amount, not a formatted string), rig.commerce.discount (percent 20), validity as rig.calendar.span. No

dev-hyperv.json

dev-kvm.json

dev-machine.json

font-ufo.json

UFO source as Rig: face metrics, a foreground layer, glyphs A / V / space / acute / Aacute (composite), a top anchor, pair A/V, a left kerning group, and AFDKO features as rig.media.code. Ou

font-var.json

Variable face: one wght axis (+ identity avar), a stem glyph I with default rig.geometry.path and a positive-weight rig.font.cell delta. Design space is first-class - docs/ufo.md.

legal-agreement.json

Employment instrument beside job facts: rig.legal.agreement + two rig.legal.party entities (employer / employee). Term is rig.calendar.span. The PDF is rig.media.asset_ref. jobTitle stays on

lfo-binding.json

rig.mod.lfo on one entity, rig.mod.binding driving another entity’s position.y - Update-system data (advance LFO + apply binding each dt); no UI required.

lights.json

Three lamps: directional (local −Z), point with range, spot with inner/outer cones. Pose stays on transform.

minimal-scene.json

A specimen sheet of the geometry vocabulary: rounded rectangle, circle, regular polygons (triangle, hexagon), star, parent/child hierarchy under a root rig.spatial.vertex (world), closed and

page-anchor.json

A page with rig.spatial.anchor center (page-local origin mid-trim) and a child rectangle with bottom-right registration plus a local offset - transform stays TRS; the 3×3 lives on the siblin

paint-brush.json

One named brush entity: a size-12 flat with measured ferrule, bristle length, tip-to-max taper, and load capacity. Machine Z / feeds / dip stations are not on this component - schemas/paint/

paper-citation.json

Watson & Crick 1953: rig.paper.identifier (DOI / PMID), article (pages + date), issue (journal entity + volume). Authors reuse rig.book.contribution. One rig.paper.citation points at a cited

path3d-spline3d.json

A cubic space curve as rig.geometry.path3d (cubic-to) and a separate degree-3 NURBS as rig.geometry.spline3d. Authored forms stay distinct - do not dual-attach both on one contour.

person-contact.json

A contact, an employer, and a character. Person parts compose: rig.person.name, vital (sex and gender identity are different fields), contact, employment (employer is an entity), portrait (p

place-address.json

A site and a nested room: rig.place.address (UPU S42 / ISO 20022 PostalAddress fields) plus a WGS84 rig.place.geo pin on the site. Transform stays drawing pose; the civic fields are not scen

plant-taxon.json

A site oak and a named rose. Taxon parts follow Darwin Core / ICNafp; the rose adds ICNCP rig.plant.cultivar (cultivarEpithet without quotes, tradeDesignation separate). Habit is growth form

portable-tool.json

A tool document meant to travel: panel + nested rig.ui.group sections, controls bound to LFO and paint fields, shared action id. Author in one UI pack; load in another app that speaks the sa

print-fgf.json

Pellet printer envelope, a grade with density and zone temps, slice knobs plus stack sag, and a job whose input / output are rig.media.asset_ref entities. Not envelope pdfX, not a layout pag

story-flow.json

Semantic editorial copy: named paragraph and character styles only (no font, colour, or local bold/italic flags), a heading, a body with Bold and Italic style runs, a bullet list via listKin

story-frames.json

Threaded text layout: facing pages, a right master with slug, two document pages, two rig.layout.frame boxes (columns / insets / first baseline), and a rig.layout.frame_chain that walks them

ui-panel.json

An LED-install flavoured control surface: rig.ui.panel (role: led.install) with controls driving rig.paint.solid colour and rig.mod.lfo frequency, plus a shared lfo.resetPhase action. Same s

Canonical Rig JSON documents. Copy the pattern; validate before you trust the output. Agent distillation of these rules: ../skills/generating-rig-documents/SKILL.md.

node tools/rig-validate/cli.js examples/minimal-scene.json
node tools/rig-validate/cli.js examples/lfo-binding.json
node tools/rig-validate/cli.js examples/ui-panel.json
node tools/rig-validate/cli.js examples/portable-tool.json
node tools/rig-validate/cli.js examples/path3d-spline3d.json
node tools/rig-validate/cli.js examples/page-anchor.json
node tools/rig-validate/cli.js examples/cad-boolean.json
node tools/rig-validate/cli.js examples/cad-dimension.json
node tools/rig-validate/cli.js examples/cad-reference.json
node tools/rig-validate/cli.js examples/story-flow.json
node tools/rig-validate/cli.js examples/story-frames.json
node tools/rig-validate/cli.js examples/bim-model.json
node tools/rig-validate/cli.js examples/bim-bcf.json
node tools/rig-validate/cli.js examples/bim-ids.json
node tools/rig-validate/cli.js examples/font-ufo.json
node tools/rig-validate/cli.js examples/place-address.json
node tools/rig-validate/cli.js examples/person-contact.json
node tools/rig-validate/cli.js examples/plant-taxon.json
node tools/rig-validate/cli.js examples/book-isbn.json
node tools/rig-validate/cli.js examples/paper-citation.json
node tools/rig-validate/cli.js examples/art-object.json
node tools/rig-validate/cli.js examples/commerce-offer.json
node tools/rig-validate/cli.js examples/legal-agreement.json
node tools/rig-validate/cli.js examples/calendar-event.json
node tools/rig-validate/cli.js examples/lights.json
node tools/rig-validate/cli.js examples/dev-machine.json
node tools/rig-validate/cli.js examples/dev-hyperv.json
node tools/rig-validate/cli.js examples/dev-kvm.json
node tools/rig-validate/cli.js examples/print-fgf.json
node tools/rig-validate/cli.js examples/paint-brush.json

SUDE sketch

Hosts honor Setup / Update / Draw / Exit. Data is ECS POD composed onto entities - the JSON below is what travels; the loop is how a host runs it.

Setup:
  load or spawn entities from a Rig document
Update(dt):
  advance modulators, tweens, transport, bindings...
Draw:
  present transforms / shapes / meshes / whatever this host draws
Exit:
  release host state