spine-rigc 0.25.1 → 0.25.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/docs/AUTHORING.md CHANGED
@@ -1992,6 +1992,20 @@ one wins today. ⛔ rigc does **not** set the flag for you. The compiler never
1992
1992
  invents a value that is not in the spec, and a rig whose composition was chosen by
1993
1993
  the tool is one nobody can reason about.
1994
1994
 
1995
+ ⚠️ **And below full authority it is a weighting rather than a quieter erasure**
1996
+ ([#399](https://github.com/firejune/rigc/issues/399)). An additive slider scales
1997
+ its whole contribution by its own `mix`, so two of them at any pair of mixes are
1998
+ still the sum — which is why `A40` skipping below full authority is right: what
1999
+ happens there is a weighting, not the erasure it refuses. A **non-additive**
2000
+ slider at `mix` α applies `current + (value + setup − current) × α`, a lerp *from
2001
+ the pose it found*, so the earlier slider is not erased — it is attenuated by
2002
+ `1 − α`. `mix × contribution` is not the arithmetic there, so a later dial turned
2003
+ part of the way down takes that share of every earlier slider on the target with
2004
+ it, on every frame, with the gate green — the second reason to write
2005
+ `"additive": true` on **every** slider that shares a target and not only on the
2006
+ later one. `PS130` in `selftest.ts` poses both models rather than quoting the
2007
+ runtime, and [`docs/FACE.md`](FACE.md) §8 is the same rule on a face's two axes.
2008
+
1995
2009
  ⚠️ **And `"additive": true` is not always available.** Only some timelines support
1996
2010
  additive application at all: bone, deform, transform-constraint, path `position`,
1997
2011
  physics `wind`/`gravity`, and a slider's own `mix`. A **slot colour, an attachment
package/docs/FACE.md CHANGED
@@ -1180,6 +1180,31 @@ breaks the moment the two share a target — in the worked example both `turn` a
1180
1180
  `tilt` key `headroll`. §7's paragraph on sliders is the mechanism and
1181
1181
  `A40_SLIDERS_COMPOSE_ON_A_SHARED_TARGET` is the refusal.
1182
1182
 
1183
+ ✅ **And the space between the two dials is measured rather than inferred**
1184
+ ([#399](https://github.com/firejune/rigc/issues/399)). Two additive sliders posed
1185
+ at a grid of *both* values — and over a rotation and a translation, so the claim
1186
+ is not one property's — are the closed-form sum at every cell of it, to float64:
1187
+ each slider maps its own reading to a time by §3.5.2's rule, its animation is read
1188
+ there, and the two contributions add. ⭐ That is a property of the **interior**
1189
+ and not of the corners, which is the whole reason it needed a grid: `PS129` drives
1190
+ the same comparison with an `ease` on one of the two animations, and every corner
1191
+ of the space still reads as correct while most of the inside has moved. ⇒ **a
1192
+ lookup table wants linear keys for a second reason** — not only that the face
1193
+ would drift while the value sat still, but that a curve is invisible to any check
1194
+ that reads an axis at its ends.
1195
+
1196
+ ⚠️ **And `mix` below 1 is not what it looks like when the later slider is not
1197
+ additive.** An additive slider scales its whole contribution by its own `mix`, so
1198
+ two of them at any pair of mixes are still the sum — which is why `A40` skipping
1199
+ below full authority is right: what happens there is a weighting, not the erasure
1200
+ it refuses. A **non-additive** slider at `mix` α applies
1201
+ `current + (value + setup − current) × α`, a lerp *from the pose it found*, so the
1202
+ earlier slider is not erased — it is attenuated by `1 − α`. A pitch dial turned
1203
+ halfway down takes that share of the yaw with it, on every frame, with the gate
1204
+ green. ⇒ write `"additive": true` on **every** slider that shares a target and
1205
+ not only on the later one, which is what the paragraph above already asks for and
1206
+ this is the second reason for.
1207
+
1183
1208
  ✅ **The editor half, measured.** This paragraph said *unknown* until the round
1184
1209
  trip was taken with `tools/editor_roundtrip.ts` on a licensed editor (data
1185
1210
  version 4.3.26) against a 4.3.13 build of
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "spine-rigc",
3
- "version": "0.25.1",
3
+ "version": "0.25.2",
4
4
  "description": "Rig compiler for Spine — declarative rig specs in, Spine 4.3 skeleton data out, verified by a spine-core round-trip. Built so AI agents can author rigs and check their own work; the output imports into the Spine editor.",
5
5
  "type": "module",
6
6
  "bin": {