@helix3/helix-cli 0.1.18-helix3.299 → 0.1.18-helix3.301

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.
@@ -0,0 +1,25 @@
1
+ import { type SplitSharedLodSkeletonsResult } from './stages/splitSharedLodSkeletons';
2
+ /**
3
+ * File-level entry point for `helix character repair-lod-skeletons`: repairs a packaged multi-LOD add-on
4
+ * whose LOD scenes share one skeleton (helix-creator-cli #219's output) — see `stages/splitSharedLodSkeletons.ts`.
5
+ *
6
+ * Output contract, so a batch driver never has to guess:
7
+ * - outcome 'repaired': `output` holds the repaired GLB. Its accessors are proven byte-identical to the
8
+ * input's (compared as a multiset of content hashes after re-reading the written file) — only the node and
9
+ * skin graph changed.
10
+ * - outcome 'nothing-to-repair': every scene already had its own skeleton; `output` is a BYTE-IDENTICAL copy.
11
+ * - anything the repair cannot do safely throws (see the stage's refusals) and writes nothing.
12
+ */
13
+ export type RepairOutcome = 'repaired' | 'nothing-to-repair';
14
+ export interface RepairLodSkeletonsFileResult extends SplitSharedLodSkeletonsResult {
15
+ outcome: RepairOutcome;
16
+ input: string;
17
+ output: string;
18
+ skinsBefore: number;
19
+ skinsAfter: number;
20
+ nodesBefore: number;
21
+ nodesAfter: number;
22
+ /** Accessors compared by content hash between input and written output (all must match). */
23
+ accessorsVerified: number;
24
+ }
25
+ export declare function repairLodSkeletonsFile(inputPath: string, outputPath: string): Promise<RepairLodSkeletonsFileResult>;
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.repairLodSkeletonsFile = repairLodSkeletonsFile;
4
+ const core_1 = require("@gltf-transform/core");
5
+ const extensions_1 = require("@gltf-transform/extensions");
6
+ const node_crypto_1 = require("node:crypto");
7
+ const node_fs_1 = require("node:fs");
8
+ const node_path_1 = require("node:path");
9
+ const meshoptimizer_1 = require("meshoptimizer");
10
+ const splitSharedLodSkeletons_1 = require("./stages/splitSharedLodSkeletons");
11
+ function accessorFingerprints(document) {
12
+ return document.getRoot().listAccessors().map((accessor) => {
13
+ const array = accessor.getArray();
14
+ const bytes = array ? Buffer.from(array.buffer, array.byteOffset, array.byteLength) : Buffer.alloc(0);
15
+ return `${accessor.getType()}:${accessor.getComponentType()}:${accessor.getCount()}:${accessor.getNormalized()}:${(0, node_crypto_1.createHash)('sha256').update(bytes).digest('hex')}`;
16
+ }).sort();
17
+ }
18
+ async function repairLodSkeletonsFile(inputPath, outputPath) {
19
+ await Promise.all([meshoptimizer_1.MeshoptDecoder.ready, meshoptimizer_1.MeshoptEncoder.ready]);
20
+ const io = new core_1.NodeIO()
21
+ .registerExtensions(extensions_1.ALL_EXTENSIONS)
22
+ .registerDependencies({ 'meshopt.decoder': meshoptimizer_1.MeshoptDecoder, 'meshopt.encoder': meshoptimizer_1.MeshoptEncoder });
23
+ const input = (0, node_path_1.resolve)(inputPath), output = (0, node_path_1.resolve)(outputPath);
24
+ const inputBytes = (0, node_fs_1.readFileSync)(input);
25
+ const document = await io.readBinary(inputBytes);
26
+ const before = accessorFingerprints(document);
27
+ const skinsBefore = document.getRoot().listSkins().length, nodesBefore = document.getRoot().listNodes().length;
28
+ const split = (0, splitSharedLodSkeletons_1.splitSharedLodSkeletons)(document);
29
+ (0, node_fs_1.mkdirSync)((0, node_path_1.dirname)(output), { recursive: true });
30
+ const base = { input, output, skinsBefore, nodesBefore, ...split };
31
+ if (split.scenesRepaired === 0) {
32
+ if (input !== output)
33
+ (0, node_fs_1.copyFileSync)(input, output);
34
+ return { ...base, outcome: 'nothing-to-repair', skinsAfter: skinsBefore, nodesAfter: nodesBefore, accessorsVerified: before.length };
35
+ }
36
+ const bytes = await io.writeBinary(document);
37
+ const written = await io.readBinary(bytes);
38
+ const after = accessorFingerprints(written);
39
+ if (after.length !== before.length || after.some((fingerprint, i) => fingerprint !== before[i])) {
40
+ throw new Error(`repair: accessor data changed during the repair (${before.length} → ${after.length} accessors) — refusing to write ${output}`);
41
+ }
42
+ (0, node_fs_1.writeFileSync)(output, bytes);
43
+ return {
44
+ ...base, outcome: 'repaired',
45
+ skinsAfter: written.getRoot().listSkins().length, nodesAfter: written.getRoot().listNodes().length,
46
+ accessorsVerified: after.length,
47
+ };
48
+ }
49
+ //# sourceMappingURL=repairLodSkeletonsFile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repairLodSkeletonsFile.js","sourceRoot":"","sources":["../../src/character/repairLodSkeletonsFile.ts"],"names":[],"mappings":"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"}
@@ -121,9 +121,10 @@ export interface PoseAwareFitReport {
121
121
  hiddenRegions: string[];
122
122
  };
