Examples

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

anim-tween.json

A panel filled by reference (rig.paint.fill to a gradient entity listed in a rig.paint.library), shown with rig.render.visibility and rig.render.blend, faded in by a rig.anim.tween shaped by

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 paperback edition: rig.book.identifier (ISO 2108 ISBN-13 digits only), title (subtitle / series - distinctive title stays on rig.meta.named), publication (publisher is an organisation enti

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

cad-solids.json

A revolved vase from a path profile and a sphere knob - the two solid primitives the boolean example does not cover.

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

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

dev-hyperv.json

dev-kvm.json

dev-machine.json

environment.json

One image-based light. hdri is a rig.media.asset_ref (kind image, lat-long Radiance file). Absent intensity is 1. Decode and spherical-harmonic coefficients stay in the host.

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.

kicad-pcb.json

A 30 x 20 mm LED board as it lands from a .kicad_pcb: board root with source pointing at the original file (the .rigz sidecar a writer merges onto), seven layers, three nets, and three parts

layout-grid.json

One page carrying its baseline/column grid and section numbering, beside a named table style whose colours are paint entities.

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

music-chord.json

A pattern step and a free-time note that each sound C major: pitch 60 plus intervals [4, 7]. The next step is G minor ([3, 7] from 67). The last step is C alone. rig.audio.analysis asks for

music-sequencer.json

A transport (120 bpm) with a 96-tick clock, a four-step minor bass pattern (steps are nested rig.music.step cells), and a sequencer pointing at both.

node-graph.json

A two-node graph on one entity: a float constant with a rig.node.param value wired from its out pin to a brightness node's in pin. Nodes, pins, and links are nested POD inside rig.node.graph

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

play-scene.json

A small play scene: a dynamic ball on a hinge, a kinematic hero with health and a walk clip, a navmesh, a particle burst, sticks and a key binding, a spatial voice, a behavior action, an inv

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

record-bank.json

A booked card payment, a long ISIN holding, an insurance policy (kind insurance), a claim, and a fraud case. The payment and the auth event point at the case with rig.record.concerns. PCI cl

record-care.json

An outpatient visit, a LOINC blood-pressure observation with startSecond, a CT series (studyUid / seriesUid), a phase-3 trial with one include criterion, and a research consent span. The pat

record-civic.json

A benefits case, an in-force statute, a flood incident at a geo pin, and a responder boat whose GNSS fix rig.record.concerns the incident. Not a case-management workflow - docs/records.md.

record-shop.json

A branded sweater, a red-M variant (parent), warehouse stock, an offer whose item is the variant, and a two-unit order line. The bill is an invoice the pending payment points at. The box is

robot-lab.json

A bench in metres: Earth gravity and a 10 ms step on the scene, a static table, and a fixed-base arm with mass and inertia. The shoulder joint stores its angle at save. A wrist wrench, a for

robot-lesson.json

A base link, a driven shoulder, and a hinge that mimics it. The lidar is a scan pattern, the eye is a camera plus a depth image, and the IMU is one sample at load. rig.sim.episode points at

show-control.json

An OSC endpoint (UDP listen/send, TCP framing, multicast) beside a 115200-baud serial line. Endpoints are authored config; sockets are host runtime.

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

text-path.json

A canvas run on an arc-to baseline, clipped to a rectangle, with @font-face as rig.media.font_face. The path stays its own entity. Colour is paint.

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

visualizer.json

A preset deck: two kind preset assets, a rig.pixel.canvas output, rig.audio.analysis (live input, publish onset / note / color / temperature), and rig.picture.analysis pointed at the canvas.

vr-room.json

A stage with a floor polygon, a headset (IPD, refresh, per-eye pixels), and two off-axis eyes on the head. The left controller carries grip and aim, a haptic click, and bindings for trigger

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

Two kinds live here. Teaching examples (this folder) model one believable document each - copy these. Coverage specimens (coverage/) exist to exercise schema ids for the validator and the maturity gate; they are deliberately dense, are not shown in the site gallery, and the skill never links them.

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/environment.json
node tools/rig-validate/cli.js examples/text-path.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
node tools/rig-validate/cli.js examples/kicad-pcb.json
node tools/rig-validate/cli.js examples/visualizer.json
node tools/rig-validate/cli.js examples/music-chord.json
node tools/rig-validate/cli.js examples/play-scene.json
node tools/rig-validate/cli.js examples/robot-lesson.json
node tools/rig-validate/cli.js examples/robot-lab.json
node tools/rig-validate/cli.js examples/vr-room.json
node tools/rig-validate/cli.js examples/record-bank.json
node tools/rig-validate/cli.js examples/record-care.json
node tools/rig-validate/cli.js examples/record-shop.json
node tools/rig-validate/cli.js examples/record-civic.json
node tools/rig-validate/cli.js examples/node-graph.json
node tools/rig-validate/cli.js examples/music-sequencer.json
node tools/rig-validate/cli.js examples/anim-tween.json
node tools/rig-validate/cli.js examples/coverage/paint-effects.json
node tools/rig-validate/cli.js examples/coverage/pixel-layers.json
node tools/rig-validate/cli.js examples/layout-grid.json
node tools/rig-validate/cli.js examples/cad-solids.json
node tools/rig-validate/cli.js examples/show-control.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