Author a Particle Test Case
Overview
Section titled “Overview”Scaffold a particle asset-generation case: a visual effect the model authors as
a system of emitters, forces and per-particle curves with the particle-2d or
particle-3d binary, simulated live against a written brief.
Particle cases is the
authoritative manifest schema, and
Authoring a Particle Test Case
is the full procedure.
Layout
Section titled “Layout”A version lives at test-cases/<type>/<difficulty>/<slug>/<version>/ and is
frozen once a run references it. Revise by adding a new version.
test-cases/asset-generation/<difficulty>/<slug>/<version>/ test-case.toml # type, asset_kind, [particle], [tool], [output], the overall domain variants/ # one standalone TOML file per variant, listed in `variants` prompt.hbs # rendered into the harness instruction; not seeded specs/brief.md # the effect and how the binary behaves; seeded description.md # site-facing summary; not seeded changelog.md # what changed in this version; not seededA run receives the seeded brief plus the orchestrator-written
particle-2d.config.json or particle-3d.config.json. The case declares no
[[reference]], [build], [[check]], or [[review_item]].
- Pick the kind and the effect.
particle-2dauthors a planar field, worked examplespectra-burst;particle-3dauthors a volume, worked examplethunderhead-flak. Choose one self-contained moment whose character reads the same across repeated simulations. - Write
specs/brief.md. State what the effect depicts, its lifecycle and timing withinduration_ms, its emitters and forces as intent, its color, opacity and size curves, the exact palette as named hex values, and whether it is one-shot or looping. State thatrendersimulates the system and emitssystem.json, and that a stochastic simulation varies slightly between plays. Keep the brief self-contained: the model sees only the seeded files, and the binary’s--helpis the operation vocabulary. - Write
prompt.hbsfrom the documented template variables ({{workspace}},{{variant.*}},{{#each specs}}). Rendering is strict, so an unknown variable is an error. Point the model at the binary’s--help, and require it to author a system and runrenderbefore finishing. - Write
test-case.toml:- the site-facing metadata (
name,difficulty,tags,summary,description,changelog),prompt,max_runtime_hours, andtype = "asset-generation"; asset_kind = "particle-2d"or"particle-3d";variants, a list of paths to the files undervariants/. It is a root key, so it precedes the first table header, and its first entry is the default;[particle]withwidth,height,duration_msandfpsall greater than zero, plusdepthforparticle-3donly,loop, andbackground;[tool]naming thebinaryand thepreviewpath, and[output]naming theactionslog. Core emitssystem.jsonautomatically;- one
[[domain]]withid = "overall", the single rating the produced effect is judged on.
- the site-facing metadata (
- Write each variant file under
variants/, giving it aslug, aname, adescription, and any additivespecentries.
Validate
Section titled “Validate”Run both commands for every variant.
tcab prompt --test-case <slug> --version <version> --variant <variant>tcab seed --test-case <slug> --version <version> --variant <variant>prompt catches template and manifest errors. seed writes the seeded
repository under tmp/, so you can confirm the seeded set is self-contained.
Next steps
Section titled “Next steps”- Run a Test Case exercises the case end to end.
- Review a Run plays the emitted system live and rates it.