rig-parts 2.0.1 → 2.0.3

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/README.md CHANGED
@@ -2,7 +2,13 @@
2
2
  <img src="https://raw.githubusercontent.com/rig-c/parts/main/assets/banner.svg" alt="@rig-c/parts — 2D character parts, weighted meshes and bone chains from one painting" width="100%" />
3
3
  </p>
4
4
 
5
- # @rig-c/parts — CLI `rig-parts`
5
+ <p align="center">
6
+ <a href="https://www.npmjs.com/package/@rig-c/parts"><img src="https://img.shields.io/npm/v/@rig-c/parts.svg?style=flat-square&color=FF6B4A" alt="npm version" /></a>
7
+ <a href="https://www.npmjs.com/package/@rig-c/parts"><img src="https://img.shields.io/npm/dm/@rig-c/parts.svg?style=flat-square&color=EC4899" alt="npm downloads" /></a>
8
+ <a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-38BDF8.svg?style=flat-square" alt="license" /></a>
9
+ </p>
10
+
11
+ # @rig-c/parts
6
12
 
7
13
  **AI-authored 2D character rigs from one anime painting, verified before they
8
14
  are written.** rig-parts generates no images. The painting and See-through layers
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rig-parts",
3
- "version": "2.0.1",
3
+ "version": "2.0.3",
4
4
  "description": "AI-authored 2D character parts from one anime painting and its See-through layer decomposition: measured parts, weighted-mesh rig specs, verified through rig-c before anything is written. A CLI for agents that cannot see the image.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: rig-parts
3
- description: Turn one anime character painting and its See-through layer decomposition into a verified 2D character rig (Spine 4.3 skeleton data) — measured parts, weighted meshes, bone chains and a looping idle — with rig-parts, which gates everything through rig-c before it is written. Use for a request to rig or animate a single character painting, to check a painting before See-through (rig-parts painting), to run or read rig-parts layers, sheet, assemble, propose, rig, check, loop or build, or to write or fix a rig-parts config.json. Not for cutting art into parts by hand, for authoring a rig from loose PNGs (that is the rigc skill), for lip-sync or swapping a part's image, or for running See-through itself.
3
+ description: Turn one anime character painting and its See-through layer decomposition into a verified 2D character rig (Spine 4.3 skeleton data) — measured parts, weighted meshes, bone chains and a looping idle — with rig-parts, which gates everything through rig-c before it is written. Use for a request to rig or animate a single character painting, to check a painting before See-through (rig-parts painting), to run or read rig-parts layers, sheet, assemble, depth-prepare, depth-apply, propose, rig, check, loop or build, or to write or fix a rig-parts config.json. Not for cutting art into parts by hand, for authoring a rig from loose PNGs (that is the rigc skill), for lip-sync or swapping a part's image, or for running See-through itself.
4
4
  license: MIT
5
5
  compatibility: Requires Bun 1.4 or later (declared in engines.bun >=1.4.0; CI tests latest only). The tool is the npm package @rig-c/parts (npm i -D @rig-c/parts, or bun add -d @rig-c/parts), whose command is rig-parts; @rig-c/core (the rigc command) is installed with it. See-through is run separately.
6
6
  ---
@@ -74,7 +74,10 @@ under that.
74
74
  route; the optional `comfy seethrough` adapter only talks to a ComfyUI box.
75
75
  2. `rig-parts layers <full run>` — read the table. A `WARN PLAN_LAYER_…` line names
76
76
  a layer See-through invented (a translucent haze, or one out of proportion);
77
- the plan step leaves it out and says so in its `notes`.
77
+ the plan step leaves it out and says so in its `notes`. When an input carries no
78
+ depth (`depth_median: null` on every layer, or a PSD), `layers` prints one
79
+ `SKIP depth:` line (manifest order is then the draw order, and `propose --full`
80
+ or `--head` prints `turn: SKIP`) — report it as skipped, never as passed.
78
81
  3. `rig-parts propose --head-box --full <full run> --canvas <W>x<H>` → put
79
82
  `head_box` in the config, run `inputs` again (it now also writes
80
83
  `st_input_head.png`, the crop at that box), and run See-through on the crop.
@@ -142,6 +145,12 @@ under that.
142
145
  (add `--idle-keys direct` when step 6 said so).
143
146
  It stops at the first stage that refuses, printing that stage's lines under
144
147
  `[assemble]`, `[rig]` or `[check]`. Fix what the FAIL line names and build again.
