# anyCreature: one JSON spec in, a rigged GLB out, and a judge that never saw the brief

> A text-to-creature pipeline for coding agents where nothing is a mesh file, every round is measured against a declared target, and the quality gates are read by a separate agent that was never told what the creature was supposed to be.

**Ariescar/anyCreature** — You can now generate creatures directly within your project. Drop the open-source into your Agent, and start prompting what you want.

- Repository: https://github.com/Ariescar/anyCreature
- Website: https://gobkit.com/community
- Stars: 457 · Forks: 47
- Language: JavaScript
- License: MIT
- Published: 2026-09-17 · Updated: 2026-09-17 · Language: en
- Canonical page: https://hysenlabs.com/projects/ariescar-anycreature

## One spec in, one rigged GLB out

The unit of work is a JSON file, not a mesh. Every creature is compiled from one spec, and the README is explicit that there are no mesh files, no downloaded art packs and no photogrammetry anywhere in the pipeline. The worked example proves the point: example/wolf.json is 2,211 vertices and 31 joints, all written out by the engine from plain text. The whole interface is one command:

```bash
bash setup.sh                              # deps + red/green ruler calibration
node engine/cli.js example/wolf.json out/wolf.glb
```

Inside engine/ there are no runtime dependencies, which is what lets that second line stand alone. What you get out is a skinned, animated, vertex-coloured, AO-baked GLB plus an offline showroom viewer, so the delivery is a file an engine can load and a page you can open without a network.

## calibrate OK, or trust nothing

setup.sh is not a dependency installer with a side effect. It is described as deps plus red/green ruler calibration, and it has to print calibrate OK before you trust anything else, because it builds one spec that has to pass and two that have to be blocked. That is the proof that the checks separate good from bad on your machine rather than on someone else's. The three fixtures live in calibration/, which is the same idea as a test suite for the geometry rules. The second instruction matters just as much: let the agent run setup.sh itself, in its own environment, and do not pre-bundle node_modules into a zip, because dependencies are per-machine. Windows is handled by a separate setup.ps1 sitting beside setup.sh, so the two platforms are first-class rather than one being an afterthought.

## The session is told to ask exactly one question

To run the full text-to-creature session you hand your agent, whether that is Claude Code, Cursor or a VM agent, a fixed instruction: read MANUAL.md in the folder and follow it exactly, because the cards in cards/ are the pipeline and improvising around them is the failure mode. The instruction names a creature, a real-world height such as 1.8 m, and then this: ask exactly one question, card 01's, and nothing else. Not cost, not token budget, not how long, not whether to publish. Decide the rest and report what you chose on delivery. The pipeline itself allows at most two questions across the whole session. The reason for the rigidity is stated as an empirical result rather than a preference: a homemade workflow prompt skips every quality gate, and twenty iterations of it will not equal one pass through the cards. An image is handled by degrading it to text first, since the pipeline is text-first and the documented move is to have the agent pull a one-paragraph brief out of the picture, covering masses, signature parts, proportions and real-world size, before any card runs.

## A reader agent that never saw the order

The two gates are what make the output more than a plausible shape. Neither is self-graded, on the argument that the session which designed a creature is the worst possible judge of whether it reads, because it already knows what it drew. Instead the silhouettes go to a context-free reader agent that has never seen the order, and its only question is what is this. Gate 1 is RECOGNISED, and all four views have to land, so a shape that reads from one angle and dissolves from another fails. Gate 2 is PUNCHIER, and it only allows the silhouette to get bolder: a round that tames the shape is reverted even if it is more correct. That is why the LOW stage delivers an exaggerated silhouette rather than an accurate one, since accuracy is the later stages' problem to earn.

## BLOCK, warn, info

The compiler talks in three registers and they carry different weight. BLOCK means the build stopped because a hard floor was crossed: a faceted body where none was allowed, a part floating off its host, a mirrored twin distorted past 30 percent, an attack that never reaches. warn means it built and something is probably wrong, so read it. info is a number you asked for, or an assumption the compiler made on your behalf, such as which way an anchored fin ended up facing. The README argues these floors are not style preferences, and gives the failures that survive review and ship broken: a body that renders in hard facets, a horn hovering a centimetre off the skull, a right thigh collapsed to 40 percent depth by mirrored skinning. Each of those is a geometry bug, not a taste question.

## Measured against a declared target, at 24 pixels

