@helix3/helix-cli 0.1.4-helix3.24

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.
Files changed (102) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +64 -0
  3. package/dist/ability.d.ts +73 -0
  4. package/dist/ability.js +120 -0
  5. package/dist/ability.js.map +1 -0
  6. package/dist/api.d.ts +24 -0
  7. package/dist/api.js +83 -0
  8. package/dist/api.js.map +1 -0
  9. package/dist/browserLogin.d.ts +22 -0
  10. package/dist/browserLogin.js +148 -0
  11. package/dist/browserLogin.js.map +1 -0
  12. package/dist/bundle.d.ts +15 -0
  13. package/dist/bundle.js +98 -0
  14. package/dist/bundle.js.map +1 -0
  15. package/dist/character/canonicalSkeleton.d.ts +3 -0
  16. package/dist/character/canonicalSkeleton.js +23 -0
  17. package/dist/character/canonicalSkeleton.js.map +1 -0
  18. package/dist/character/canonicalSkeletonData.d.ts +6 -0
  19. package/dist/character/canonicalSkeletonData.js +92 -0
  20. package/dist/character/canonicalSkeletonData.js.map +1 -0
  21. package/dist/character/esm.d.ts +1 -0
  22. package/dist/character/esm.js +6 -0
  23. package/dist/character/esm.js.map +1 -0
  24. package/dist/character/importCharacter.d.ts +88 -0
  25. package/dist/character/importCharacter.js +293 -0
  26. package/dist/character/importCharacter.js.map +1 -0
  27. package/dist/character/mat4.d.ts +29 -0
  28. package/dist/character/mat4.js +103 -0
  29. package/dist/character/mat4.js.map +1 -0
  30. package/dist/character/meshyToHelixMap.d.ts +2 -0
  31. package/dist/character/meshyToHelixMap.js +40 -0
  32. package/dist/character/meshyToHelixMap.js.map +1 -0
  33. package/dist/character/quat.d.ts +15 -0
  34. package/dist/character/quat.js +137 -0
  35. package/dist/character/quat.js.map +1 -0
  36. package/dist/character/stages/bakeTexture.d.ts +20 -0
  37. package/dist/character/stages/bakeTexture.js +396 -0
  38. package/dist/character/stages/bakeTexture.js.map +1 -0
  39. package/dist/character/stages/conform.d.ts +56 -0
  40. package/dist/character/stages/conform.js +292 -0
  41. package/dist/character/stages/conform.js.map +1 -0
  42. package/dist/character/stages/ktx2.d.ts +22 -0
  43. package/dist/character/stages/ktx2.js +97 -0
  44. package/dist/character/stages/ktx2.js.map +1 -0
  45. package/dist/character/stages/mergeLods.d.ts +15 -0
  46. package/dist/character/stages/mergeLods.js +42 -0
  47. package/dist/character/stages/mergeLods.js.map +1 -0
  48. package/dist/character/stages/report.d.ts +2 -0
  49. package/dist/character/stages/report.js +19 -0
  50. package/dist/character/stages/report.js.map +1 -0
  51. package/dist/character/stages/resizeTextures.d.ts +11 -0
  52. package/dist/character/stages/resizeTextures.js +62 -0
  53. package/dist/character/stages/resizeTextures.js.map +1 -0
  54. package/dist/character/stages/retarget.d.ts +49 -0
  55. package/dist/character/stages/retarget.js +105 -0
  56. package/dist/character/stages/retarget.js.map +1 -0
  57. package/dist/character/stages/retargetClip.d.ts +27 -0
  58. package/dist/character/stages/retargetClip.js +237 -0
  59. package/dist/character/stages/retargetClip.js.map +1 -0
  60. package/dist/character/stages/simplifyMesh.d.ts +15 -0
  61. package/dist/character/stages/simplifyMesh.js +37 -0
  62. package/dist/character/stages/simplifyMesh.js.map +1 -0
  63. package/dist/character/stages/splitFacePrimitive.d.ts +30 -0
  64. package/dist/character/stages/splitFacePrimitive.js +115 -0
  65. package/dist/character/stages/splitFacePrimitive.js.map +1 -0
  66. package/dist/character/stages/weldedSimplify.d.ts +32 -0
  67. package/dist/character/stages/weldedSimplify.js +202 -0
  68. package/dist/character/stages/weldedSimplify.js.map +1 -0
  69. package/dist/character/testutil/syntheticRig.d.ts +9 -0
  70. package/dist/character/testutil/syntheticRig.js +84 -0
  71. package/dist/character/testutil/syntheticRig.js.map +1 -0
  72. package/dist/config.d.ts +25 -0
  73. package/dist/config.js +103 -0
  74. package/dist/config.js.map +1 -0
  75. package/dist/index.d.ts +2 -0
  76. package/dist/index.js +378 -0
  77. package/dist/index.js.map +1 -0
  78. package/dist/init.d.ts +1 -0
  79. package/dist/init.js +87 -0
  80. package/dist/init.js.map +1 -0
  81. package/dist/initAbility.d.ts +1 -0
  82. package/dist/initAbility.js +71 -0
  83. package/dist/initAbility.js.map +1 -0
  84. package/dist/install.d.ts +51 -0
  85. package/dist/install.js +201 -0
  86. package/dist/install.js.map +1 -0
  87. package/dist/lib.d.ts +88 -0
  88. package/dist/lib.js +347 -0
  89. package/dist/lib.js.map +1 -0
  90. package/dist/package.d.ts +11 -0
  91. package/dist/package.js +136 -0
  92. package/dist/package.js.map +1 -0
  93. package/dist/prompt.d.ts +2 -0
  94. package/dist/prompt.js +55 -0
  95. package/dist/prompt.js.map +1 -0
  96. package/dist/resolve.d.ts +57 -0
  97. package/dist/resolve.js +103 -0
  98. package/dist/resolve.js.map +1 -0
  99. package/dist/tsconfig.build.tsbuildinfo +1 -0
  100. package/package.json +58 -0
  101. package/vendor/ability-manifest.mjs +558 -0
  102. package/vendor/installed-index.mjs +71 -0