123
123
  before: Measurement | null;
124
- /** The gate measurement of the geometry actually kept (== before unless outcome is 'improved'). */
124
+ /** The gate measurement of the geometry actually kept (== before unless outcome is 'improved') — measured
125
+ * fresh from the written float32 positions, so it equals what `pokethrough-check.mjs` prints for the file. */
125
126
  after: Measurement | null;
126
- /** The best candidate the fit produced, even when the gate rejected it (null if none was produced). */
127
+ /** The best candidate as measured inside the loop (float64), even when the gate rejected it. */
127
128
  bestCandidate: Measurement | null;
128
129
  chosenIteration: number | null;
129
130
  iterations: PoseAwareFitIteration[];
@@ -379,8 +379,30 @@ function poseAwareFit(garment, body, options = {}) {
379
379
  accessor.setArray(out);
380
380
  });
381
381
  });
382
+ // Re-judge what actually SHIPS. The loop measured each candidate as posedRest + L·Δ in float64; the file
383
+ // holds float32(rest + Δ), skinned by the checker's own arithmetic. The two agree to ~1e-8 m, but near-ties
384
+ // between two garment faces (a lining meeting its shell at a fold) can flip on that, and did: Male Casual
385
+ // Blazer's winning candidate read 213 in the loop and 204 in the checker on the written file. So the gate
386
+ // is applied once more to a fresh, checker-exact measurement of the written geometry — the number reported
387
+ // is the number the checker will print — and a candidate that no longer passes is rolled back to the
388
+ // original bytes.
389
+ const shipped = (0, measure_1.measurePokethrough)(bodyModel, (0, model_1.buildGarmentModel)(garment, poseNames), garmentModel.units.map((u) => new Float64Array(u.vertexCount * 3)), measureSettings);
390
+ const shippedRejection = (0, measure_1.gateRejection)(before, shipped, 0);
391
+ if (shippedRejection !== null) {
392
+ for (const state of states) {
393
+ state.unit.accessors.forEach((accessor, a) => {
394
+ const base = state.unit.accessorBase[a];
395
+ accessor.setArray(Float32Array.from(state.unit.rest.subarray(base * 3, (base + accessor.getCount()) * 3)));
396
+ });
397
+ }
398
+ report.outcome = 'unchanged-no-improvement';
399
+ report.after = before;
400
+ report.reason = `the chosen candidate failed the gate once written at float32 precision (${shippedRejection}) — original geometry restored`;
401
+ log(`pose-fit: ${report.reason}`);
402
+ return finish();
403
+ }
382
404
  report.outcome = 'improved';
