I bought a Spine Professional licence this week, and would rather hear from the people
whose format this is built on before saying more.
What it is. rigc is a rig compiler: rig and motion specs in, Spine 4.3 skeleton data
out, round-tripped through @esotericsoftware/spine-core and 40 named assertions before
a byte reaches disk. The narrow problem: an agent cannot tell whether its rig succeeded.
A size: disagreeing with the PNG collapses every UV, and the file loads clean and
plays.

Fourteen part PNGs, one rig spec, one motion spec — compiled, nothing posed by hand.

Two key poses read out of pictures, two in-betweenings, a ballot picking one.

A 2.5D head turn, each feature at its own depth.
What was measured. The yardstick is your own examples: 1-weight-and-mass …
8-follow-through as a difficulty ladder, spineboy as the graduation exam. The authoring
agent gets images/, a brief and rendered reference frames, never the reference JSON —
our own renders of your exports, committed under each example's own license.txt. Eleven
candidates over 56 frame sets hold under the current gate; worst attributable slot
drift peaks at 5.5550 px against a 6.0 px bar.
What the graduation demonstrates is that the tool, the guide and the protocol reach the
bar across a bounded series of honest attempts, each residual diagnosed and fixed —
spineboy took five, the last inheriting the previous specs. It is not that an agent
authors a spineboy-scale rig from the brief alone in one run: two from-zero attempts on
2026-09-03 both failed, at 9.3289 and 18.9753 px against that bar.
Licensing. rigc links spine-core and validation cannot be switched off, so the
Spine Runtimes License applies to it like any runtime integration. Using rigc, or
shipping its output, requires a Spine editor licence and rigc changes that in neither
direction: an AI drafts, a human refines in Spine. Two facts anyone can check. The
project's contribution rules forbid a --no-validate bypass on licensing grounds: rigc
"must remain structurally incapable of being used as a substitute for" the editor
(CONTRIBUTING.md, written out in CLAUDE.md). And every page rigc preview generates
embeds the Spine Runtimes copyright, licence URL and editor-licence requirement
(src/preview.ts).
I am asking for your opinion and nothing else: whether this is reasonable beside the
editor, whether the licensing reads correctly, and whether the ladder measures anything
meaningful.
firejune/rigc · https://www.npmjs.com/package/spine-rigc ·
firejune/rigcblob/main/NOTICE.md
Notes for the poster (not part of the post)
Why Showcase. Section description is "Show off what you create in Spine" (139
topics), and the pinned sticky by Mario, https://esotericsoftware.com/forum/d/6620, frames
it as the place to promote your own work: "While our showcase forum is most excellent to
show off what's possible with Spine to the Spine community…". There is no forum-wide
rules page and no self-promotion policy — /forum/rules, /guidelines, /faq all 404
— so the sticky is the closest thing to a charter, and it blesses this.
Nearest-neighbour precedents, all in Showcase and all tools that emit or audit Spine JSON:
Runtimes is the wrong section — its description scopes it to "using the Spine
Runtimes", and the tool posts that landed there are runtime-integration helpers, not
standalone tools. Announcements is first-party only in practice (33 topics).
⚠️ State the licensing precisely, because staff do scrutinise it. On the
Blender-Spine-IO thread Mario raised a licence concern unprompted, and Nate has corrected
redistribution readings directly elsewhere on the forum. The licensing paragraph above is
written to be checkable rather than reassuring: every clause in it resolves to a public
file — NOTICE.md for the chain, CONTRIBUTING.md + CLAUDE.md for the bypass rule,
src/preview.ts for the embedded notice.
Where the two checkable facts live, if a reply asks for line references:
- The bypass rule is written out in
CLAUDE.md (the "Validation through spine-core is
not optional" bullet, reason 2, Licensing) and stated in short form in
CONTRIBUTING.md ("No bypass of the round trip", which links CLAUDE.md). Both are
committed to the public repo; cite CONTRIBUTING.md first, since that is the file a
contributor is pointed at.
- The generated-page notice is the HTML comment in
src/preview.ts — Spine Runtimes
copyright, the licence URL, and "requires each user of a product integrating them to
hold a Spine Editor license". Every rigc preview output carries it.
Two lines cut for the 400-word budget, restorable if the section allows more.
- The earlier-thread parenthetical: "(I posted a DOM-first runtime experiment here a
little while back — https://esotericsoftware.com/forum/d/30563 — this is the authoring
side of the same curiosity.)" The post does not depend on it and it presumes no
familiarity, but it does establish prior good-faith presence, so it is the first thing
to put back.
- The JSON-format-page quote that used to close the licensing paragraph: "Your
JSON-format page is the ground I stand on: 'Also, Spine can import data in this
format, allowing interoperability with other tools.'" Verbatim from
https://esotericsoftware.com/spine-json-format, opening paragraph — the invitation the
whole project rests on. Cut only because the two checkable facts that replaced it are
stronger than a quotation, being things a reader can verify about this repo.
Provenance, if it is raised in replies. bench/reference/ holds 1,293 PNG frames the
project renders from the examples' own exports; a frame carries those images' pixels, so
committing one is redistribution, and each example's license.txt grants exactly that
"as long as they are accompanied by this license file" — all eight copies are present,
written there by the render script rather than left to memory, and the non-commercial
condition rides along. 7-anticipation publishes no license.txt upstream, so its
frames are never committed and git check-ignore enforces it. The example projects
themselves are fetched, never committed. Sources: README.md §Licensing (the 📐
paragraph), NOTICE.md §Rendered reference frames, bench/reference/README.md.