148
+ When a declared head turn (`turn.depths` or `turn.roles`) has an absolute setup
149
+ eye-line roll above `18.485385` degrees, `rig` and `build` print
150
+ `WARN RIG_TURN_HEAD_ROLL` naming the face/eye parts, both eye bones, signed roll
151
+ and limit; it does not refuse the build or change emitted bytes — inspect the neck
152
+ at both yaw/pitch extremes before accepting the turn
153
+ ([Head roll before a declared turn](https://github.com/rig-c/parts/blob/main/docs/AUTHORING.md#head-roll-before-a-declared-turn)).
145
154
  8. Read `out/check/check.json` — the six judgement lines the same way as the seam
146
155
  and the loop: a FAIL names the field to change (AUTHORING §6);
147
156
  `TEXTURE_STRETCH` names the worst mesh triangle (slot, triangle, vertices, edge,
@@ -178,6 +187,33 @@ nothing detects or separates people. Report the plate's provenance as you declar
178
187
  it and the order as `scene.json` records it (AUTHORING §7, *Composing several
179
188
  characters*).
180
189
 
190
+ Depth-driven 2.5D turns ([Depth-driven rigging](https://github.com/rig-c/parts/blob/main/docs/AUTHORING.md#depth-driven-rigging)):
191
+ `depth_filename` is a legacy hint and activates nothing on its own. Declare
192
+ `config.depth` with positive finite `zScale` (`near: "black"` for See-through's
193
+ far-high sheets, or user fallbacks under `depth.full` / `depth.head`, and
194
+ `comfy seethrough --config <file> --depth-run <full|head>` when fetching from
195
+ ComfyUI; [Per-layer depth sheets](https://github.com/rig-c/parts/blob/main/docs/AUTHORING.md#per-layer-depth-sheets-773)
196
+ and [Per-layer depth input](https://github.com/rig-c/parts/blob/main/docs/AUTHORING.md#per-layer-depth-input)),
197
+ then map parts in `turn.roles` (head `yaw_dial`/`pitch_dial`) and `turn.body.roles`
198
+ (independent `body_yaw_dial` or `turn.body.slider`) as `"surface"` (grid or authored
199
+ weighted meshes; `auto` is refused by `CONFIG_TURN_SURFACE_AUTO`), `"unit"` or
200
+ `"rear"`. A `"unit"` part's depth resolves by `unitDepths.<part>` →
201
+ `unitDepths.<bone>` → primary surface sheet before the part's own sheet
202
+ ([Unit depth precedence](https://github.com/rig-c/parts/blob/main/docs/AUTHORING.md#unit-depth-precedence)).
203
+ When depth comes from external per-part provider maps (`rig-parts-depth/1` recipe
204
+ and `rig-parts-map/1` float JSON maps, run after `assemble` and before `rig`), run
205
+ `rig-parts depth-prepare --parts <assembled> --config <depth.json> --out <inference>`
206
+ and `rig-parts depth-apply --parts <assembled> --manifest <manifest.json> --config <depth.json> --rig-config <config.json> --out <mapped>`;
207
+ non-empty output (`DEPTH_OUTPUT_EMPTY`), stale input bindings (`DEPTH_INPUT_BINDING`),
208
+ `authored-unit` provenance (`DEPTH_AUTHORED_UNIT_CONFLICT`), flat maps with nonzero
209
+ relief (`DEPTH_MAP_SPREAD`) and multi-island or non-convex normal maps
210
+ (`DEPTH_NORMAL_*`) are refused by name
211
+ ([Per-part provider maps](https://github.com/rig-c/parts/blob/main/docs/AUTHORING.md#per-part-provider-maps-897)
212
+ and [Depth sheet refusals](https://github.com/rig-c/parts/blob/main/docs/AUTHORING.md#depth-sheet-refusals-773)).
213
+
214
+ `assemble.seam` (`"near-white"` or `"silhouette"` in `config.json`, overridden by
215
+ `--seam`; [AUTHORING §3](https://github.com/rig-c/parts/blob/main/docs/AUTHORING.md#3-configjson-field-by-field)
216
+ and [§5](https://github.com/rig-c/parts/blob/main/docs/AUTHORING.md#5-after-each-stage-what-to-read)):
181
217
  `--seam silhouette` repairs more of the seam on white garments than the default
182
218
  `near-white` (reference-demo: 10,340 → 8,644 recomposite error pixels); the default is
183
219
  the reference implementation's rule. `--project visible` lets thin visible parts