383
- report.after = best.measurement;
405
+ report.after = shipped;
384
406
  report.chosenIteration = best.iteration;
385
407
  moves.sort((x, y) => x - y);
386
408
  const pct = (q) => (moves.length > 0 ? +(moves[Math.min(moves.length - 1, Math.floor(q * moves.length))] * 1000).toFixed(3) : 0);
@@ -389,7 +411,7 @@ function poseAwareFit(garment, body, options = {}) {
389
411
  p50MoveMm: pct(0.5), p90MoveMm: pct(0.9), p99MoveMm: pct(0.99),
390
412
  groupsOver5Mm: moves.filter((m) => m > 0.005).length, groupsOver10Mm: moves.filter((m) => m > 0.01).length,
391
413
  };
392
- log(`pose-fit: improved ${before.totalViolations} → ${best.measurement.totalViolations} violation(s) (iteration ${best.iteration}); moved ${groupsMoved} welded vertex group(s), max ${(maxMove * 1000).toFixed(2)}mm`);
414
+ log(`pose-fit: improved ${before.totalViolations} → ${shipped.totalViolations} violation(s) (iteration ${best.iteration}); moved ${groupsMoved} welded vertex group(s), max ${(maxMove * 1000).toFixed(2)}mm`);
393
415
  return finish();
394
416
  }
395
417
  //# sourceMappingURL=poseAwareFit.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"poseAwareFit.js","sourceRoot":"","sources":["../../../src/character/stages/poseAwareFit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"poseAwareFit.js","sourceRoot":"","sources":["../../../src/character/stages/poseAwareFit.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ import type { Document } from '@gltf-transform/core';