package/dist/bundle.js ADDED
@@ -0,0 +1,98 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MULTIPLAYER_CONFIG_FILENAME = void 0;
4
+ exports.checkBundle = checkBundle;
5
+ exports.multiplayerConfigBundleFile = multiplayerConfigBundleFile;
6
+ const node_fs_1 = require("node:fs");
7
+ const node_path_1 = require("node:path");
8
+ const helix_manifest_1 = require("@hypersoniclabs/helix-manifest");
9
+ const IGNORED_DIRS = new Set(['node_modules', '.git', '.vscode', '.idea']);
10
+ function walk(dir, root, out) {
11
+ for (const name of (0, node_fs_1.readdirSync)(dir)) {
12
+ if (IGNORED_DIRS.has(name))
13
+ continue;
14
+ const absolutePath = (0, node_path_1.join)(dir, name);
15
+ const stat = (0, node_fs_1.statSync)(absolutePath);
16
+ if (stat.isDirectory()) {
17
+ walk(absolutePath, root, out);
18
+ }
19
+ else {
20
+ out.push({ path: (0, node_path_1.relative)(root, absolutePath).replaceAll('\\', '/'), size: stat.size, absolutePath });
21
+ }
22
+ }
23
+ }
24
+ // Local validation with the exact same rules the server enforces at publish —
25
+ // shared via @hypersoniclabs/helix-manifest, so "validate passed but publish failed" can't
26
+ // happen for contract reasons.
27
+ function checkBundle(root) {
28
+ const errors = [];
29
+ const files = [];
30
+ try {
31
+ walk(root, root, files);
32
+ }
33
+ catch (err) {
34
+ return { manifest: null, files: [], errors: [`cannot read directory: ${err instanceof Error ? err.message : err}`] };
35
+ }
36
+ const manifestFile = files.find((f) => f.path === helix_manifest_1.MANIFEST_FILENAME);
37
+ let manifest = null;
38
+ if (!manifestFile) {
39
+ errors.push(`no ${helix_manifest_1.MANIFEST_FILENAME} found at the bundle root`);
40
+ }
41
+ else {
42
+ const result = (0, helix_manifest_1.parseManifest)((0, node_fs_1.readFileSync)(manifestFile.absolutePath, 'utf8'));
43
+ if (result.valid)
44
+ manifest = result.manifest;
45
+ else
46
+ errors.push(...result.errors);
47
+ }
48
+ if (files.length > helix_manifest_1.BUNDLE_MAX_FILES)
49
+ errors.push(`${files.length} files — limit is ${helix_manifest_1.BUNDLE_MAX_FILES}`);
50
+ let total = 0;
51
+ for (const file of files) {
52
+ total += file.size;
53
+ if (!helix_manifest_1.BUNDLE_PATH_PATTERN.test(file.path))
54
+ errors.push(`invalid path: ${file.path}`);
55
+ else if ((0, helix_manifest_1.bundleContentType)(file.path) === null)
56
+ errors.push(`file type not allowed: ${file.path}`);
57
+ if (file.size > helix_manifest_1.BUNDLE_MAX_FILE_BYTES)
58
+ errors.push(`${file.path} is ${file.size} bytes — per-file limit is ${helix_manifest_1.BUNDLE_MAX_FILE_BYTES}`);
59
+ if (file.size === 0)
60
+ errors.push(`${file.path} is empty`);
61
+ }
62
+ if (total > helix_manifest_1.BUNDLE_MAX_TOTAL_BYTES)
63
+ errors.push(`bundle is ${total} bytes — limit is ${helix_manifest_1.BUNDLE_MAX_TOTAL_BYTES}`);
64
+ if (manifest && !files.some((f) => f.path === manifest.entry)) {
65
+ errors.push(`entry "${manifest.entry}" does not exist in the bundle`);
66
+ }
67
+ // v0.2+ worlds embed system/ability CODE under helix_modules/ but never HELIX assets —
68
+ // those stream from the CDN. A clip/texture under helix_modules/ is a licensing leak.
69
+ // v0.3 gets the same gate — MUST stay in sync with the backend's build gate (instant-world-builds.service.ts).
70
+ if (manifest?.helixVersion === '0.2' || manifest?.helixVersion === '0.3') {
71
+ const leaked = (0, helix_manifest_1.embeddedModuleAssets)(files.map((f) => f.path));
72
+ if (leaked.length) {
73
+ errors.push(`HELIX assets must stream from the CDN, not ship under helix_modules/: ${leaked.join(', ')}`);
74
+ }
75
+ }
76
+ return { manifest, files, errors };
77
+ }
78
+ // The declarative multiplayer config the room loads at runtime ships as a standalone bundle artifact
79
+ // derived from helix.json's validated `multiplayer` block: the backend signs its URL into the room
80
+ // credential (configUrl) and the room fetches + caches it by buildId. The FILENAME is a cross-repo
81
+ // contract — it MUST match the backend's MULTIPLAYER_CONFIG_FILENAME and the room's config loader.
82
+ exports.MULTIPLAYER_CONFIG_FILENAME = 'multiplayer.json';
83
+ // Build the multiplayer.json bundle entry from a validated manifest, or null for a non-multiplayer world.
84
+ // Content is in-memory (we never touch the creator's source dir): the normalized `multiplayer` block
85
+ // verbatim, so the room realizes exactly what publish validated. absolutePath records where the artifact
86
+ // maps in the bundle; it's never read — `content` is used on upload.
87
+ function multiplayerConfigBundleFile(root, manifest) {
88
+ if (!manifest.multiplayer)
89
+ return null;
90
+ const content = Buffer.from(`${JSON.stringify(manifest.multiplayer, null, 2)}\n`, 'utf8');
91
+ return {
92
+ path: exports.MULTIPLAYER_CONFIG_FILENAME,
93
+ size: content.byteLength,
94
+ absolutePath: (0, node_path_1.join)(root, exports.MULTIPLAYER_CONFIG_FILENAME),
95
+ content,
96
+ };
97
+ }
98
+ //# sourceMappingURL=bundle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bundle.js","sourceRoot":"","sources":["../src/bundle.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { CanonicalSkeleton } from './stages/conform';
2
+ /** World rest transforms accumulate root-down, exactly like extractCanonicalSkeleton's visit(). */
3
+ export declare function vendoredCanonicalSkeleton(): CanonicalSkeleton;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ // CLI-side loader for the embedded canonical skeleton snapshot (canonicalSkeletonData.ts). Rebuilds
3
+ // the same CanonicalSkeleton that extractCanonicalSkeleton reads out of a shipped body GLB — the
4
+ // standalone default when no --canonical is passed and no installed pack carries the body.
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.vendoredCanonicalSkeleton = vendoredCanonicalSkeleton;
7
+ const mat4_1 = require("./mat4");
8
+ const canonicalSkeletonData_1 = require("./canonicalSkeletonData");
9
+ const IDENTITY = [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1];
10
+ /** World rest transforms accumulate root-down, exactly like extractCanonicalSkeleton's visit(). */
11
+ function vendoredCanonicalSkeleton() {
12
+ const worldByName = new Map();
13
+ const nodes = [];
14
+ for (const def of canonicalSkeletonData_1.CANONICAL_SKELETON_NODES) {
15
+ const parentWorld = def.parent !== null ? worldByName.get(def.parent) : IDENTITY;
16
+ if (parentWorld === undefined)
17
+ throw new Error(`canonical skeleton snapshot: node '${def.name}' precedes its parent '${def.parent}'`);
18
+ worldByName.set(def.name, (0, mat4_1.mul4)(parentWorld, def.local));
19
+ nodes.push({ name: def.name, parent: def.parent, local: [...def.local] });
20
+ }
21
+ return { nodes, jointNames: [...canonicalSkeletonData_1.CANONICAL_JOINT_NAMES], worldByName, skeletonRootName: canonicalSkeletonData_1.CANONICAL_SKELETON_ROOT };
22
+ }
23
+ //# sourceMappingURL=canonicalSkeleton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"canonicalSkeleton.js","sourceRoot":"","sources":["../../src/character/canonicalSkeleton.ts"],"names":[],"mappings":";AAAA,oGAAoG;AACpG,iGAAiG;AACjG,2FAA2F;;AAS3F,8DAUC;AAjBD,iCAA8B;AAE9B,mEAAmH;AAEnH,MAAM,QAAQ,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAElE,mGAAmG;AACnG,SAAgB,yBAAyB;IACvC,MAAM,WAAW,GAAG,IAAI,GAAG,EAAoB,CAAC;IAChD,MAAM,KAAK,GAAkB,EAAE,CAAC;IAChC,KAAK,MAAM,GAAG,IAAI,gDAAwB,EAAE,CAAC;QAC3C,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;QACjF,IAAI,WAAW,KAAK,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,sCAAsC,GAAG,CAAC,IAAI,0BAA0B,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;QACtI,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,IAAA,WAAI,EAAC,WAAW,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;QACxD,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC5E,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,GAAG,6CAAqB,CAAC,EAAE,WAAW,EAAE,gBAAgB,EAAE,+CAAuB,EAAE,CAAC;AACnH,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { SkelNodeDef } from './stages/conform';
2
+ export declare const CANONICAL_SKELETON_ROOT = "root";
3
+ /** The skin's joint order (68 joints). */
4
+ export declare const CANONICAL_JOINT_NAMES: readonly string[];
5
+ /** Skeleton subtree in DFS order (parents before children), local rest transforms column-major. */
6
+ export declare const CANONICAL_SKELETON_NODES: readonly SkelNodeDef[];
@@ -0,0 +1,92 @@
1
+ "use strict";
2
+ // GENERATED by helix-web-engine-new/tools/character-pipeline export-skeleton-cli — do not edit by hand.
3
+ // Snapshot of the canonical helix-humanoid@1 REST SKELETON (from body-m-default.web.glb): the frozen
4
+ // skeleton contract every platform body/clip agrees on. Lets the standalone CLI conform/retarget
5
+ // characters with no engine checkout and no installed asset pack. Regenerate only if the skeleton
6
+ // contract itself ever changes:
7
+ // npx tsx src/export-skeleton-cli.ts --body <body-m-default.web.glb> -o <this file>
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.CANONICAL_SKELETON_NODES = exports.CANONICAL_JOINT_NAMES = exports.CANONICAL_SKELETON_ROOT = void 0;
10
+ exports.CANONICAL_SKELETON_ROOT = "root";
11
+ /** The skin's joint order (68 joints). */
12
+ exports.CANONICAL_JOINT_NAMES = ["root", "pelvis", "spine_01", "spine_02", "spine_03", "spine_04", "spine_05", "neck_01", "neck_02", "head", "clavicle_l", "upperarm_l", "lowerarm_l", "hand_l", "pinky_01_l", "pinky_02_l", "pinky_03_l", "ring_01_l", "ring_02_l", "ring_03_l", "thumb_01_l", "thumb_02_l", "thumb_03_l", "middle_01_l", "middle_02_l", "middle_03_l", "index_01_l", "index_02_l", "index_03_l", "lowerarm_twist_02_l", "lowerarm_twist_01_l", "upperarm_twist_01_l", "upperarm_twist_02_l", "clavicle_r", "upperarm_r", "lowerarm_r", "hand_r", "pinky_01_r", "pinky_02_r", "pinky_03_r", "ring_01_r", "ring_02_r", "ring_03_r", "thumb_01_r", "thumb_02_r", "thumb_03_r", "middle_01_r", "middle_02_r", "middle_03_r", "index_01_r", "index_02_r", "index_03_r", "lowerarm_twist_02_r", "lowerarm_twist_01_r", "upperarm_twist_01_r", "upperarm_twist_02_r", "thigh_r", "calf_r", "foot_r", "ball_r", "calf_twist_01_r", "thigh_twist_01_r", "thigh_l", "calf_l", "foot_l", "ball_l", "calf_twist_01_l", "thigh_twist_01_l"];
13
+ /** Skeleton subtree in DFS order (parents before children), local rest transforms column-major. */
14
+ exports.CANONICAL_SKELETON_NODES = [
15
+ { name: "root", parent: null, local: [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1] },
16
+ { name: "pelvis", parent: "root", local: [3.853660657249236e-8, 0.9979902380685137, -0.06336724427288734, 0, -0.9999999614633934, 3.853660657249236e-8, 0, 0, 0, 0.06336724427288734, 0.9979902766051202, 0, 0, 0.958967745, 0.022808658, 1] },
17
+ { name: "spine_01", parent: "pelvis", local: [0.9683338572500039, 4.9476901974396704e-17, 0.24965885432586632, 0, -4.9476901974396704e-17, 1, -6.2755340481689e-18, 0, -0.24965885432586632, -6.2755340481689e-18, 0.9683338572500039, 0, 0.0367704779, -4.440892e-18, 1.24900085e-18, 1] },
18
+ { name: "spine_02", parent: "spine_01", local: [0.998172463266434, -2.5563698040810727e-15, -0.06042957532298404, 0, 2.980070986625339e-15, 1, 6.921362441743984e-15, 0, 0.06042957532298404, -7.0887978219224784e-15, 0.998172463266434, 0, 0.0679505169, -4.35207408e-16, 1.90734859e-8, 1] },
19
+ { name: "spine_03", parent: "spine_02", local: [0.9818063171398796, -2.706783207768998e-17, -0.18988511357086646, 0, 1.3215748521913552e-15, 1, 6.690691589837848e-15, 0, 0.18988511357086646, -6.819910657240175e-15, 0.9818063171398796, 0, 0.0723823532, 2.84217088e-16, -9.53674295e-9, 1] },
20
+ { name: "spine_04", parent: "spine_03", local: [0.9947618837326936, -4.31812568422443e-15, -0.10221934379749516, 0, 8.028289418062714e-7, 0.9999999999691574, 0.000007812842108141354, 0, 0.10221934379434246, -0.000007853982182087532, 0.9947618837020127, 0, 0.0852390304, 2.84217088e-16, 9.53674295e-9, 1] },
21
+ { name: "spine_05", parent: "spine_04", local: [0.9999292852812541, -8.726660115983844e-8, -0.01189220181557944, 0, -5.933156470942041e-9, 0.9999999999692906, -0.000007837014320544506, 0, 0.011892201815898147, 0.000007836530686667883, 0.9999292852505464, 0, 0.194398031, 1.45519149e-13, 1.90734859e-8, 1] },
22
+ { name: "neck_01", parent: "spine_05", local: [0.9140529689146081, -8.381761542573093e-17, 0.40559484372533067, 0, 7.231012358390468e-17, 1, 4.3694669791819063e-17, 0, -0.40559484372533067, -1.0610630767298633e-17, 0.9140529689146081, 0, 0.11887756, 2.84217088e-16, -1.90734859e-8, 1] },
23
+ { name: "neck_02", parent: "neck_01", local: [0.9994423590021385, 1.288551954739928e-15, -0.03339118211926965, 0, -5.711303838678692e-8, 0.9999999999985373, -0.0000017094689517165664, 0, 0.0333911821192208, 0.0000017104227536011988, 0.9994423590006765, 0, 0.0511025973, 5.595524e-16, 3.81469718e-8, 1] },
24
+ { name: "head", parent: "neck_02", local: [0.9785802926099311, 3.490658716248795e-7, -0.20586551176712925, 0, 3.3420365373512457e-9, 0.9999999999985354, 0.0000017114877737556513, 0, 0.20586551176742518, -0.000001675516214839491, 0.9785802926084967, 0, 0.0491296388, 0, 3.81469718e-8, 1] },
25
+ { name: "clavicle_l", parent: "spine_05", local: [-0.1421327443906557, -0.9872232839014528, -0.07203199623258172, 0, 0.973469007988031, -0.15259359350401036, 0.17050930988295881, 0, -0.17932236682917696, -0.0458859672753624, 0.9827196796883012, 0, 0.0551625043, -0.0142790405, -0.0131476782, 1] },
26
+ { name: "upperarm_l", parent: "clavicle_l", local: [0.6922785573595802, -0.719698900675107, 0.05276384261991911, 0, 0.7213099033019316, 0.6922980088743931, -0.020871559587697843, 0, -0.021507071384439715, 0.052508008609230536, 0.9983888799470356, 0, 0.178095177, -1.52587887e-7, 2.38418574e-9, 1] },
27
+ { name: "lowerarm_l", parent: "upperarm_l", local: [0.7773786311502231, 5.328648451770705e-18, 0.6290330333843452, 0, -4.3526828259155707e-17, 1, 4.5320649642212114e-17, 0, -0.6290330333843452, -6.261111377360747e-17, 0.7773786311502231, 0, 0.277711391, -5.3290704e-17, 4.76837148e-9, 1] },
28
+ { name: "hand_l", parent: "lowerarm_l", local: [0.9991488884432715, -0.02571413232889517, -0.032253404333664144, 0, -0.020143197855014623, 0.37818817845827624, -0.925509552252457, 0, 0.0359965313983513, 0.9253715270792278, 0.3773483332740001, 0, 0.272510737, -7.62939436e-8, -3.81469718e-8, 1] },
29
+ { name: "pinky_metacarpal_l", parent: "hand_l", local: [0.9223922834808432, 0.33426253896126656, -0.1935485109627062, 0, -0.38514200197636783, 0.8339372129658419, -0.39523961578660444, 0, 0.0292935037567814, 0.43910963394199737, 0.8979557975359751, 0, 0.0331438072, 0.0239110943, 0.00305915833, 1] },
30
+ { name: "pinky_01_l", parent: "pinky_metacarpal_l", local: [0.9666191541228234, -0.010559816441502213, -0.2559998034193587, 0, 0.05665536058403302, 0.9832266623135476, 0.17336522062956217, 0, 0.24987512719580895, -0.18208190432760019, 0.9510039948761027, 0, 0.0495756902, -0.00198837277, 0.00143112184, 1] },
31
+ { name: "pinky_02_l", parent: "pinky_01_l", local: [0.9317736167497704, -2.421439155222915e-8, -0.3630398467228918, 0, 2.662099072706662e-8, 0.9999999999999997, 1.6261171339667467e-9, 0, 0.3630398467228916, -1.1179653213730768e-8, 0.9317736167497708, 0, 0.0381599404, -4.440892e-18, 2.77555756e-17, 1] },
32
+ { name: "pinky_03_l", parent: "pinky_02_l", local: [0.9963199087662842, 1.1175875474759148e-8, -0.08571254715867936, 0, -9.834862613776952e-9, 0.9999999999999998, 1.6067732709954362e-8, 0, 0.08571254715867953, -1.5165631026867362e-8, 0.9963199087662842, 0, 0.0204000846, 8.881784e-18, 1.99840136e-17, 1] },
33
+ { name: "ring_metacarpal_l", parent: "hand_l", local: [0.9784550848541568, 0.20465519942096783, 0.027237793560595257, 0, -0.1926876566290518, 0.9525813208548957, -0.23550009897508367, 0, -0.07414253186188313, 0.2251778829823956, 0.9714925668646613, 0, 0.0337430574, 0.0109175872, 0.0054251859, 1] },
34
+ { name: "ring_01_l", parent: "ring_metacarpal_l", local: [0.8710877979404932, 0.0020409502133865096, -0.49112308696055895, 0, 0.05294287031240138, 0.9937739372731145, 0.09803272035709536, 0, 0.48826540375755323, -0.11139657220828066, 0.8655562968973429, 0, 0.0564551353, -0.000206909172, 0.000416259747, 1] },
35
+ { name: "ring_02_l", parent: "ring_01_l", local: [0.9457229698542067, -1.117587386155556e-8, -0.3249739485406918, 0, 1.1356122071060334e-8, 0.9999999999999999, -1.3420410084015475e-9, 0, 0.3249739485406918, -2.4212447194891934e-9, 0.9457229698542067, 0, 0.0497699715, -3.81469718e-8, 2.88657976e-17, 1] },
36
+ { name: "ring_03_l", parent: "ring_02_l", local: [0.9872254033833388, -7.4505819747415e-9, -0.15932985924032553, 0, 7.260833538257573e-9, 1, -1.7730679345483825e-9, 0, 0.15932985924032553, 5.935501735040607e-10, 0.9872254033833388, 0, 0.0226500705, 3.81469718e-8, 3.81469718e-8, 1] },
37
+ { name: "thumb_01_l", parent: "hand_l", local: [0.7184977069813847, -0.6415056886788874, -0.2687592271992714, 0, 0.5060348401001548, 0.21704579012448455, 0.8347574121938567, 0, -0.4771685356526915, -0.7357728236353936, 0.48057110618093124, 0, 0.0199244693, -0.0258153342, -0.0135660553, 1] },
38
+ { name: "thumb_02_l", parent: "thumb_01_l", local: [0.9182961838142214, 0.033718491687374445, -0.39445559293439864, 0, -0.006617150688429064, 0.9975344698439554, 0.06986555500582799, 0, 0.395838811633809, -0.061547102107525856, 0.9162552171364027, 0, 0.0437800214, 0, -3.10862448e-17, 1] },
39
+ { name: "thumb_03_l", parent: "thumb_02_l", local: [0.9848077498214908, -3.35276143393243e-8, -0.17364819972081943, 0, 2.7809424291787952e-8, 0.999999999999999, -3.5362750937184083e-8, 0, 0.17364819972082043, 2.9996454957203444e-8, 0.9848077498214908, 0, 0.0308600608, -7.62939436e-8, -7.62939436e-8, 1] },
40
+ { name: "middle_metacarpal_l", parent: "hand_l", local: [0.9991788547130073, 0.002282140571970648, 0.040452540593678525, 0, 0.000739791971709426, 0.9972184067214166, -0.07453121295554652, 0, -0.040510108786721837, 0.07449993846437858, 0.9963978572173934, 0, 0.0337583348, -0.00182863232, 0.00753562897, 1] },
41
+ { name: "middle_01_l", parent: "middle_metacarpal_l", local: [0.8519766613229275, 1.8626454948029486e-8, -0.5235797749910495, 0, -1.2823691098342794e-8, 0.9999999999999998, 1.4708302397383713e-8, 0, 0.5235797749910497, -5.8169054373977525e-9, 0.8519766613229276, 0, 0.0609820932, -1.90734859e-8, -3.5527136e-17, 1] },
42
+ { name: "middle_02_l", parent: "middle_01_l", local: [0.9350163586354296, 3.851980331997906e-16, -0.3546046215339485, 0, 1.9762584313230103e-8, 0.9999999999999984, 5.210971099340915e-8, 0, 0.35460462153394795, -5.573133515854573e-8, 0.9350163586354282, 0, 0.0516899079, -8.881784e-18, 1.7763568e-17, 1] },
43
+ { name: "middle_03_l", parent: "middle_02_l", local: [0.9848077550159735, -1.4901162986602617e-8, -0.17364817003421748, 0, 1.93219534638373e-8, 0.9999999999999996, 2.3767868180621976e-8, 0, 0.17364817003421704, -2.6762002637262054e-8, 0.9848077550159734, 0, 0.0247400664, -1.3322676e-17, -1.60982334e-17, 1] },
44
+ { name: "index_metacarpal_l", parent: "hand_l", local: [0.9917822537171125, -0.1275063066556688, 0.010493037672285443, 0, 0.1266825853573444, 0.9902052929415117, 0.058694134532288875, 0, -0.017874133370337223, -0.05688251598115035, 0.9982208647985338, 0, 0.0344450735, -0.0237932391, 0.00384689332, 1] },
45
+ { name: "index_01_l", parent: "index_metacarpal_l", local: [0.9179416994473614, 1.4901160864853292e-8, -0.39671531176768243, 0, -4.2976356306176845e-9, 0.9999999999999996, 2.7617240187180155e-8, 0, 0.39671531176768265, -2.364607858503642e-8, 0.917941699447361, 0, 0.0587709621, 0.00240879063, -0.000431823719, 1] },
46
+ { name: "index_02_l", parent: "index_01_l", local: [0.9664094238749666, -1.8626456668698773e-8, -0.2570074681811244, 0, 3.2805054077228446e-8, 0.9999999999999981, 5.0880465195523403e-8, 0, 0.25700746818112297, -5.7602503621733645e-8, 0.9664094238749655, 0, 0.0407999419, -1.7763568e-17, -1.7763568e-17, 1] },
47
+ { name: "index_03_l", parent: "index_02_l", local: [0.9762340052001155, 1.4901163249001344e-8, -0.2167190935062997, 0, -7.89185437994119e-9, 0.9999999999999994, 3.320827106981029e-8, 0, 0.2167190935063001, -3.0708727860769614e-8, 0.9762340052001149, 0, 0.0259500872, -8.881784e-18, -2.88657976e-17, 1] },
48
+ { name: "lowerarm_twist_02_l", parent: "lowerarm_l", local: [0.9989451909197473, 0.03014651412051118, -0.034636588616891714, 0, -0.029343315533350515, 0.9992938547010646, 0.023468315261430155, 0, 0.0353196180350836, -0.022427208343471217, 0.9991243891259131, 0, 0.0908368677, -7.62939436e-8, -7.62939436e-8, 1] },
49
+ { name: "lowerarm_twist_01_l", parent: "lowerarm_l", local: [0.998945195057801, 0.030146396777148043, -0.034636571341425615, 0, -0.02934319855397517, 0.9992938581469916, 0.023468314733726327, 0, 0.035319598122811324, -0.022427212469988432, 0.9991243897354005, 0, 0.181673765, -7.62939436e-8, -3.81469718e-8, 1] },
50
+ { name: "upperarm_twist_01_l", parent: "upperarm_l", local: [0.9992776114660259, 0.03757402691661451, 0.005696293639737757, 0, -0.0375734164532849, 0.9992938469427497, -0.00021418393611730114, 0, -0.005700318937446179, 4.4473478448114195e-12, 0.9999837530504424, 0, 0.0925704166, -7.62939436e-8, -1.3877787e-18, 1] },
51
+ { name: "upperarm_twist_02_l", parent: "upperarm_l", local: [0.9992776114660259, 0.03757402691661451, 0.005696293639737757, 0, -0.0375734164532849, 0.9992938469427497, -0.00021418393611730114, 0, -0.005700318937446179, 4.4473478448114195e-12, 0.9999837530504424, 0, 0.185140833, 8.881784e-18, -4.76837148e-9, 1] },
52
+ { name: "clavicle_r", parent: "spine_05", local: [0.1421324852322039, -0.9872234498904465, 0.07203189816286418, 0, -0.9734691764024769, -0.15259375419176346, -0.1705092849985325, 0, 0.1793223270003589, -0.04588587650718209, -0.9827201343115561, 0, 0.0551621988, 0.0142787313, -0.0131481169, 1] },
53
+ { name: "upperarm_r", parent: "clavicle_r", local: [0.6922785573595802, -0.719698900675107, 0.05276384261991911, 0, 0.7213099033019316, 0.6922980088743931, -0.020871559587697843, 0, -0.021507071384439715, 0.052508008609230536, 0.9983888799470356, 0, -0.17809625, 0.00000427246096, -3.09944141e-8, 1] },
54
+ { name: "lowerarm_r", parent: "upperarm_r", local: [0.7773785123770163, -1.0466107830055775e-16, 0.6290331211136984, 0, 1.0466107830055775e-16, 1, 3.7040664736768755e-17, 0, -0.6290331211136984, 3.7040664736768755e-17, 0.7773785123770163, 0, -0.277706981, 7.1054272e-17, 4.76837148e-9, 1] },
55
+ { name: "hand_r", parent: "lowerarm_r", local: [0.9991488908558508, -0.02571407203759274, -0.032253377632104924, 0, -0.0201431959196247, 0.3781881785762916, -0.9255095514358991, 0, 0.03599646548728486, 0.9253715278957857, 0.37734833556856395, 0, -0.272510201, -7.62939436e-8, -1.06581408e-16, 1] },
56
+ { name: "pinky_metacarpal_r", parent: "hand_r", local: [0.9223922530905242, 0.3342625816883362, -0.19354858809579173, 0, -0.3851420739464064, 0.8339371903858781, -0.395239599682284, 0, 0.02929355470213349, 0.4391096500463178, 0.8979557897256198, 0, -0.0331468396, -0.0239129066, -0.00305931084, 1] },
57
+ { name: "pinky_01_r", parent: "pinky_metacarpal_r", local: [0.966619155014462, -0.010559794384621242, -0.25599980055470056, 0, 0.05665533089442356, 0.9832266685682335, 0.17336519455654148, 0, 0.24987513006046705, -0.18208187154392563, 0.9510040002391499, 0, -0.0495729819, 0.00198913575, -0.0014326477, 1] },
58
+ { name: "pinky_02_r", parent: "pinky_01_r", local: [0.9317736167497708, 5.587936116688663e-9, -0.3630398467228917, 0, -6.188662545936006e-9, 1, -4.916715952558705e-10, 0, 0.3630398467228917, 2.7048576710908468e-9, 0.9317736167497708, 0, -0.0381603986, 3.43322739e-7, -3.05175774e-7, 1] },
59
+ { name: "pinky_03_r", parent: "pinky_02_r", local: [0.9963199074794115, -1.4901168695878802e-8, -0.08571256214487434, 0, 1.7199785614048544e-8, 0.9999999999999996, 2.607926400992814e-8, 0, 0.0857125621448739, -2.745752734617096e-8, 0.9963199074794112, 0, -0.0203999318, -3.24249271e-7, 1.52587887e-7, 1] },
60
+ { name: "ring_metacarpal_r", parent: "hand_r", local: [0.9784550308914017, 0.20465547537120002, 0.027237796993819945, 0, -0.19268790658773496, 0.952581211000154, -0.23550037402709212, 0, -0.07414264521397074, 0.22517813373560963, 0.9714925052249115, 0, -0.033742141, -0.0109178163, -0.00542991608, 1] },
61
+ { name: "ring_01_r", parent: "ring_metacarpal_r", local: [0.8710878588037194, 0.0020409890342329047, -0.49112297128449844, 0, 0.052942833807515674, 0.9937739350696577, 0.09803276057835786, 0, 0.48826529152498843, -0.11139658954360318, 0.8655563535014599, 0, -0.0564571358, 0.00020671844, -0.000414352398, 1] },
62
+ { name: "ring_02_r", parent: "ring_01_r", local: [0.9457229599699428, -2.607703518452745e-8, -0.3249739781308146, 0, 3.016954127475408e-8, 0.9999999999999996, 7.554428929826193e-9, 0, 0.32497397813081425, -1.6948712433981598e-8, 0.9457229599699432, 0, -0.0497707352, -2.86102278e-7, 2.28881831e-7, 1] },
63
+ { name: "ring_03_r", parent: "ring_02_r", local: [0.9872254081466045, 7.450582337318676e-9, -0.1593298295356482, 0, -1.1097442626062293e-8, 0.9999999999999997, -2.19989888367901e-8, 0, 0.15932982953564798, 2.348611431281886e-8, 0.9872254081466043, 0, -0.022649765, -1.33514405e-7, -4.95910626e-7, 1] },
64
+ { name: "thumb_01_r", parent: "hand_r", local: [0.7184977752501491, -0.6415055438081613, -0.26875929229242795, 0, 0.5060348917077412, 0.21704595364566992, 0.8347572504623297, 0, -0.4771683228216917, -0.7357728019494125, 0.4805712493797023, 0, -0.0199283976, 0.0258132555, 0.013566589, 1] },
65
+ { name: "thumb_02_r", parent: "thumb_01_r", local: [0.9182962079176977, 0.03371846007698203, -0.39445553713136317, 0, -0.00661711691592917, 0.997534469525203, 0.06986556234808895, 0, 0.3958387538976902, -0.06154712412883927, 0.9162552395447179, 0, -0.0437781885, -0.00000137329096, -0.00000434875483, 1] },
66
+ { name: "thumb_03_r", parent: "thumb_02_r", local: [0.9848077368527126, -1.490116318986973e-8, -0.17364827383770684, 0, 5.043437157233261e-9, 0.9999999999999983, -5.720959700593472e-8, 0, 0.1736482738377074, 5.546466968737204e-8, 0.9848077368527111, 0, -0.0308595262, 4.57763662e-7, 1.52587887e-7, 1] },
67
+ { name: "middle_metacarpal_r", parent: "hand_r", local: [0.9991788643693752, 0.0022821406157495583, 0.04045230216602457, 0, 0.0007397841066209926, 0.9972183883858844, -0.07453145852224757, 0, -0.04050987084399308, 0.07450018405472475, 0.9963978485443393, 0, -0.0337580666, 0.00182804104, -0.00754005415, 1] },
68
+ { name: "middle_01_r", parent: "middle_metacarpal_r", local: [0.851976597118918, -1.8626458973553307e-8, -0.5235799211865412, 0, 1.2823689033789883e-8, 0.9999999999999998, -1.4708312546491465e-8, 0, 0.5235799211865414, 5.816913658217445e-9, 0.8519765971189182, 0, -0.0609836169, 3.81469718e-8, 0.0000012207031, 1] },
69
+ { name: "middle_02_r", parent: "middle_01_r", local: [0.9350163694507219, 8.991545654525833e-17, -0.3546045920253467, 0, 5.621213107729289e-9, 0.9999999999999999, 1.4821938811642672e-8, 0, 0.3546045920253467, -1.58520631760849e-8, 0.9350163694507218, 0, -0.0516899861, -3.24249271e-7, 7.62939408e-7, 1] },
70
+ { name: "middle_03_r", parent: "middle_02_r", local: [0.9848077498214909, -2.980232224274198e-8, -0.17364819972081993, 0, 2.9798882951780198e-8, 0.9999999999999996, -2.626870746107963e-9, 0, 0.17364819972081993, -2.5875594737939913e-9, 0.9848077498214913, 0, -0.0247405246, 3.81469704e-7, -4.57763662e-7, 1] },
71
+ { name: "index_metacarpal_r", parent: "hand_r", local: [0.991782284209826, -0.1275060684578209, 0.010493038079701759, 0, 0.12668234753721194, 0.9902053233415187, 0.05869413242062945, 0, -0.017874119955220858, -0.056882518092809774, 0.9982208648912403, 0, -0.0344452076, 0.0237930678, -0.00385162351, 1] },
72
+ { name: "index_01_r", parent: "index_metacarpal_r", local: [0.9179416637974072, -7.45058165504707e-9, -0.39671539794349336, 0, -4.013662589968969e-9, 0.9999999999999996, -2.8067703408603908e-8, 0, 0.39671539794349336, 2.7356796139550914e-8, 0.9179416637974068, 0, -0.0587720275, -0.00240947725, 0.000434112531, 1] },
73
+ { name: "index_02_r", parent: "index_01_r", local: [0.9664094238749669, -1.4901166148877878e-8, -0.2570074681811237, 0, 1.538489135927979e-8, 0.9999999999999999, -1.286424039333586e-10, 0, 0.2570074681811237, -3.829709964013963e-9, 0.966409423874967, 0, -0.0407993309, 3.05175774e-7, 0, 1] },
74
+ { name: "index_03_r", parent: "index_02_r", local: [0.9762340117406647, 5.539525470747884e-16, -0.2167190636850782, 0, 1.1910602998232463e-8, 0.9999999999999984, 5.365257519751941e-8, 0, 0.21671906368507787, -5.495872350325268e-8, 0.9762340117406633, 0, -0.0259507746, -3.81469718e-8, -4.57763662e-7, 1] },
75
+ { name: "lowerarm_twist_02_r", parent: "lowerarm_r", local: [0.998945189538248, 0.030146574160142055, -0.03463657623663426, 0, -0.029343374654429655, 0.9992938521563818, 0.02346834972641951, 0, 0.03531960802272439, -0.022427241056331804, 0.9991243887464973, 0, -0.0908367112, -7.62939436e-8, -3.81469718e-8, 1] },
76
+ { name: "lowerarm_twist_01_r", parent: "lowerarm_r", local: [0.9989451946225063, 0.030146424537405826, -0.03463655974272523, 0, -0.02934322637539085, 0.9992938571912633, 0.023468320651610232, 0, 0.03531958732889507, -0.022427217748412852, 0.9991243899987343, 0, -0.181673154, -7.62939436e-8, 7.62939436e-8, 1] },
77
+ { name: "upperarm_twist_01_r", parent: "upperarm_r", local: [0.9992776114660259, 0.03757402691661451, 0.005696293639737757, 0, -0.0375734164532849, 0.9992938469427497, -0.00021418393611730114, 0, -0.005700318937446179, 4.4473478448114195e-12, 0.9999837530504424, 0, -0.0925689712, -9.91821253e-7, -1.001358e-7, 1] },
78
+ { name: "upperarm_twist_02_r", parent: "upperarm_r", local: [0.9992776114660259, 0.03757402691661451, 0.005696293639737757, 0, -0.0375734164532849, 0.9992938469427497, -0.00021418393611730114, 0, -0.005700318937446179, 4.4473478448114195e-12, 0.9999837530504424, 0, -0.185137853, -0.00000205993638, -2.002716e-7, 1] },
79
+ { name: "thigh_r", parent: "pelvis", local: [-0.996585554086302, 0.054523914615075324, -0.062003729642723666, 0, 0.06291406150592285, 0.9877790107574905, -0.1425989035737527, 0, 0.05347093247166119, -0.14601290754811863, -0.9878366141217669, 0, -0.0236573014, 0.0996909142, 0.00119487755, 1] },
80
+ { name: "calf_r", parent: "thigh_r", local: [0.996187319293776, 2.221358225452349e-16, 0.08724004257658483, 0, -2.215298953246781e-16, 1, -1.6627112360673603e-17, 0, -0.08724004257658483, -2.7625586272864985e-18, 0.996187319293776, 0, 0.433412611, -9.53674206e-9, -3.99680272e-17, 1] },
81
+ { name: "foot_r", parent: "calf_r", local: [0.9974751117289962, -0.053751207741876264, -0.04641346011441787, 0, 0.05368932990014531, 0.9985543556249704, -0.0025796885488927495, 0, 0.046485024130104094, 0.00008126761708752246, 0.9989189836937886, 0, 0.42217952, 9.53674295e-9, 2.38418574e-9, 1] },
82
+ { name: "ball_r", parent: "foot_r", local: [-1.352368703688711e-7, -7.850463753215323e-17, 1.0000001352368704, 0, 7.850463753215323e-17, 1, 7.850463753215323e-17, 0, -1.0000001352368704, 7.850463753215323e-17, -1.352368703688711e-7, 0, 0.0700943768, -0.00538945198, -0.152375937, 1] },
83
+ { name: "calf_twist_01_r", parent: "calf_r", local: [0.9989088645029125, -0.004505776180096383, -0.04648417435835511, 0, 0.004497128307303733, 0.9999898456381009, -0.0002906171034497264, 0, 0.04648501179682253, 0.00008125471091637398, 0.9989189842737791, 0, 0.281453013, 0.000754585257, 2.38418574e-9, 1] },
84
+ { name: "thigh_twist_01_r", parent: "thigh_r", local: [0.99972955935204, -0.004506572815643289, 0.022814446776302122, 0, 0.004505399805927686, 0.9999898453495921, 0.000102816007712087, 0, -0.0228146784513866, -2.2784006804702286e-12, 0.9997397113593076, 0, 0.144470826, -9.53674295e-9, -1.11022296e-17, 1] },
85
+ { name: "thigh_l", parent: "pelvis", local: [0.996585510901788, 0.054524074159901764, 0.062003588162950096, 0, -0.06291419892378493, 0.9877790019777889, 0.14259890375910877, 0, -0.053470769415201166, -0.14601290736276257, 0.9878365797169546, 0, -0.0236570742, -0.0996920243, 0.00110044482, 1] },
86
+ { name: "calf_l", parent: "thigh_l", local: [0.996187319293776, -4.107244649953007e-17, 0.08724004257658483, 0, 3.8648737617302725e-17, 1, 2.9471148229149735e-17, 0, -0.08724004257658483, -2.598706670439868e-17, 0.996187319293776, 0, -0.433413029, -7.1054272e-17, 1.3322676e-17, 1] },
87
+ { name: "foot_l", parent: "calf_l", local: [0.9974751124430716, -0.05375120379582078, -0.04641344931812193, 0, 0.053689326650748534, 0.9985543558380133, -0.0025796735054723985, 0, 0.04648501254054853, 0.00008125334303737118, 0.9989189842338765, 0, -0.422179163, -9.53674295e-9, -3.57627861e-9, 1] },
88
+ { name: "ball_l", parent: "foot_l", local: [-1.352368703688711e-7, -9.322426005695831e-17, 1.0000001352368704, 0, -1.5210274053952578e-16, 1, 9.322426005695831e-17, 0, -1.0000001352368704, -1.5210274053952578e-16, -1.352368703688711e-7, 0, -0.0700943768, 0.00538886059, 0.152375892, 1] },
89
+ { name: "calf_twist_01_l", parent: "calf_l", local: [0.9989088648542206, -0.004505776293505788, -0.04648416679386807, 0, 0.004497129113643343, 0.9999898456387956, -0.00029060222889119706, 0, 0.04648500416545628, 0.00008123984918947304, 0.9989189846299242, 0, -0.281452775, -0.000754489854, -5.12599918e-8, 1] },
90
+ { name: "thigh_twist_01_l", parent: "thigh_l", local: [0.99972955935204, -0.004506572815643289, 0.022814446776302122, 0, 0.004505399805927686, 0.9999898453495921, 0.000102816007712087, 0, -0.0228146784513866, -2.2784006804702286e-12, 0.9997397113593076, 0, -0.144471049, 9.53674295e-9, -4.76837148e-9, 1] },
91
+ ];
92
+ //# sourceMappingURL=canonicalSkeletonData.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"canonicalSkeletonData.js","sourceRoot":"","sources":["../../src/character/canonicalSkeletonData.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare const importEsm: (s: string) => Promise<any>;
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.importEsm = void 0;
4
+ // module:commonjs downlevels import() to require(); the Function indirection preserves a true dynamic import for ESM-only deps.
5
+ exports.importEsm = new Function('s', 'return import(s)');
6
+ //# sourceMappingURL=esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"esm.js","sourceRoot":"","sources":["../../src/character/esm.ts"],"names":[],"mappings":";;;AAAA,gIAAgI;AACnH,QAAA,SAAS,GAAG,IAAI,QAAQ,CAAC,GAAG,EAAE,kBAAkB,CAAgC,CAAC"}
@@ -0,0 +1,88 @@
1
+ import { type ConformResult } from './stages/conform';
2
+ import { type Ktx2Mode, type Ktx2Result } from './stages/ktx2';
3
+ export declare const CANONICAL_BODY_FILENAME = "body-m-default.web.glb";
4
+ export interface ImportCharacterOptions {
5
+ /** Source biped character GLB (skinned body, Meshy/Mixamo-style rig). */
6
+ body: string;
7
+ /** Bone map JSON path ({ map: { src: helix }, drop: [...] }). Default: the bundled Meshy->helix map. */
8
+ map?: string;
9
+ /** Canonical helix body GLB. Default: body-m-default.web.glb from the world's installed humanoid-character
10
+ * pack when present, else the embedded helix-humanoid@1 skeleton snapshot (fully standalone). */
11
+ canonical?: string;
12
+ /** Optional animation GLB (same source rig) to retarget onto the canonical skeleton -> <out>/anims/<clipName>.glb. */
13
+ anim?: string;
14
+ /** Clip name for --anim (mirrors the engine retarget-clip-cli default). */
15
+ clipName?: string;
16
+ /** Output directory (default ./character-out). */
17
+ output?: string;
18
+ /** Output basename (default: derived from the body file name) -> <name>.web.glb. */
19
+ name?: string;
20
+ /** Triangle target per LOD level, high->low (default [10000, 5000, 1500]). */
21
+ lodTris?: number[];
22
+ /** Texture longest-edge cap (default 1024); the bake route halves it per LOD level like a mip chain. */
23
+ texSize?: number;
24
+ /** KTX2 codec per LOD level (a shorter list repeats its last entry; a single value = all levels).
25
+ * Default ['uastc', 'etc1s']: UASTC where the camera gets close, ETC1S (~5x smaller) for the far
26
+ * levels where its block artifacts are invisible. */
27
+ ktxModes?: Ktx2Mode[];
28
+ ktxQuality?: number;
29
+ /** Meshopt error budget (default 0.02 — imports resist collapse). */
30
+ simplifyError?: number;
31
+ /** Preserve UV-seam/material-boundary verts during decimation (default false for imports). */
32
+ lockBorder?: boolean;
33
+ /** Force (true) or disable (false) the weld+unwrap+rebake path; undefined = auto-detect micro-chart atlases. */
34
+ bake?: boolean;
35
+ /** Seam-weld fallback for floored far LODs on the non-bake path (default true; LOD0 never welds there). */
36
+ weld?: boolean;
37
+ /** Slice head-weighted triangles into a separate 'FaceMesh' node per LOD (default true), so the
38
+ * runtime's first-person mode can hide the head like the stock character's face part. */
39
+ splitFace?: boolean;
40
+ /** Directory whose installed packs are searched for the canonical body (default process.cwd()). */
41
+ cwd?: string;
42
+ /** Progress sink (default console.log). */
43
+ onProgress?: (message: string) => void;
44
+ }
45
+ export interface ImportCharacterClipResult {
46
+ name: string;
47
+ path: string;
48
+ metaPath: string;
49
+ frames: number;
50
+ duration: number;
51
+ animatedBones: string[];
52
+ }
53
+ export interface ImportCharacterResult {
54
+ /** The packaged multi-LOD body: <out>/<name>.web.glb. */
55
+ bodyPath: string;
56
+ /** Final triangle count per LOD level (scene order = level order). */
57
+ lodTris: number[];
58
+ /** Texture size per LOD level on the bake route; a single capped size otherwise. */
59
+ textureSizes: number[];
60
+ retarget: {
61
+ renamed: number;
62
+ unmapped: string[];
63
+ dropped: string[];
64
+ };
65
+ conform: Pick<ConformResult, 'mode' | 'verticesProcessed' | 'jointsRebuilt'>;
66
+ /** Aggregated over the per-level encodes (each LOD may use a different codec). */
67
+ ktx2: {
68
+ encoder: Ktx2Result['encoder'];
69
+ modes: Ktx2Mode[];
70
+ before: number;
71
+ after: number;
72
+ };
73
+ clip: ImportCharacterClipResult | null;
74
+ }
75
+ /**
76
+ * Finds the canonical helix body GLB inside the world's installed packs. First-party installs copy
77
+ * whole bundles (code AND assets) into <world>/helix_modules/<id>/; consumer installs are code-only
78
+ * under <world>/public/helix_modules/ (assets stream from the CDN), so only a first-party install of
79
+ * the humanoid-character pack can satisfy the default — otherwise the caller must pass --canonical.
80
+ */
81
+ export declare function findCanonicalBody(cwd: string): string | null;
82
+ /**
83
+ * Converts an external biped character GLB into a helix-humanoid@1 drop-in, chaining the engine
84
+ * pipeline's stages: rename the rig (retargetSkeleton) -> embed the canonical skeleton at the source's
85
+ * proportions (conformToHelixRest) -> LODs (rebake route for micro-chart atlases) -> merge -> resize ->
86
+ * KTX2 -> <out>/<name>.web.glb. With `anim`, also retargets the clip -> <out>/anims/<clipName>.glb.
87
+ */
88
+ export declare function importCharacter(opts: ImportCharacterOptions): Promise<ImportCharacterResult>;