Every round renders four views, reduces them to masks, and computes the numbers the design card said it was aiming for: width over height, mass thirds, torso depth contrast, leg fraction, silhouette turn count and zigzag alignment. It also computes IoU against the previous round as a regression guard, so a change that quietly destroys overlap is visible. The size that matters is 24 pixels, because that is the thumbnail the blind reader actually sees, and the rule stated is that if it does not read at 24 pixels it does not read. The claims sheet at harness/claims.json is the single place those judgements are recorded, covering signature presence, a 6:3:1 hierarchy, focal contrast, saturated area, rig and animations, and the triangle budget, all judged to a boss standard until you lower tri_budget for cheap creatures.

## The spec travels inside the GLB

One knob decides whether the output stays editable. With embed_spec on, every GLB embeds its own authored spec under asset.extras.source_spec together with a parts manifest, which means any agent can pull the spec back out, edit it, recompile, or graft parts between creatures using harness/graft.py. Setting it false opts out. The other spec-root knobs are more physical: smooth_angle sets the crease threshold in degrees, defaulting to 50, where higher smooths the body and lower leaves more facets, and it can also be set per volume or per part. shading controls the whole-body vertical colour ramp and grain through a gradient and a noise block. ao turns the per-vertex ambient occlusion bake off. And build: rigid is the only way to get a fully faceted body past the checker, which the README scopes to robots and crystals rather than animals.

## Where the harness admits it is wrong

The limits section is the most useful part of the page. Blind reads on isolated parts misfire on dome-plus-hanging-tube heads: elephants and birds get read as something else when the head is shown alone, and the same head back on the body reads fine, so the instruction is to trust the whole-body read when the two disagree. The budgets are calibrated on the heaviest class of creature only, and the README notes that a simpler one should cost less while admitting nothing lighter has been calibrated. The visible page stops mid-sentence on that point, so whatever follows is not shown. The folder map explains the rest of the shape: engine/ is the compiler, cards/ holds the five stage cards the executing session reads plus the spec syntax on one page, harness/ holds the measuring tools, the delivery packer and the publisher, example/ holds a bred and approved light quadruped meant to be read and copied from, and calibration/ holds the must-pass and must-block trio. Around them sit MANUAL.md, docs/, tools/, SECURITY.md, THIRD-PARTY-NOTICES.md and a VERSION file, and the release feed shows three tags, v1.2.0, v1.3.1 and v1.3.2, all published on 21 September 2026 within about twelve seconds of each other.

## Conclusion

anyCreature fits someone who wants a game-ready creature inside an existing repository and is willing to hand the session to a pipeline of cards rather than improvising prompts, since the shipped wolf is 2,211 vertices and 31 joints written by the engine from plain text. It does not fit anyone hoping the agent will ask about scope, cost or publishing, because the briefing instructs it to ask exactly one question and decide the rest. Before your first run, confirm setup.sh prints calibrate OK, since that builds one spec that must pass and two that must be blocked, and per-machine dependencies mean you cannot ship a pre-bundled zip. And read the limits section: blind reads misfire on dome-plus-hanging-tube heads shown alone, and the budgets are calibrated only on the heaviest class of creature.

## FAQ

### What does anyCreature produce from a text prompt?

A skinned, animated, vertex-coloured, AO-baked GLB plus an offline showroom viewer, from an order like make me a menacing mountain giant and at most two questions. Every creature is compiled from one JSON spec, so no mesh files, downloaded art packs or photogrammetry are involved.

### How do I know anyCreature works on my machine?

setup.sh has to print calibrate OK before you trust anything else. It builds one spec that has to pass and two that have to be blocked, which is how you confirm the rulers separate good from bad on your machine rather than on the author's.

### Can anyCreature work from an image instead of text?

The pipeline is text-first, and the documented approach is to tell the agent to extract a one-paragraph creature brief from the image, covering masses, signature parts, proportions and real-world size, and then proceed with the cards. The image becomes the brief and the pipeline does the rest.

### What stops anyCreature from grading its own work?

Neither gate is self-graded. Silhouettes go to a context-free reader agent that has never seen the order and is only asked what is this, and the second gate lets a round pass only if the silhouette got bolder, reverting any round that tames the shape even if it is more correct.

### Can I move parts between anyCreature models?

Yes, with embed_spec left enabled. Every GLB embeds its own authored spec under asset.extras.source_spec along with a parts manifest, so an agent can extract it, edit it, recompile, or graft parts between creatures using harness/graft.py. Setting embed_spec to false opts out.

## Sources

- [Ariescar/anyCreature on GitHub](https://github.com/Ariescar/anyCreature)
- [Issues](https://github.com/Ariescar/anyCreature/issues)
- [License: MIT](https://github.com/Ariescar/anyCreature/blob/main/LICENSE)
- [Project website](https://gobkit.com/community)
- [README](https://github.com/Ariescar/anyCreature/blob/main/README.md)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/ariescar-anycreature