2
+ /**
3
+ * REPAIR IN PLACE: gives every LOD scene of an already-packaged character GLB its own copy of a skeleton that
4
+ * several scenes share — undoing helix-creator-cli #219's fold without the original source.
5
+ *
6
+ * #219 grouped a multi-LOD add-on's per-LOD skins by their ordered joint names, repointed every LOD's skinned
7
+ * mesh at the first skin, rooted that one skeleton in every scene, and disposed the other copies. Those copies
8
+ * were byte-for-byte duplicates — every LOD level was parsed from the same conformed bytes, so joint names,
9
+ * order, local transforms and inverse bind matrices were identical — so nothing was lost that cannot be
10
+ * rebuilt: for each scene after the first that roots a shared subtree, clone that subtree (names, TRS,
11
+ * extras, the same mesh/skin references), give the scene's skinned meshes a new Skin over the cloned joints
12
+ * with the SAME inverse-bind accessor, and swap the scene's root reference to the clone. The result is the
13
+ * pre-#219 structure, which three.js loads (see `mergeLods`' header for why the shared form does not).
14
+ *
15
+ * Only the node/skin graph changes: every accessor (positions, weights, joints, IBMs), mesh, material and
16
+ * texture is untouched and keeps its identity. The outcome is checked with `assertSelfContainedLodScenes`.
17
+ *
18
+ * Refuses (throws) rather than guesses when:
19
+ * - a LOD scene has no skinned mesh left — #219's dispose would have deleted a mesh node parented UNDER a
20
+ * duplicate bone, which no repair can recover (re-extract that item);
21
+ * - a skin mixes joints from a shared subtree with joints owned by its own scene;
22
+ * - a node to be cloned carries glTF extensions (never seen on a character skeleton; not silently dropped).
23
+ */
24
+ export interface SplitSharedLodSkeletonsResult {
25
+ scenes: number;
26
+ /** Scenes that received their own copy of a shared subtree. */
27
+ scenesRepaired: number;
28
+ nodesCloned: number;
29
+ skinsCreated: number;
30
+ }
31
+ export declare function splitSharedLodSkeletons(document: Document): SplitSharedLodSkeletonsResult;
@@ -0,0 +1,104 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.splitSharedLodSkeletons = splitSharedLodSkeletons;
4
+ const mergeLods_1 = require("./mergeLods");
5
+ function subtree(roots) {
6
+ const out = [];
7
+ const seen = new Set();
8
+ const stack = [...roots];
9
+ while (stack.length > 0) {
10
+ const node = stack.pop();
11
+ if (seen.has(node))
12
+ continue;
13
+ seen.add(node);
14
+ out.push(node);
15
+ stack.push(...node.listChildren());
16
+ }
17
+ return out;
18
+ }
19
+ function cloneTree(document, root, map) {
20
+ if (root.listExtensions().length > 0) {
21
+ throw new Error(`repair: node '${root.getName()}' carries glTF extensions (${root.listExtensions().map((e) => e.extensionName).join(', ')}) — refusing to clone it lossily`);
22
+ }
23
+ const copy = document.createNode(root.getName())
24
+ .setTranslation([...root.getTranslation()])
25
+ .setRotation([...root.getRotation()])
26
+ .setScale([...root.getScale()])
27
+ .setWeights([...root.getWeights()])
28
+ .setExtras(structuredClone(root.getExtras()));
29
+ const mesh = root.getMesh();
30
+ if (mesh)
31
+ copy.setMesh(mesh);
32
+ const skin = root.getSkin();
33
+ if (skin)
34
+ copy.setSkin(skin); // remapped once every joint copy exists
35
+ const camera = root.getCamera();
36
+ if (camera)
37
+ copy.setCamera(camera);
38
+ map.set(root, copy);
39
+ for (const child of root.listChildren())
40
+ copy.addChild(cloneTree(document, child, map));
41
+ return copy;
42
+ }
43
+ function splitSharedLodSkeletons(document) {
44
+ const scenes = document.getRoot().listScenes();
45
+ const result = { scenes: scenes.length, scenesRepaired: 0, nodesCloned: 0, skinsCreated: 0 };
46
+ const owner = new Map();
47
+ for (const scene of scenes) {
48
+ for (const node of subtree(scene.listChildren()))
49
+ if (!owner.has(node))
50
+ owner.set(node, scene);
51
+ }
52
+ for (const scene of scenes) {
53
+ const shared = scene.listChildren().filter((child) => owner.get(child) !== scene);
54
+ if (shared.length === 0)
55
+ continue;
56
+ const map = new Map();
57
+ for (const root of shared) {
58
+ const clone = cloneTree(document, root, map);
59
+ scene.removeChild(root);
60
+ scene.addChild(clone);
61
+ }
62
+ result.nodesCloned += map.size;
63
+ result.scenesRepaired++;
64
+ // Every skinned mesh in this scene that is bound to cloned joints gets a skin over the clones.
65
+ const rebuilt = new Map();
66
+ for (const node of subtree(scene.listChildren())) {
67
+ const skin = node.getSkin();
68
+ if (!skin)
69
+ continue;
70
+ const joints = skin.listJoints();
71
+ const mapped = joints.map((joint) => map.get(joint));
72
+ if (mapped.every((joint) => joint === undefined))
73
+ continue; // bound to this scene's own joints already
74
+ if (mapped.some((joint) => joint === undefined)) {
75
+ throw new Error(`repair: skin '${skin.getName()}' in scene '${scene.getName()}' mixes shared and scene-owned joints — cannot split it safely`);
76
+ }
77
+ let replacement = rebuilt.get(skin);
78
+ if (!replacement) {
79
+ replacement = document.createSkin(skin.getName());
80
+ for (const joint of mapped)
81
+ replacement.addJoint(joint);
82
+ const ibm = skin.getInverseBindMatrices();
83
+ if (ibm)
84
+ replacement.setInverseBindMatrices(ibm); // same bytes, same accessor: identical binding
85
+ const skeleton = skin.getSkeleton();
86
+ if (skeleton)
87
+ replacement.setSkeleton(map.get(skeleton) ?? skeleton);
88
+ replacement.setExtras(structuredClone(skin.getExtras()));
89
+ rebuilt.set(skin, replacement);
90
+ result.skinsCreated++;
91
+ }
92
+ node.setSkin(replacement);
93
+ }
94
+ }
95
+ scenes.forEach((scene, index) => {
96
+ const skinned = subtree(scene.listChildren()).filter((node) => node.getMesh() && node.getSkin());
97
+ if (skinned.length === 0) {
98
+ throw new Error(`repair: LOD scene ${index + 1} ('${scene.getName()}') has no skinned mesh — it cannot be rebuilt from this file; re-extract the item`);
99
+ }
100
+ });
101
+ (0, mergeLods_1.assertSelfContainedLodScenes)(document);
102
+ return result;
103
+ }
104
+ //# sourceMappingURL=splitSharedLodSkeletons.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"splitSharedLodSkeletons.js","sourceRoot":"","sources":["../../../src/character/stages/splitSharedLodSkeletons.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -3723,6 +3723,32 @@ character
3723
3723
  fail(`✖ ${err instanceof Error ? err.message : String(err)}`);
