tosijs-3d 0.12.0 → 0.12.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.
Files changed (103) hide show
  1. package/CHANGELOG.md +4 -2
  2. package/changelog/v0.12.1.md +13 -0
  3. package/changelog/v0.12.2.md +26 -0
  4. package/dist/character-builder.d.ts +1 -24
  5. package/dist/character-builder.d.ts.map +1 -1
  6. package/dist/character-builder.js +62 -71
  7. package/dist/character-builder.js.map +1 -1
  8. package/dist/character-core.d.ts.map +1 -1
  9. package/dist/character-core.js +9 -1
  10. package/dist/character-core.js.map +1 -1
  11. package/dist/character-settings.d.ts.map +1 -1
  12. package/dist/character-settings.js +1 -0
  13. package/dist/character-settings.js.map +1 -1
  14. package/dist/character-store.d.ts +16 -0
  15. package/dist/character-store.d.ts.map +1 -1
  16. package/dist/character-store.js +17 -0
  17. package/dist/character-store.js.map +1 -1
  18. package/dist/character.d.ts.map +1 -1
  19. package/dist/character.js +22 -60
  20. package/dist/character.js.map +1 -1
  21. package/dist/cloth-bake.d.ts +12 -0
  22. package/dist/cloth-bake.d.ts.map +1 -0
  23. package/dist/cloth-bake.js +75 -0
  24. package/dist/cloth-bake.js.map +1 -0
  25. package/dist/extremes-bones.d.ts +31 -0
  26. package/dist/extremes-bones.d.ts.map +1 -0
  27. package/dist/extremes-bones.js +130 -0
  28. package/dist/extremes-bones.js.map +1 -0
  29. package/dist/extremes-corners.d.ts +17 -0
  30. package/dist/extremes-corners.d.ts.map +1 -0
  31. package/dist/extremes-corners.js +137 -0
  32. package/dist/extremes-corners.js.map +1 -0
  33. package/dist/extremes-penetration.d.ts +53 -0
  34. package/dist/extremes-penetration.d.ts.map +1 -0
  35. package/dist/extremes-penetration.js +120 -0
  36. package/dist/extremes-penetration.js.map +1 -0
  37. package/dist/extremes-report.d.ts +73 -0
  38. package/dist/extremes-report.d.ts.map +1 -0
  39. package/dist/extremes-report.js +303 -0
  40. package/dist/extremes-report.js.map +1 -0
  41. package/dist/extremes-sheet.d.ts +18 -0
  42. package/dist/extremes-sheet.d.ts.map +1 -0
  43. package/dist/extremes-sheet.js +239 -0
  44. package/dist/extremes-sheet.js.map +1 -0
  45. package/dist/extremes-sweep.d.ts +117 -0
  46. package/dist/extremes-sweep.d.ts.map +1 -0
  47. package/dist/extremes-sweep.js +258 -0
  48. package/dist/extremes-sweep.js.map +1 -0
  49. package/dist/eye-art.d.ts +52 -0
  50. package/dist/eye-art.d.ts.map +1 -0
  51. package/dist/eye-art.js +152 -0
  52. package/dist/eye-art.js.map +1 -0
  53. package/dist/fit-extremes.d.ts +7 -0
  54. package/dist/fit-extremes.d.ts.map +1 -0
  55. package/dist/fit-extremes.js +55 -0
  56. package/dist/fit-extremes.js.map +1 -0
  57. package/dist/glb-chunks.d.ts +44 -0
  58. package/dist/glb-chunks.d.ts.map +1 -0
  59. package/dist/glb-chunks.js +253 -0
  60. package/dist/glb-chunks.js.map +1 -0
  61. package/dist/hair-place.d.ts +135 -0
  62. package/dist/hair-place.d.ts.map +1 -0
  63. package/dist/hair-place.js +396 -0
  64. package/dist/hair-place.js.map +1 -0
  65. package/dist/human-face.d.ts +11 -1
  66. package/dist/human-face.d.ts.map +1 -1
  67. package/dist/human-face.js +86 -3
  68. package/dist/human-face.js.map +1 -1
  69. package/dist/human-hair.d.ts +5 -87
  70. package/dist/human-hair.d.ts.map +1 -1
  71. package/dist/human-hair.js +11 -245
  72. package/dist/human-hair.js.map +1 -1
  73. package/dist/index.d.ts +11 -6
  74. package/dist/index.d.ts.map +1 -1
  75. package/dist/index.js +6 -3
  76. package/dist/index.js.map +1 -1
  77. package/dist/mesh-sdf.d.ts +30 -0
  78. package/dist/mesh-sdf.d.ts.map +1 -0
  79. package/dist/mesh-sdf.js +453 -0
  80. package/dist/mesh-sdf.js.map +1 -0
  81. package/dist/png.d.ts +12 -0
  82. package/dist/png.d.ts.map +1 -1
  83. package/dist/png.js +82 -1
  84. package/dist/png.js.map +1 -1
  85. package/dist/proxy-cover.d.ts +23 -0
  86. package/dist/proxy-cover.d.ts.map +1 -1
  87. package/dist/proxy-cover.js +31 -18
  88. package/dist/proxy-cover.js.map +1 -1
  89. package/dist/skin-paint.d.ts +35 -0
  90. package/dist/skin-paint.d.ts.map +1 -0
  91. package/dist/skin-paint.js +156 -0
  92. package/dist/skin-paint.js.map +1 -0
  93. package/dist/skinned-glb.d.ts +107 -0
  94. package/dist/skinned-glb.d.ts.map +1 -0
  95. package/dist/skinned-glb.js +396 -0
  96. package/dist/skinned-glb.js.map +1 -0
  97. package/dist/widgets3d.d.ts +13 -0
  98. package/dist/widgets3d.d.ts.map +1 -1
  99. package/dist/widgets3d.js +31 -1
  100. package/dist/widgets3d.js.map +1 -1
  101. package/package.json +3 -1
  102. package/static/attributes.json +4 -0
  103. package/static/attributes.txt +1 -0
