Author a Mesh Animation Test Case
Scaffold an asset-generation test case for
a rigged, animated meshed model: a model sculpts per-part signed-distance fields
with the mc-anim, sn-anim, or dc-anim binary and rigs them. The case fixes
the required animations; the parts and joints that realize them are the model’s
to invent. Read
Authoring a Mesh Animation Test Case
for the full procedure;
Voxel cases is the
authoritative schema.
For a static meshed model see Author a Mesh Model Test Case. For a rigged cube model see Author a Voxel Animation Test Case.
Layout
Section titled “Layout”A version lives at
test-cases/asset-generation/<difficulty>/<slug>/<version>/. A version with runs
recorded against it is frozen; revise a case by adding a new version.
test-cases/asset-generation/<difficulty>/<slug>/<version>/ test-case.toml # manifest: type, asset_kind, voxel, tool, output, model variants/ # one standalone TOML file per variant prompt.hbs # rendered into the harness instruction; not seeded changelog.md # required per-version entry; not seeded description.md # site blurb; not seeded specs/brief.md # what to sculpt and how the tool behaves; seededA run seeds the brief, <binary>.config.json, and a rig.json pre-populated
with the required animation declarations alone, with empty tracks, parts: [],
and joints: []. The -anim binary’s --help is the operation and
rig-subcommand contract. Core emits the per-part meshes and the filled rig.json
on render. The case declares no [[reference]] and carries no target model.
- Pick a catalog slug and an articulated subject, then the algorithm: faceted
mc-anim, smoothsn-anim, or crispdc-anim. Onlydc-animexposes the per-primitive--sharptag. The algorithm fixes bothasset_kindand[tool].binary. - Fix the required animations: one
[[model.animation]]per motion, each with a uniquenamesuch asmarchorradar_spin, aloopflag, and anauto_playflag, wheretruemeans a self-playing idle. Leave parts, joints, pivots, ranges, and pose angles to the model. - Write
specs/brief.md: the subject, orientation, the volume framing, the exact opaque#rrggbbpalette, how the binary meshes each part’s field withadd-*,subtract-*, and--blend, the features that must read, and each animation’s behavior in prose. Keep the brief self-contained, and specify what to build rather than how. - Write
prompt.hbs. It renders in strict mode against{{variant.*}},{{#each specs}},{{workspace}},{{time_limit_hours}}, and{{voxel.*}}. Point the model at the brief and the binary’s--help, and require arenderbefore finishing. - Write
test-case.tomlper the table below.[tool].previewand[output].actionseach carry the{part}token, as inparts/{part}.pngandparts/{part}.actions.json.
| Declared | Rejected |
|---|---|
type = "asset-generation" and asset_kind (mc-animation / sn-animation / dc-animation) | [canvas], replaced by [voxel] |
changelog; [voxel]; [tool].binary with a {part} preview; [output].actions with {part} | [[reference]], since there is no target model |
[model] carrying [[model.animation]] entries (name, loop, auto_play) | [build] and [[check]], since there is no served build |
variants as a root key, first entry the default; the single overall [[domain]] | [[review_item]], since the rig is judged as a whole on one rating |
The Aegis six-legged walking fortress is the worked example, rigged once per
algorithm as aegis-mc-anim, aegis-sn-anim, and aegis-dc-anim. Read the one
matching your surface.
Validate
Section titled “Validate”Run these for every variant.
npm run lint:specstcab prompt --test-case <slug> --version <version> --variant <variant>tcab seed --test-case <slug> --version <version> --variant <variant>prompt catches strict-mode template and manifest errors, including duplicate
animation names and a missing {part} token. seed writes the seeded repository
under tmp/, where you confirm the brief and the pre-seeded rig.json are
self-contained. After editing, force a re-ingest so a backend-driven run picks up
the change; see
Running the Local Service Stack.
Next steps
Section titled “Next steps”- Create a Mesh Animation Variant to add a brief variation.
- Run a Test Case to exercise it end to end.
- Review a Run to score the produced rig against the brief.