3724
3724
  }
3725
3725
  });
3726
+ character
3727
+ .command('repair-lod-skeletons')
3728
+ .description("Repair a packaged multi-LOD add-on whose LOD scenes share one skeleton (helix-creator-cli #219's output, which three.js loads with undefined bones): give every LOD scene its own copy, changing only the node/skin graph")
3729
+ .argument('<glb>', 'packaged add-on GLB')
3730
+ .requiredOption('-o, --output <glb>', 'output GLB: the repaired file, or a byte-identical copy when nothing is shared')
3731
+ .option('--json', 'print the result as JSON')
3732
+ .addHelpText('after', '\nExit codes: 0 = repaired · 3 = nothing to repair (output is a byte-identical copy) · 1 = refused/error (nothing written).\nCheck the result with `node scripts/engine-bind-check.mjs <out.glb> --host <base.glb>` before publishing.')
3733
+ .action(async (glb, opts) => {
3734
+ try {
3735
+ const { repairLodSkeletonsFile } = await Promise.resolve().then(() => __importStar(require('./character/repairLodSkeletonsFile')));
3736
+ const result = await repairLodSkeletonsFile((0, node_path_1.resolve)(glb), (0, node_path_1.resolve)(opts.output));
3737
+ if (opts.json)
3738
+ console.log(JSON.stringify(result, null, 2));
3739
+ else if (result.outcome === 'repaired') {
3740
+ console.log(`✔ repaired: ${result.scenesRepaired}/${result.scenes} LOD scene(s) given their own skeleton — skins ${result.skinsBefore} → ${result.skinsAfter}, nodes ${result.nodesBefore} → ${result.nodesAfter}; ${result.accessorsVerified} accessor(s) verified byte-identical`);
3741
+ console.log(` output: ${result.output}`);
3742
+ }
3743
+ else {
3744
+ console.log(`• nothing to repair: every LOD scene already has its own skeleton — output is a byte-identical copy (${result.output})`);
3745
+ }
3746
+ process.exitCode = result.outcome === 'repaired' ? 0 : 3;
3747
+ }
3748
+ catch (err) {
3749
+ fail(`✖ ${err instanceof Error ? err.message : String(err)}`);
3750
+ }
3751
+ });
3726
3752
  character
3727
3753
  .command('retarget-animation')
3728
3754
  .description('Retarget one raw Meshy/Mixamo FBX or GLB directly to a helix-humanoid@1 animation clip')