package/dist/character.js CHANGED
@@ -71,7 +71,8 @@ dresses it again, a colour repaints. The work is in `ready()`.
71
71
 
72
72
  `DEFAULT_CHARACTER` lists them with their defaults: MakeHuman's macro sliders
73
73
  (`DEFAULT_HUMAN_BODY`), `tone` and `redness` (the skin), `iris` and
74
- `irisColour`, `stubble`, the hair (`hair`, `beard`, `moustache`, `brows`,
74
+ `irisColour`, `eyeStyle` (Tonio's eye art, `basic` or `anime`, or `drawn` in
75
+ code), `stubble`, the hair (`hair`, `beard`, `moustache`, `brows`,
75
76
  `hairBase`, `hairHighlight`, and `hairUp`, `hairForward`, `hairSize` to
76
77
  nudge it), one setting per clothes slot (`CHARACTER_SLOTS`, a garment's name
77
78
  or `none`), the face (`smile`, `browsUp`, `frown`, and `blink`, `talk`),
@@ -87,12 +88,14 @@ import * as BABYLON from '@babylonjs/core';
87
88
  import { loadHumanPack } from './human-pack.js';
88
89
  import { macroWeights, morphHuman, DEFAULT_HUMAN_BODY } from './human-morph.js';
89
90
  import { humanSkin, humanBodyMaker } from './human-rig.js';
90
- import { skinMaterial, lipTint, stubbleTint } from './character-builder.js';
91
+ import { skinMaterial } from './character-builder.js';
92
+ import { lipTint, stubbleMask as stubbleMask_, stubbleTint, } from './skin-paint.js';
91
93
  import { humanFace, bodyEyes, eyeGaze, eyeTexture, eyeMaterial, lashMaterial, } from './human-face.js';
94
+ import { eyeStyle } from './eye-art.js';
92
95
  import { loadHairLibrary, headScalp, hairMaterial, humanHair, } from './human-hair.js';
93
96
  import { skinThinness } from './skin-shading.js';
94
97
  import { vertexNormals } from './hair-fit.js';
95
- import { nearestWeights, coveredBy, fitProxy, drawnPositions, underCover, inflate, proxyDelta, smoothUnder, } from './proxy-fit.js';
98
+ import { nearestWeights, fitProxy, drawnPositions, underCover, inflate, proxyDelta, smoothUnder, } from './proxy-fit.js';
96
99
  import { skinAlbedo } from './skin-tone.js';
97
100
  import { humanProxy, proxyMaterial, coverBody } from './human-proxy.js';
98
101
  import { hairShading } from './hair-shading.js';
@@ -107,6 +110,8 @@ import { applyRigRecipe } from './rig-recipe-babylon.js';
107
110
  import { assetUrl } from './asset-url.js';
108
111
  import { CHARACTER_SLOTS, DEFAULT_CHARACTER, hm08PackUrl, } from './character-settings.js';
109
112
  export { CHARACTER_SLOTS, DEFAULT_CHARACTER } from './character-settings.js';
113
+ /** A character's `eyeStyle` setting as an eye texture's style. */
114
+ const eyeLook = (v) => v === 'drawn' ? 'drawn' : eyeStyle(v);
110
115
  // A hosted body: its URL is read when it is used, after the page has set
111
116
  // the asset base (computed at import, it came out relative to the page).
112
117
  const hosted = (path, pick) => ({
@@ -353,7 +358,7 @@ export async function makeCharacter(scene, assets, options = {}) {
353
358
  pack.part('eyes'),
354
359
  pack.part('eyelashes'),
355
360
  ]);
356
- const eyes = eyeTexture(scene, { iris: s.iris });
361
+ const eyes = eyeTexture(scene, { iris: s.iris, style: eyeLook(s.eyeStyle) });
357
362
  eyes.setIrisColour(s.irisColour);
358
363
  const faceMaterials = {
359
364
  eye: eyeMaterial(scene, eyes),
@@ -456,64 +461,19 @@ export async function makeCharacter(scene, assets, options = {}) {
456
461
  return;
457
462
  const body = skin.positions(current);
458
463
  const normals = vertexNormals(body, skin.triangles);
459
- const grownOn = async (name) => {
464
+ const drawn = async (name) => {
460
465
  const p = (await pack.proxy(name));
461
- return coveredBy(body, normals, drawnPositions(p, fitProxy(p, current)), 0.02);
466
+ return drawnPositions(p, fitProxy(p, current));
462
467
  };
463
- // Where a full beard grows, and a moustache: the full beard has no
464
- // moustache part, so the upper lip was bare.
465
- const beard = await grownOn(beardFor);
466
- const tache = tacheFor ? await grownOn(tacheFor) : null;
467
- // The beard below the cheekbones: up to a little above the upper lip,
468
- // faded (the full beard climbs the cheeks, and stubble there read as a bruise).
469
- let lipTop = -Infinity;
470
- for (let v = 0; v < lips.length; v++)
471
- if (lips[v] > 0.5)
472
- lipTop = Math.max(lipTop, current[v * 3 + 1]);
473
- const cap = lipTop + 0.03;
474
- const smooth = (t) => {
475
- t = Math.min(1, Math.max(0, t));
476
- return t * t * (3 - 2 * t);
477
- };
478
- const n = body.length / 3;
479
- const mask = new Float32Array(n);
480
- for (let i = 0; i < n; i++) {
481
- const b = beard[i] === Infinity ? 0 : smooth((cap - body[i * 3 + 1]) / 0.015);
482
- const t = tache && tache[i] !== Infinity ? 1 : 0;
483
- // Not on the lips themselves.
484
- mask[i] =
485
- Math.max(b, t) * (1 - smooth((lips[skin.vertices[i]] - 0.05) / 0.45));
486
- }
487
- // Down the neck: the full beard stops at the jaw, but stubble grows on
488
- // the throat and the sides of the neck, fading over 5 cm below the
489
- // beard's edge. Front and sides only (the normal faces forward or out).
490
- const edge = [];
491
- let low = Infinity;
492
- for (let i = 0; i < n; i++)
493
- if (mask[i] > 0.5 && body[i * 3 + 1] < lipTop) {
494
- edge.push(i);
495
- low = Math.min(low, body[i * 3 + 1]);
496
- }
497
- const REACH = 0.05;
498
- for (let i = 0; i < n; i++) {
499
- const y = body[i * 3 + 1];
500
- if (mask[i] > 0.5 ||
501
- y > lipTop ||
502
- y < low - REACH ||
503
- normals[i * 3 + 2] < -0.2)
504
- continue;
505
- let d = Infinity;
506
- for (const j of edge) {
507
- if (body[j * 3 + 1] < y)
508
- continue;
509
- const dx = body[j * 3] - body[i * 3];
510
- const dy = body[j * 3 + 1] - y;
511
- const dz = body[j * 3 + 2] - body[i * 3 + 2];
512
- d = Math.min(d, dx * dx + dy * dy + dz * dz);
513
- }
514
- mask[i] = Math.max(mask[i], smooth(1 - Math.sqrt(d) / REACH));
515
- }
516
- stubbleMask = mask;
468
+ stubbleMask = stubbleMask_({
469
+ skin: body,
470
+ normals,
471
+ vertices: skin.vertices,
472
+ positions: current,
473
+ lips: lips,
474
+ beard: await drawn(beardFor),
475
+ tache: tacheFor ? await drawn(tacheFor) : null,
476
+ });
517
477
  paint();
518
478
  };
519
479
  /*
@@ -970,6 +930,8 @@ export async function makeCharacter(scene, assets, options = {}) {
970
930
  eyes.setIris(s.iris);
971
931
  if (has('irisColour'))
972
932
  eyes.setIrisColour(s.irisColour);
933
+ if (has('eyeStyle'))
934
+ eyes.setStyle(eyeLook(s.eyeStyle));
973
935
  if (has('hairBase') || has('hairHighlight'))
974
936
  recolour();
975
937
  queue(async () => {
@@ -1 +1 @@
1
- {"version":3,"file":"character.js","sourceRoot":"","sources":["../src/character.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"character.js","sourceRoot":"","sources":["../src/character.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import type { RgbaImage } from './png.js';
2
+ /** A texture's mean brightness (linear luminance), sampled as the material measures it. */
3
+ export declare function textureMean(image: RgbaImage): number;
4
+ /**
5
+ * The texture recoloured toward `colour` (sRGB: anything `parseColor` reads)
6
+ * by `amount`, as cloth-shading draws it. `mean` defaults to the texture's
7
+ * own. Alpha is kept. An unreadable colour returns a copy unchanged.
8
+ */
9
+ export declare function recolourCloth(image: RgbaImage, colour: string, amount: number, mean?: number): RgbaImage;
10
+ /** The sheen colour cloth-shading gives a recoloured fabric: a lighter version of it. */
11
+ export declare function clothSheenColour(colour: string): [number, number, number] | null;
12
+ //# sourceMappingURL=cloth-bake.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cloth-bake.d.ts","sourceRoot":"","sources":["../src/cloth-bake.ts"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAQzC,2FAA2F;AAC3F,wBAAgB,WAAW,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CAYpD;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,IAAI,SAAqB,GACxB,SAAS,CAmBX;AAED,yFAAyF;AACzF,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAIhF"}
@@ -0,0 +1,75 @@
1
+ /*#
2
+ # cloth bake
3
+
4
+ **A recoloured garment as a picture**, with no engine: what
5
+ [cloth-shading](/cloth-shading/)'s recolour does in a shader, done to the
6
+ texture's pixels, so an export carries the colour the character builder
7
+ shows in a plain glTF base-colour texture any engine draws.
8
+
9
+ The recolour reads the texture as grey (its shading: folds, stitching, a
10
+ weave), tints it, and blends by `amount` (0 keeps the texture's own colours,
11
+ 1 is the colour wholly). The tint is divided by the texture's MEAN brightness
12
+ so a dark texture tinted keeps the colour's value rather than going darker
13
+ still; `textureMean` measures it exactly as the shader's material does.
14
+
15
+ ```javascript
16
+ import { pngDecode, pngEncode } from 'tosijs-3d/png'
17
+ import { recolourCloth, clothSheenColour } from 'tosijs-3d/cloth-bake'
18
+ const shirt = pngDecode(bytes)
19
+ const red = recolourCloth(shirt, '#7a2e2e', 0.8)
20
+ const png = pngEncode(red.data, red.width, red.height)
21
+ const sheen = clothSheenColour('#7a2e2e') // KHR_materials_sheen's colour, linear
22
+ ```
23
+ */
24
+ /*{ "parent": "character-core", "order": 38 }*/
25
+ import { parseColor } from './color.js';
26
+ const toLinear = (c) => c <= 0.04045 ? c / 12.92 : Math.pow((c + 0.055) / 1.055, 2.4);
27
+ const toSrgb = (c) => c <= 0.0031308 ? c * 12.92 : 1.055 * Math.pow(c, 1 / 2.4) - 0.055;
28
+ /** A texture's mean brightness (linear luminance), sampled as the material measures it. */
29
+ export function textureMean(image) {
30
+ const d = image.data;
31
+ let sum = 0;
32
+ let n = 0;
33
+ for (let i = 0; i < d.length; i += 4 * 37) {
34
+ sum +=
35
+ 0.2126 * toLinear(d[i] / 255) +
36
+ 0.7152 * toLinear(d[i + 1] / 255) +
37
+ 0.0722 * toLinear(d[i + 2] / 255);
38
+ n++;
39
+ }
40
+ return n > 0 ? sum / n : 0.35;
41
+ }
42
+ /**
43
+ * The texture recoloured toward `colour` (sRGB: anything `parseColor` reads)
44
+ * by `amount`, as cloth-shading draws it. `mean` defaults to the texture's
45
+ * own. Alpha is kept. An unreadable colour returns a copy unchanged.
46
+ */
47
+ export function recolourCloth(image, colour, amount, mean = textureMean(image)) {
48
+ const data = image.data.slice();
49
+ const c = parseColor(colour);
50
+ const a = Math.min(1, Math.max(0, amount));
51
+ if (c == null || a === 0)
52
+ return { ...image, data };
53
+ const k = 1 / Math.max(0.05, mean);
54
+ const tint = [toLinear(c.r) * k, toLinear(c.g) * k, toLinear(c.b) * k];
55
+ for (let i = 0; i < data.length; i += 4) {
56
+ const r = toLinear(data[i] / 255);
57
+ const g = toLinear(data[i + 1] / 255);
58
+ const b = toLinear(data[i + 2] / 255);
59
+ const l = 0.2126 * r + 0.7152 * g + 0.0722 * b;
60
+ const rgb = [r, g, b];
61
+ for (let ch = 0; ch < 3; ch++) {
62
+ const v = rgb[ch] + (tint[ch] * l - rgb[ch]) * a;
63
+ data[i + ch] = Math.round(Math.min(1, Math.max(0, toSrgb(v))) * 255);
64
+ }
65
+ }
66
+ return { width: image.width, height: image.height, data };
67
+ }
68
+ /** The sheen colour cloth-shading gives a recoloured fabric: a lighter version of it. */
69
+ export function clothSheenColour(colour) {
70
+ const c = parseColor(colour);
71
+ if (c == null)
72
+ return null;
73
+ return [0.6 + 0.4 * c.r, 0.6 + 0.4 * c.g, 0.6 + 0.4 * c.b];
74
+ }
75
+ //# sourceMappingURL=cloth-bake.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cloth-bake.js","sourceRoot":"","sources":["../src/cloth-bake.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ import type { FittedRig } from './rig-fit.js';
2
+ import type { MeshSdf } from './mesh-sdf.js';
3
+ export interface BoneIssue {
4
+ joint: string;
5
+ kind: 'non-finite' | 'collapsed' | 'scale' | 'asymmetric' | 'order' | 'outside';
6
+ detail: string;
7
+ /** How far off: a ratio for scale/asymmetry, metres for order/outside. */
8
+ amount: number;
9
+ }
10
+ export interface BoneReport {
11
+ /** The body's height, metres (head joint top to floor is not used: mesh span). */
12
+ height: number;
13
+ issues: BoneIssue[];
14
+ /** Each joint's length to its parent, metres. */
15
+ lengths: Record<string, number>;
16
+ }
17
+ export interface BoneReference {
18
+ height: number;
19
+ lengths: Record<string, number>;
20
+ /** Joints outside the skin on the default body (not flagged again). */
21
+ outside: Set<string>;
22
+ }
23
+ /** A bone may grow or shrink by this factor (after height) before it is flagged. */
24
+ export declare const SCALE_LIMIT = 2;
25
+ /** Left and right may differ by this fraction. */
26
+ export declare const SYMMETRY_LIMIT = 0.03;
27
+ export declare function boneLengths(rig: FittedRig): Record<string, number>;
28
+ /** The default body's numbers, for the per-corner checks. */
29
+ export declare function boneReference(rig: FittedRig, height: number, sdf: MeshSdf): BoneReference;
30
+ export declare function checkBones(rig: FittedRig, height: number, sdf: MeshSdf, ref: BoneReference): BoneReport;
31
+ //# sourceMappingURL=extremes-bones.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extremes-bones.d.ts","sourceRoot":"","sources":["../src/extremes-bones.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAE5C,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EACA,YAAY,GACZ,WAAW,GACX,OAAO,GACP,YAAY,GACZ,OAAO,GACP,SAAS,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,0EAA0E;IAC1E,MAAM,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,UAAU;IACzB,kFAAkF;IAClF,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,SAAS,EAAE,CAAA;IACnB,iDAAiD;IACjD,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAChC;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC/B,uEAAuE;IACvE,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;CACrB;AAID,oFAAoF;AACpF,eAAO,MAAM,WAAW,IAAI,CAAA;AAC5B,kDAAkD;AAClD,eAAO,MAAM,cAAc,OAAO,CAAA;AAgBlC,wBAAgB,WAAW,CAAC,GAAG,EAAE,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAQlE;AAED,6DAA6D;AAC7D,wBAAgB,aAAa,CAC3B,GAAG,EAAE,SAAS,EACd,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,OAAO,GACX,aAAa,CAMf;AAMD,wBAAgB,UAAU,CACxB,GAAG,EAAE,SAAS,EACd,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,aAAa,GACjB,UAAU,CA8EZ"}
@@ -0,0 +1,130 @@
1
+ /*
2
+ BONE-LENGTH SANITY: the skeleton a body gets (`humanRig`, UAL's
3
+ 65 joints fitted to the morphed body) checked for what would break an
4
+ animation: a bone that collapses or balloons against the body's size, left
5
+ and right that disagree, a chain that folds back on itself, and a joint
6
+ that has left the body it moves.
7
+
8
+ Each check is relative to the default body where it can be, so a quirk of
9
+ the rig table (a joint that sits outside the skin on every body, like the
10
+ floor-level root) is reported once as a baseline, not on every corner.
11
+
12
+ Pure.
13
+ */
14
+ /** Bones shorter than this on the default body are not scale-checked. */
15
+ const MIN_REFERENCE = 0.005;
16
+ /** A bone may grow or shrink by this factor (after height) before it is flagged. */
17
+ export const SCALE_LIMIT = 2;
18
+ /** Left and right may differ by this fraction. */
19
+ export const SYMMETRY_LIMIT = 0.03;
20
+ const len = (a, b) => Math.hypot(a.x - b.x, a.y - b.y, a.z - b.z);
21
+ /** Chains that run downward (head first, as y falls) in the rest pose. */
22
+ const DOWNWARD = [
23
+ ['Head', 'neck_01', 'spine_03', 'spine_02', 'spine_01', 'pelvis'],
24
+ ['thigh_l', 'calf_l', 'foot_l'],
25
+ ['thigh_r', 'calf_r', 'foot_r'],
26
+ ['upperarm_l', 'lowerarm_l', 'hand_l'],
27
+ ['upperarm_r', 'lowerarm_r', 'hand_r'],
28
+ ];
29
+ export function boneLengths(rig) {
30
+ const out = {};
31
+ for (const j of rig.joints) {
32
+ if (j.parent == null)
33
+ continue;
34
+ const p = rig.at(j.parent);
35
+ if (p)
36
+ out[j.name] = len(j.position, p);
37
+ }
38
+ return out;
39
+ }
40
+ /** The default body's numbers, for the per-corner checks. */
41
+ export function boneReference(rig, height, sdf) {
42
+ const outside = new Set();
43
+ for (const j of rig.joints)
44
+ if (sdf.distance(j.position.x, j.position.y, j.position.z) > 0)
45
+ outside.add(j.name);
46
+ return { height, lengths: boneLengths(rig), outside };
47
+ }
48
+ /** The pair of a `_l` joint, or null. */
49
+ const mirror = (name) => name.endsWith('_l') ? name.slice(0, -2) + '_r' : null;
50
+ export function checkBones(rig, height, sdf, ref) {
51
+ const issues = [];
52
+ const lengths = boneLengths(rig);
53
+ for (const j of rig.joints) {
54
+ const { x, y, z } = j.position;
55
+ if (!Number.isFinite(x) || !Number.isFinite(y) || !Number.isFinite(z))
56
+ issues.push({
57
+ joint: j.name,
58
+ kind: 'non-finite',
59
+ detail: 'position is not finite',
60
+ amount: NaN,
61
+ });
62
+ }
63
+ const k = height / ref.height;
64
+ for (const [name, l] of Object.entries(lengths)) {
65
+ const l0 = ref.lengths[name];
66
+ if (l0 == null || l0 < MIN_REFERENCE)
67
+ continue;
68
+ if (l < 0.001) {
69
+ issues.push({
70
+ joint: name,
71
+ kind: 'collapsed',
72
+ detail: `${(l * 1000).toFixed(1)} mm`,
73
+ amount: l,
74
+ });
75
+ continue;
76
+ }
77
+ const r = l / (l0 * k);
78
+ if (r > SCALE_LIMIT || r < 1 / SCALE_LIMIT)
79
+ issues.push({
80
+ joint: name,
81
+ kind: 'scale',
82
+ detail: `${r.toFixed(2)}x the default's length, after height`,
83
+ amount: r,
84
+ });
85
+ }
86
+ for (const [name, l] of Object.entries(lengths)) {
87
+ const other = mirror(name);
88
+ if (other == null || lengths[other] == null)
89
+ continue;
90
+ const m = Math.max(l, lengths[other]);
91
+ if (m < MIN_REFERENCE)
92
+ continue;
93
+ const d = Math.abs(l - lengths[other]) / m;
94
+ if (d > SYMMETRY_LIMIT)
95
+ issues.push({
96
+ joint: name,
97
+ kind: 'asymmetric',
98
+ detail: `left ${(l * 1000).toFixed(1)} mm, right ${(lengths[other] * 1000).toFixed(1)} mm`,
99
+ amount: d,
100
+ });
101
+ }
102
+ for (const chain of DOWNWARD)
103
+ for (let i = 1; i < chain.length; i++) {
104
+ const a = rig.at(chain[i - 1]);
105
+ const b = rig.at(chain[i]);
106
+ if (!a || !b)
107
+ continue;
108
+ if (b.y >= a.y)
109
+ issues.push({
110
+ joint: chain[i],
111
+ kind: 'order',
112
+ detail: `not below ${chain[i - 1]} (${((b.y - a.y) * 1000).toFixed(1)} mm above)`,
113
+ amount: b.y - a.y,
114
+ });
115
+ }
116
+ for (const j of rig.joints) {
117
+ if (ref.outside.has(j.name))
118
+ continue;
119
+ const d = sdf.distance(j.position.x, j.position.y, j.position.z);
120
+ if (d > 0)
121
+ issues.push({
122
+ joint: j.name,
123
+ kind: 'outside',
124
+ detail: `${(d * 1000).toFixed(1)} mm outside the skin`,
125
+ amount: d,
126
+ });
127
+ }
128
+ return { height, issues, lengths };
129
+ }
130
+ //# sourceMappingURL=extremes-bones.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extremes-bones.js","sourceRoot":"","sources":["../src/extremes-bones.ts"],"names":[],"mappings":"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"}