distark-render 1.1.15 → 1.1.17

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 (193) hide show
  1. package/README.md +0 -0
  2. package/assets/KidB.json +2088 -0
  3. package/assets/tank.json +0 -0
  4. package/dist/cli/animate.d.ts +0 -0
  5. package/dist/cli/animate.d.ts.map +0 -0
  6. package/dist/cli/animate.js +0 -0
  7. package/dist/cli/animate.js.map +0 -0
  8. package/dist/cli/diff.d.ts +0 -0
  9. package/dist/cli/diff.d.ts.map +0 -0
  10. package/dist/cli/diff.js +0 -0
  11. package/dist/cli/diff.js.map +0 -0
  12. package/dist/cli/distark-check.d.ts +1 -0
  13. package/dist/cli/distark-check.d.ts.map +1 -1
  14. package/dist/cli/distark-check.js +6 -0
  15. package/dist/cli/distark-check.js.map +1 -1
  16. package/dist/cli/explode.d.ts +8 -0
  17. package/dist/cli/explode.d.ts.map +1 -0
  18. package/dist/cli/explode.js +282 -0
  19. package/dist/cli/explode.js.map +1 -0
  20. package/dist/cli/query.d.ts +0 -0
  21. package/dist/cli/query.d.ts.map +0 -0
  22. package/dist/cli/query.js +0 -0
  23. package/dist/cli/query.js.map +0 -0
  24. package/dist/cli/record.d.ts +0 -0
  25. package/dist/cli/record.d.ts.map +0 -0
  26. package/dist/cli/record.js +0 -0
  27. package/dist/cli/record.js.map +0 -0
  28. package/dist/cli/render.d.ts +0 -0
  29. package/dist/cli/render.d.ts.map +0 -0
  30. package/dist/cli/render.js +0 -0
  31. package/dist/cli/render.js.map +0 -0
  32. package/dist/cli/scene.d.ts +0 -0
  33. package/dist/cli/scene.d.ts.map +0 -0
  34. package/dist/cli/scene.js +16 -16
  35. package/dist/cli/scene.js.map +0 -0
  36. package/dist/cli/shared.d.ts +0 -0
  37. package/dist/cli/shared.d.ts.map +0 -0
  38. package/dist/cli/shared.js +0 -0
  39. package/dist/cli/shared.js.map +0 -0
  40. package/dist/cli/test.d.ts +0 -0
  41. package/dist/cli/test.d.ts.map +0 -0
  42. package/dist/cli/test.js +0 -0
  43. package/dist/cli/test.js.map +0 -0
  44. package/dist/cli/verify.d.ts +0 -0
  45. package/dist/cli/verify.d.ts.map +0 -0
  46. package/dist/cli/verify.js +0 -0
  47. package/dist/cli/verify.js.map +0 -0
  48. package/dist/modules/adapters/p5Renderer.d.ts +0 -0
  49. package/dist/modules/adapters/p5Renderer.d.ts.map +1 -1
  50. package/dist/modules/adapters/p5Renderer.js +54 -12
  51. package/dist/modules/adapters/p5Renderer.js.map +1 -1
  52. package/dist/modules/adapters/skiaRenderer.d.ts +0 -0
  53. package/dist/modules/adapters/skiaRenderer.d.ts.map +1 -1
  54. package/dist/modules/adapters/skiaRenderer.js +24 -4
  55. package/dist/modules/adapters/skiaRenderer.js.map +1 -1
  56. package/dist/modules/animationDiff.d.ts +0 -0
  57. package/dist/modules/animationDiff.d.ts.map +0 -0
  58. package/dist/modules/animationDiff.js +0 -0
  59. package/dist/modules/animationDiff.js.map +0 -0
  60. package/dist/modules/browserSceneRenderer.d.ts +0 -0
  61. package/dist/modules/browserSceneRenderer.d.ts.map +0 -0
  62. package/dist/modules/browserSceneRenderer.js +0 -0
  63. package/dist/modules/browserSceneRenderer.js.map +0 -0
  64. package/dist/modules/characterValidator.d.ts +2 -1
  65. package/dist/modules/characterValidator.d.ts.map +1 -1
  66. package/dist/modules/characterValidator.js +2 -41
  67. package/dist/modules/characterValidator.js.map +1 -1
  68. package/dist/modules/eyeSystem.d.ts +46 -14
  69. package/dist/modules/eyeSystem.d.ts.map +1 -1
  70. package/dist/modules/eyeSystem.js +167 -111
  71. package/dist/modules/eyeSystem.js.map +1 -1
  72. package/dist/modules/imageLoad.d.ts +50 -0
  73. package/dist/modules/imageLoad.d.ts.map +1 -1
  74. package/dist/modules/imageLoad.js +262 -18
  75. package/dist/modules/imageLoad.js.map +1 -1
  76. package/dist/modules/mouthSystem.d.ts +0 -0
  77. package/dist/modules/mouthSystem.d.ts.map +0 -0
  78. package/dist/modules/mouthSystem.js +0 -0
  79. package/dist/modules/mouthSystem.js.map +0 -0
  80. package/dist/modules/renderRig.d.ts +0 -0
  81. package/dist/modules/renderRig.d.ts.map +0 -0
  82. package/dist/modules/renderRig.js +0 -0
  83. package/dist/modules/renderRig.js.map +0 -0
  84. package/dist/modules/sceneRenderer.d.ts +0 -0
  85. package/dist/modules/sceneRenderer.d.ts.map +0 -0
  86. package/dist/modules/sceneRenderer.js +0 -0
  87. package/dist/modules/sceneRenderer.js.map +0 -0
  88. package/dist/tests/helpers.d.ts +0 -0
  89. package/dist/tests/helpers.d.ts.map +0 -0
  90. package/dist/tests/helpers.js +0 -0
  91. package/dist/tests/helpers.js.map +0 -0
  92. package/dist/tests/test-angle-swap.d.ts +0 -0
  93. package/dist/tests/test-angle-swap.d.ts.map +0 -0
  94. package/dist/tests/test-angle-swap.js +0 -0
  95. package/dist/tests/test-angle-swap.js.map +0 -0
  96. package/dist/tests/test-animation-diff-rendering.d.ts +0 -0
  97. package/dist/tests/test-animation-diff-rendering.d.ts.map +0 -0
  98. package/dist/tests/test-animation-diff-rendering.js +0 -0
  99. package/dist/tests/test-animation-diff-rendering.js.map +0 -0
  100. package/dist/tests/test-animation-diff.d.ts +0 -0
  101. package/dist/tests/test-animation-diff.d.ts.map +0 -0
  102. package/dist/tests/test-animation-diff.js +0 -0
  103. package/dist/tests/test-animation-diff.js.map +0 -0
  104. package/dist/tests/test-auto-eye-movement-e2e.d.ts +24 -0
  105. package/dist/tests/test-auto-eye-movement-e2e.d.ts.map +1 -0
  106. package/dist/tests/test-auto-eye-movement-e2e.js +514 -0
  107. package/dist/tests/test-auto-eye-movement-e2e.js.map +1 -0
  108. package/dist/tests/test-autofit.d.ts +0 -0
  109. package/dist/tests/test-autofit.d.ts.map +0 -0
  110. package/dist/tests/test-autofit.js +0 -0
  111. package/dist/tests/test-autofit.js.map +0 -0
  112. package/dist/tests/test-base-autofit.d.ts +0 -0
  113. package/dist/tests/test-base-autofit.d.ts.map +0 -0
  114. package/dist/tests/test-base-autofit.js +0 -0
  115. package/dist/tests/test-base-autofit.js.map +0 -0
  116. package/dist/tests/test-browser-scene.d.ts +0 -0
  117. package/dist/tests/test-browser-scene.d.ts.map +0 -0
  118. package/dist/tests/test-browser-scene.js +0 -0
  119. package/dist/tests/test-browser-scene.js.map +0 -0
  120. package/dist/tests/test-character-validator.d.ts +0 -0
  121. package/dist/tests/test-character-validator.d.ts.map +0 -0
  122. package/dist/tests/test-character-validator.js +0 -32
  123. package/dist/tests/test-character-validator.js.map +1 -1
  124. package/dist/tests/test-cli.d.ts +0 -0
  125. package/dist/tests/test-cli.d.ts.map +0 -0
  126. package/dist/tests/test-cli.js +0 -0
  127. package/dist/tests/test-cli.js.map +0 -0
  128. package/dist/tests/test-eye-extremes-visual.d.ts +22 -0
  129. package/dist/tests/test-eye-extremes-visual.d.ts.map +1 -0
  130. package/dist/tests/test-eye-extremes-visual.js +281 -0
  131. package/dist/tests/test-eye-extremes-visual.js.map +1 -0
  132. package/dist/tests/test-eye-system-reset.d.ts +15 -0
  133. package/dist/tests/test-eye-system-reset.d.ts.map +1 -0
  134. package/dist/tests/test-eye-system-reset.js +148 -0
  135. package/dist/tests/test-eye-system-reset.js.map +1 -0
  136. package/dist/tests/test-image-loading.d.ts +0 -0
  137. package/dist/tests/test-image-loading.d.ts.map +0 -0
  138. package/dist/tests/test-image-loading.js +0 -0
  139. package/dist/tests/test-image-loading.js.map +0 -0
  140. package/dist/tests/test-joint-movement.d.ts +0 -0
  141. package/dist/tests/test-joint-movement.d.ts.map +0 -0
  142. package/dist/tests/test-joint-movement.js +0 -0
  143. package/dist/tests/test-joint-movement.js.map +0 -0
  144. package/dist/tests/test-p5-image-types.d.ts +0 -0
  145. package/dist/tests/test-p5-image-types.d.ts.map +0 -0
  146. package/dist/tests/test-p5-image-types.js +0 -0
  147. package/dist/tests/test-p5-image-types.js.map +0 -0
  148. package/dist/tests/test-render-cache-visual.d.ts +0 -0
  149. package/dist/tests/test-render-cache-visual.d.ts.map +0 -0
  150. package/dist/tests/test-render-cache-visual.js +0 -0
  151. package/dist/tests/test-render-cache-visual.js.map +0 -0
  152. package/dist/tests/test-render-cache.d.ts +0 -0
  153. package/dist/tests/test-render-cache.d.ts.map +0 -0
  154. package/dist/tests/test-render-cache.js +0 -0
  155. package/dist/tests/test-render-cache.js.map +0 -0
  156. package/dist/tests/test-scene-object-svg-rerasterization.d.ts +0 -0
  157. package/dist/tests/test-scene-object-svg-rerasterization.d.ts.map +0 -0
  158. package/dist/tests/test-scene-object-svg-rerasterization.js +0 -0
  159. package/dist/tests/test-scene-object-svg-rerasterization.js.map +0 -0
  160. package/dist/tests/test-scene.d.ts +0 -0
  161. package/dist/tests/test-scene.d.ts.map +0 -0
  162. package/dist/tests/test-scene.js +0 -0
  163. package/dist/tests/test-scene.js.map +0 -0
  164. package/dist/tests/test-skia.d.ts +0 -0
  165. package/dist/tests/test-skia.d.ts.map +0 -0
  166. package/dist/tests/test-skia.js +0 -0
  167. package/dist/tests/test-skia.js.map +0 -0
  168. package/dist/tests/test-svg-parallax.d.ts +0 -0
  169. package/dist/tests/test-svg-parallax.d.ts.map +0 -0
  170. package/dist/tests/test-svg-parallax.js +0 -0
  171. package/dist/tests/test-svg-parallax.js.map +0 -0
  172. package/dist/tests/test-svg-rerasterization.d.ts +0 -0
  173. package/dist/tests/test-svg-rerasterization.d.ts.map +0 -0
  174. package/dist/tests/test-svg-rerasterization.js +194 -4
  175. package/dist/tests/test-svg-rerasterization.js.map +1 -1
  176. package/dist/tests/test-teen-tank-rig.d.ts +12 -0
  177. package/dist/tests/test-teen-tank-rig.d.ts.map +1 -0
  178. package/dist/tests/test-teen-tank-rig.js +122 -0
  179. package/dist/tests/test-teen-tank-rig.js.map +1 -0
  180. package/dist/tests/test-torso-pivot.d.ts +0 -0
  181. package/dist/tests/test-torso-pivot.d.ts.map +0 -0
  182. package/dist/tests/test-torso-pivot.js +0 -0
  183. package/dist/tests/test-torso-pivot.js.map +0 -0
  184. package/dist/tests/test-visual-verification.d.ts +0 -0
  185. package/dist/tests/test-visual-verification.d.ts.map +0 -0
  186. package/dist/tests/test-visual-verification.js +0 -0
  187. package/dist/tests/test-visual-verification.js.map +0 -0
  188. package/dist/types.d.ts +0 -0
  189. package/dist/types.d.ts.map +0 -0
  190. package/dist/types.js +0 -0
  191. package/dist/types.js.map +0 -0
  192. package/package.json +104 -106
  193. package/assets/presets/jumping-jack.json +0 -194
@@ -15,93 +15,125 @@ const DEFAULT_MOVEMENT_RANGES = {
15
15
  'down-right': { x: 4, y: 2 },
16
16
  '': { x: 0, y: 0 }
17
17
  };
18
- /**
19
- * Compute movement ranges from eye socket polygons.
20
- * Socket points define the boundary; we use bounding box half-extents as max movement.
21
- * When headWidth/headHeight are provided and socket values look like 0-100 percent,
22
- * we scale to pixel offsets. Otherwise we use raw socket units.
23
- * Factors in iris dimensions to prevent iris from escaping socket boundaries.
24
- */
25
- function computeMovementRangesFromSockets(eyeSockets, headWidth = 100, headHeight = 100, eyeData) {
18
+ function buildDirectionMap(r) {
19
+ return {
20
+ 'left': { x: -r.negX, y: 0 },
21
+ 'right': { x: r.posX, y: 0 },
22
+ 'up': { x: 0, y: -r.negY },
23
+ 'down': { x: 0, y: r.posY },
24
+ 'center': { x: 0, y: 0 },
25
+ 'up-left': { x: -r.negX * 0.8, y: -r.negY * 0.8 },
26
+ 'up-right': { x: r.posX * 0.8, y: -r.negY * 0.8 },
27
+ 'down-left': { x: -r.negX * 0.8, y: r.posY * 0.8 },
28
+ 'down-right': { x: r.posX * 0.8, y: r.posY * 0.8 },
29
+ '': { x: 0, y: 0 }
30
+ };
31
+ }
32
+ function computeMovementRangesFromSockets(eyeSockets, headWidth = 100, headHeight = 100, eyeData, headJointOffset) {
26
33
  const left = eyeSockets.left;
27
34
  const right = eyeSockets.right;
28
35
  const hasLeft = left && left.length >= 3;
29
36
  const hasRight = right && right.length >= 3;
30
- const computeBounds = (points) => {
31
- let minX = Infinity, minY = Infinity;
32
- let maxX = -Infinity, maxY = -Infinity;
37
+ if (!hasLeft && !hasRight) {
38
+ return { left: { ...DEFAULT_MOVEMENT_RANGES }, right: { ...DEFAULT_MOVEMENT_RANGES } };
39
+ }
40
+ // Detect whether socket values are 0-100 percentages or raw pixels.
41
+ const allPts = [...(left || []), ...(right || [])];
42
+ const maxCoord = Math.max(...allPts.flatMap(p => [p.x, p.y]));
43
+ const isPercent = maxCoord > 0 && maxCoord <= 100;
44
+ const jx = headJointOffset?.x || 0;
45
+ const jy = headJointOffset?.y || 0;
46
+ /**
47
+ * Map a socket percentage point to iris coordinate space
48
+ * (headBaseTransform / headParentTransform local coordinates).
49
+ *
50
+ * The head image is drawn at headTransform which is offset from
51
+ * headBaseTransform by (jointOffset.x, jointOffset.y - headHeight/2).
52
+ * Within the head image, percentage (px, py) maps to local pixel
53
+ * ((px/100 - 0.5) * headWidth, (py/100 - 0.5) * headHeight).
54
+ */
55
+ const socketPctToIris = (px, py) => {
56
+ if (isPercent) {
57
+ return {
58
+ x: jx + (px / 100 - 0.5) * headWidth,
59
+ y: (jy - headHeight / 2) + (py / 100 - 0.5) * headHeight,
60
+ };
61
+ }
62
+ return { x: px, y: py };
63
+ };
64
+ /** Full bounding box for one socket polygon. */
65
+ const socketBBox = (points) => {
66
+ let mnX = Infinity, mxX = -Infinity, mnY = Infinity, mxY = -Infinity;
33
67
  for (const p of points) {
34
- minX = Math.min(minX, p.x);
35
- minY = Math.min(minY, p.y);
36
- maxX = Math.max(maxX, p.x);
37
- maxY = Math.max(maxY, p.y);
68
+ if (p.x < mnX)
69
+ mnX = p.x;
70
+ if (p.x > mxX)
71
+ mxX = p.x;
72
+ if (p.y < mnY)
73
+ mnY = p.y;
74
+ if (p.y > mxY)
75
+ mxY = p.y;
38
76
  }
39
- const centerX = (minX + maxX) / 2;
40
- const centerY = (minY + maxY) / 2;
41
- const halfWidthX = (maxX - minX) / 2;
42
- const halfWidthY = (maxY - minY) / 2;
43
- return { centerX, centerY, halfWidthX, halfWidthY };
77
+ const topLeft = socketPctToIris(mnX, mnY);
78
+ const botRight = socketPctToIris(mxX, mxY);
79
+ return { minX: topLeft.x, maxX: botRight.x, minY: topLeft.y, maxY: botRight.y };
44
80
  };
45
- // Use 50% of half-extent as max movement (keeps iris safely inside socket)
46
- const marginFactor = 0.5;
47
- let rangeX;
48
- let rangeY;
49
- if (hasLeft && hasRight) {
50
- const leftBounds = computeBounds(left);
51
- const rightBounds = computeBounds(right);
52
- rangeX = Math.min(leftBounds.halfWidthX, rightBounds.halfWidthX) * marginFactor;
53
- rangeY = Math.min(leftBounds.halfWidthY, rightBounds.halfWidthY) * marginFactor;
54
- }
55
- else if (hasLeft) {
56
- const b = computeBounds(left);
57
- rangeX = b.halfWidthX * marginFactor;
58
- rangeY = b.halfWidthY * marginFactor;
59
- }
60
- else if (hasRight) {
61
- const b = computeBounds(right);
62
- rangeX = b.halfWidthX * marginFactor;
63
- rangeY = b.halfWidthY * marginFactor;
64
- }
65
- else {
66
- return { ...DEFAULT_MOVEMENT_RANGES };
67
- }
68
- // If socket values look like 0-100 percent (typical for rigs), scale to pixels
69
- const maxCoord = Math.max(...(left || []).flatMap(p => [p.x, p.y]), ...(right || []).flatMap(p => [p.x, p.y]));
70
- if (maxCoord > 0 && maxCoord <= 100) {
71
- rangeX = (rangeX / 100) * headWidth;
72
- rangeY = (rangeY / 100) * headHeight;
81
+ // Ratio-scaled iris rendered dimensions (same as renderRig.ts rendering).
82
+ const leftIrisW = ((eyeData?.leftIrisWidth || 10) * (eyeData?.leftIrisWidthRatio || 1));
83
+ const leftIrisH = ((eyeData?.leftIrisHeight || 10) * (eyeData?.leftIrisHeightRatio || 1));
84
+ const rightIrisW = ((eyeData?.rightIrisWidth || 10) * (eyeData?.rightIrisWidthRatio || 1));
85
+ const rightIrisH = ((eyeData?.rightIrisHeight || 10) * (eyeData?.rightIrisHeightRatio || 1));
86
+ const edgeFactor = 0.85;
87
+ /**
88
+ * Compute asymmetric per-direction max displacements from the iris BASE
89
+ * position, ensuring the iris edge stays within the usable bounds.
90
+ *
91
+ * usable bounds = socket bbox shrunk by edgeFactor from its center.
92
+ */
93
+ const computeRanges = (bbox, irisBaseX, irisBaseY, irisW, irisH) => {
94
+ const cx = (bbox.minX + bbox.maxX) / 2;
95
+ const cy = (bbox.minY + bbox.maxY) / 2;
96
+ const halfW = (bbox.maxX - bbox.minX) / 2;
97
+ const halfH = (bbox.maxY - bbox.minY) / 2;
98
+ const usableHalfW = halfW * edgeFactor;
99
+ const usableHalfH = halfH * edgeFactor;
100
+ // Max negative X displacement (moving left):
101
+ // irisBase + disp - irisW/2 >= cx - usableHalfW
102
+ // disp >= (cx - usableHalfW + irisW/2) - irisBase
103
+ const negX = Math.max(0, irisBaseX - (cx - usableHalfW + irisW / 2));
104
+ // Max positive X displacement (moving right):
105
+ // irisBase + disp + irisW/2 <= cx + usableHalfW
106
+ const posX = Math.max(0, (cx + usableHalfW - irisW / 2) - irisBaseX);
107
+ const negY = Math.max(0, irisBaseY - (cy - usableHalfH + irisH / 2));
108
+ const posY = Math.max(0, (cy + usableHalfH - irisH / 2) - irisBaseY);
109
+ return { negX, posX, negY, posY };
110
+ };
111
+ const leftIrisBaseX = eyeData?.leftIrisXCoor ?? 0;
112
+ const leftIrisBaseY = eyeData?.leftIrisYCoor ?? 0;
113
+ const rightIrisBaseX = eyeData?.rightIrisXCoor ?? 0;
114
+ const rightIrisBaseY = eyeData?.rightIrisYCoor ?? 0;
115
+ let leftRanges = { negX: 5, posX: 5, negY: 3, posY: 3 };
116
+ let rightRanges = { negX: 5, posX: 5, negY: 3, posY: 3 };
117
+ if (hasLeft && left) {
118
+ const bb = socketBBox(left);
119
+ leftRanges = computeRanges(bb, leftIrisBaseX, leftIrisBaseY, leftIrisW, leftIrisH);
73
120
  }
74
- // Factor in iris dimensions to prevent escape from socket boundaries
75
- if (eyeData) {
76
- // Get iris dimensions (use the larger iris as reference to ensure both fit)
77
- const leftIrisWidth = eyeData.leftIrisWidth || 10;
78
- const leftIrisHeight = eyeData.leftIrisHeight || 10;
79
- const rightIrisWidth = eyeData.rightIrisWidth || 10;
80
- const rightIrisHeight = eyeData.rightIrisHeight || 10;
81
- const maxIrisWidth = Math.max(leftIrisWidth, rightIrisWidth);
82
- const maxIrisHeight = Math.max(leftIrisHeight, rightIrisHeight);
83
- // Subtract half the iris size from available movement range
84
- // This ensures the iris edge doesn't escape the socket
85
- rangeX = Math.max(0, rangeX - maxIrisWidth / 2);
86
- rangeY = Math.max(0, rangeY - maxIrisHeight / 2);
87
- console.log('[EyeSystem] Adjusted movement range for iris size:', {
88
- maxIrisWidth,
89
- maxIrisHeight,
90
- adjustedRangeX: rangeX,
91
- adjustedRangeY: rangeY
92
- });
121
+ if (hasRight && right) {
122
+ const bb = socketBBox(right);
123
+ rightRanges = computeRanges(bb, rightIrisBaseX, rightIrisBaseY, rightIrisW, rightIrisH);
93
124
  }
125
+ if (!hasLeft && hasRight)
126
+ leftRanges = rightRanges;
127
+ else if (hasLeft && !hasRight)
128
+ rightRanges = leftRanges;
129
+ console.log('[EyeSystem] Socket-derived per-eye movement ranges:', {
130
+ left: leftRanges, right: rightRanges,
131
+ leftIrisRendered: { w: leftIrisW, h: leftIrisH },
132
+ rightIrisRendered: { w: rightIrisW, h: rightIrisH },
133
+ });
94
134
  return {
95
- 'left': { x: -rangeX, y: 0 },
96
- 'right': { x: rangeX, y: 0 },
97
- 'up': { x: 0, y: -rangeY },
98
- 'down': { x: 0, y: rangeY },
99
- 'center': { x: 0, y: 0 },
100
- 'up-left': { x: -rangeX * 0.8, y: -rangeY * 0.8 },
101
- 'up-right': { x: rangeX * 0.8, y: -rangeY * 0.8 },
102
- 'down-left': { x: -rangeX * 0.8, y: rangeY * 0.8 },
103
- 'down-right': { x: rangeX * 0.8, y: rangeY * 0.8 },
104
- '': { x: 0, y: 0 }
135
+ left: buildDirectionMap(leftRanges),
136
+ right: buildDirectionMap(rightRanges),
105
137
  };
106
138
  }
107
139
  /**
@@ -131,20 +163,23 @@ export class EyeSystem {
131
163
  hasValidSockets
132
164
  });
133
165
  if (hasValidSockets && eyeSockets) {
134
- this.movementRanges = computeMovementRangesFromSockets(eyeSockets, options?.headWidth ?? 100, options?.headHeight ?? 100, eyeData);
135
- // Max range for manual -2 to 2 scale (use 'right' as reference for X, 'down' for Y)
136
- const maxRangeX = Math.abs(this.movementRanges['right'].x);
137
- const maxRangeY = Math.abs(this.movementRanges['down'].y);
138
- this.manualScaleFactor = Math.max(maxRangeX, maxRangeY) / 2; // 2 = max of -2 to 2 range
139
- console.log('[EyeSystem] Movement ranges from sockets:', {
166
+ this.perEyeRanges = computeMovementRangesFromSockets(eyeSockets, options?.headWidth ?? 100, options?.headHeight ?? 100, eyeData, options?.headJointOffset);
167
+ const lr = this.perEyeRanges.left;
168
+ const rr = this.perEyeRanges.right;
169
+ this.leftManualScale = Math.max(Math.abs(lr['left'].x), Math.abs(lr['right'].x), Math.abs(lr['up'].y), Math.abs(lr['down'].y)) / 2;
170
+ this.rightManualScale = Math.max(Math.abs(rr['left'].x), Math.abs(rr['right'].x), Math.abs(rr['up'].y), Math.abs(rr['down'].y)) / 2;
171
+ console.log('[EyeSystem] Per-eye movement ranges from sockets:', {
140
172
  characterId: this.characterId,
141
- movementRanges: this.movementRanges,
142
- manualScaleFactor: this.manualScaleFactor
173
+ leftRanges: this.perEyeRanges.left,
174
+ rightRanges: this.perEyeRanges.right,
175
+ leftManualScale: this.leftManualScale,
176
+ rightManualScale: this.rightManualScale
143
177
  });
144
178
  }
145
179
  else {
146
- this.movementRanges = { ...DEFAULT_MOVEMENT_RANGES };
147
- this.manualScaleFactor = 2.5; // Legacy default
180
+ this.perEyeRanges = { left: { ...DEFAULT_MOVEMENT_RANGES }, right: { ...DEFAULT_MOVEMENT_RANGES } };
181
+ this.leftManualScale = 2.5;
182
+ this.rightManualScale = 2.5;
148
183
  }
149
184
  // Store immutable copy of base iris coordinates
150
185
  // This prevents accumulation when rigData is updated
@@ -292,12 +327,12 @@ export class EyeSystem {
292
327
  */
293
328
  setEyeDirection(direction) {
294
329
  this.state.currentDirection = direction;
295
- const movement = this.movementRanges[direction] || { x: 0, y: 0 };
296
- // Apply movement to base positions (immutable reference)
297
- this.state.leftIrisX = this.baseIrisCoords.leftX + movement.x;
298
- this.state.leftIrisY = this.baseIrisCoords.leftY + movement.y;
299
- this.state.rightIrisX = this.baseIrisCoords.rightX + movement.x;
300
- this.state.rightIrisY = this.baseIrisCoords.rightY + movement.y;
330
+ const leftMov = this.perEyeRanges.left[direction] || { x: 0, y: 0 };
331
+ const rightMov = this.perEyeRanges.right[direction] || { x: 0, y: 0 };
332
+ this.state.leftIrisX = this.baseIrisCoords.leftX + leftMov.x;
333
+ this.state.leftIrisY = this.baseIrisCoords.leftY + leftMov.y;
334
+ this.state.rightIrisX = this.baseIrisCoords.rightX + rightMov.x;
335
+ this.state.rightIrisY = this.baseIrisCoords.rightY + rightMov.y;
301
336
  }
302
337
  /**
303
338
  * Calculate eye direction to look at a target position
@@ -344,16 +379,37 @@ export class EyeSystem {
344
379
  * @param characterPos - This character's position
345
380
  */
346
381
  update(currentTime, isPlaying = false, speakingCharacterPos, characterPos = { x: 0, y: 0 }) {
347
- // Handle timeline reset
348
- if (currentTime < 0.1 || this.detectReset(currentTime)) {
382
+ // Detect a genuine reset so resetTiming() is called exactly once per event,
383
+ // not on every frame while currentTime < 0.1.
384
+ //
385
+ // Bug (pre-fix): the original `currentTime < 0.1` guard called resetTiming on
386
+ // every early frame. resetTiming sets eyeLastUpdatedTime = t − eyeUpdateInterval
387
+ // (= t − 0.75 s), so the timeSinceUpdate check immediately satisfied (0.75 ≥ 0.75)
388
+ // and randomEyeMovement fired on ~50 % of frames — iris twitched to a new
389
+ // random direction every ~16 ms instead of the intended ~750 ms.
390
+ //
391
+ // A genuine reset is one of three cases:
392
+ // 1. Very first call ever (eyeLastUpdatedTime is still the sentinel -1)
393
+ // 2. Time jumped backward (within or crossing the startup window) — covers
394
+ // timeline loops and user scrubbing backward
395
+ // 3. detectReset() — normal backwards-time detection during playback
396
+ const isFirstInit = this.state.eyeLastUpdatedTime === -1;
397
+ const isEarlyJumpBack = currentTime < 0.1 && this.state.eyeLastUpdatedTime > currentTime;
398
+ if (isFirstInit || isEarlyJumpBack || this.detectReset(currentTime)) {
349
399
  this.resetTiming(currentTime);
350
400
  }
351
- // Always update blinking (works even when paused)
352
- this.updateBlinking(currentTime);
353
- // Eye movement only when playing
401
+ // Neither blinking nor movement happens while the scene is paused/stopped.
402
+ // While paused we keep timing anchors fresh so there is no burst of
403
+ // activity the instant play resumes.
354
404
  if (!isPlaying) {
405
+ this.state.eyeLastUpdatedTime = currentTime; // prevents immediate wander on resume
406
+ this.state.eyeLidLastUpdatedTime = null; // resets blink timer for a clean start
407
+ this.state.currentEyeLidState = 'open'; // eyes stay open while paused
408
+ this.state.currentEyeLidCount = 0;
355
409
  return;
356
410
  }
411
+ // Update blinking (only runs when playing)
412
+ this.updateBlinking(currentTime);
357
413
  const timeSinceUpdate = currentTime - this.state.eyeLastUpdatedTime;
358
414
  const shouldUpdate = timeSinceUpdate >= this.state.eyeUpdateInterval;
359
415
  if (!shouldUpdate) {
@@ -459,13 +515,11 @@ export class EyeSystem {
459
515
  * - +2 represents maximum right/up
460
516
  */
461
517
  setManualIrisPositions(eyePositions, currentTime) {
462
- // scaleFactor converts -2 to 2 range into pixel offsets (derived from eye socket bounds when available)
463
- const scaleFactor = this.manualScaleFactor;
464
- // Apply manual offsets to base positions (using immutable baseIrisCoords)
465
- this.state.leftIrisX = this.baseIrisCoords.leftX + (eyePositions.left.x * scaleFactor);
466
- this.state.leftIrisY = this.baseIrisCoords.leftY + (eyePositions.left.y * scaleFactor);
467
- this.state.rightIrisX = this.baseIrisCoords.rightX + (eyePositions.right.x * scaleFactor);
468
- this.state.rightIrisY = this.baseIrisCoords.rightY + (eyePositions.right.y * scaleFactor);
518
+ // Per-eye scale factors convert -2 to 2 range into pixel offsets
519
+ this.state.leftIrisX = this.baseIrisCoords.leftX + (eyePositions.left.x * this.leftManualScale);
520
+ this.state.leftIrisY = this.baseIrisCoords.leftY + (eyePositions.left.y * this.leftManualScale);
521
+ this.state.rightIrisX = this.baseIrisCoords.rightX + (eyePositions.right.x * this.rightManualScale);
522
+ this.state.rightIrisY = this.baseIrisCoords.rightY + (eyePositions.right.y * this.rightManualScale);
469
523
  // Update last updated time to prevent automatic movement from overriding manual positioning
470
524
  this.state.eyeLastUpdatedTime = currentTime;
471
525
  // Mark as custom position
@@ -490,27 +544,29 @@ export class EyeSystem {
490
544
  * @param options - Optional: { eyeSockets, headWidth, headHeight } - when provided, movement ranges are computed from eye socket polygons
491
545
  */
492
546
  export function createEyeSystem(characterId, eyeDataOrRigData, options) {
493
- // Check if rigData object was passed (has eyeSockets or eyes property)
494
547
  const isRigData = eyeDataOrRigData && typeof eyeDataOrRigData === 'object' &&
495
548
  ('eyeSockets' in eyeDataOrRigData || 'eyes' in eyeDataOrRigData);
496
549
  if (isRigData) {
497
550
  const rigData = eyeDataOrRigData;
498
551
  const eyeData = rigData.eyes || {};
499
- // Prefer rigData's eyeSockets over options
500
552
  const eyeSockets = rigData.eyeSockets || options?.eyeSockets;
501
- const headWidth = rigData.width || options?.headWidth;
502
- const headHeight = rigData.height || options?.headHeight;
553
+ // Socket coordinates are 0-100 percentages of the HEAD image, so we
554
+ // must use the head's own dimensions — not the rig-level width/height.
555
+ const headDims = rigData.dimensionValues?.head;
556
+ const headWidth = headDims?.width || options?.headWidth;
557
+ const headHeight = headDims?.height || options?.headHeight;
558
+ const headJointOffset = rigData.jointOffset?.['torso_head'];
503
559
  if (eyeSockets) {
504
560
  return new EyeSystem(characterId, {
505
561
  eyeData,
506
562
  eyeSockets,
507
563
  headWidth,
508
- headHeight
564
+ headHeight,
565
+ headJointOffset
509
566
  });
510
567
  }
511
568
  return new EyeSystem(characterId, eyeData);
512
569
  }
513
- // Legacy: eyeData passed directly
514
570
  const eyeData = eyeDataOrRigData;
515
571
  if (options?.eyeSockets) {
516
572
  return new EyeSystem(characterId, {
@@ -1 +1 @@
1
- {"version":3,"file":"eyeSystem.js","sourceRoot":"","sources":["../../modules/eyeSystem.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"eyeSystem.js","sourceRoot":"","sources":["../../modules/eyeSystem.ts"],"names":[],"mappings":"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"}
@@ -72,6 +72,41 @@ export declare class ImageLoader {
72
72
  requestImageForSize(key: string, desiredWidth: number, desiredHeight: number, loadedImages?: Record<string, any>): any;
73
73
  requestSvgParallaxImageForSize(baseKey: string, config: SvgParallaxPartConfig | undefined, angleDegrees: number, desiredWidth: number, desiredHeight: number, loadedImages?: Record<string, any>): any;
74
74
  waitForPendingImageUpgrades(): Promise<void>;
75
+ /**
76
+ * Pre-rasterize all SVG parts at their rig dimensionValues sizes, scaled by
77
+ * pixelDensity so the first rendered frame is already sharp on retina displays.
78
+ *
79
+ * Pass `options.pixelDensity = p5.pixelDensity()` (typically 1 on standard
80
+ * screens, 2 on retina / HiDPI) so the target canvas matches exactly what
81
+ * _applyImageLoop will request:
82
+ * desiredWidth = dimensionValues[part].width × |scaleX| × pixelDensity
83
+ * Without this, every new loadImages call produces a canvas at 1× that is
84
+ * immediately eligible for an upgrade to 2×, causing 1–N frames of fuzziness
85
+ * while the async re-raster is in flight.
86
+ *
87
+ * This must be called AFTER the caller has already normalized __distarkSvgSource
88
+ * on each canvas (tight viewBox + preserveAspectRatio="none"). In the React
89
+ * app, Body.loadImages() does this via fitSvgViewBoxToContent +
90
+ * normalizeSvgPreserveAspectRatio before invoking prepareSvgCanvases.
91
+ *
92
+ * prepareSvgCanvases does NOT recompute content bounds. The caller owns that
93
+ * responsibility because it has access to browser DOM APIs (getBBox / DOMParser
94
+ * + accurate geometry). Any attempt to recompute here risks overriding the
95
+ * accurate tight viewBox with an inaccurate one (e.g. Bezier control-point
96
+ * bounds that exceed visible content), which is the root cause of distortion.
97
+ *
98
+ * Skips parts whose canvas is already at the target size (±2 px or 2% tolerance).
99
+ * Marks each produced canvas with __distarkSvgNormalized = true so Body.js
100
+ * rememberOriginalSvgImage does not re-run normalization on the next draw.
101
+ */
102
+ prepareSvgCanvases(rigData: RigData, loadedImages: Record<string, any>, options?: {
103
+ pixelDensity?: number;
104
+ }): Promise<void>;
105
+ /**
106
+ * Adds preserveAspectRatio="none" to the SVG root element.
107
+ * Replaces any existing preserveAspectRatio attribute value.
108
+ */
109
+ private static injectPreserveAspectRatioNone;
75
110
  /**
76
111
  * Load image with caching support
77
112
  * Checks cache first, only loads if not cached
@@ -92,7 +127,22 @@ export declare class ImageLoader {
92
127
  loadAllRigImages(rigData: RigData, useCache?: boolean, onProgress?: (loaded: number, total: number, failed: number) => void): Promise<Record<string, any>>;
93
128
  private static decodeSvgDataUrl;
94
129
  private static parseDimension;
130
+ private static parseViewBox;
95
131
  private static parseSvgDimensions;
132
+ private static formatNumber;
133
+ private static setSvgRootAttribute;
134
+ /**
135
+ * Rewrites the SVG so it renders at exactly targetWidth × targetHeight with no clipping.
136
+ *
137
+ * Strategy: scale-to-fit using the SVG's own declared dimensions (after unit conversion),
138
+ * then center the result within the target box. The viewBox is set to
139
+ * "0 0 targetWidth targetHeight" so 1 SVG user unit = 1 CSS pixel.
140
+ *
141
+ * This guarantees no cropping because we use min(scaleX, scaleY) (uniform fit), and the
142
+ * reference dimensions come from the SVG's declared width/height — not from a content-bounds
143
+ * measurement that could under-report and cause clipping.
144
+ */
145
+ protected static normalizeSvgToVisibleBounds(svgSource: string, targetWidth?: number, targetHeight?: number): string;
96
146
  protected prepareResolvedAsset(imageUrl: string): Promise<{
97
147
  kind: 'svg';
98
148
  svgSource: string;
@@ -1 +1 @@
1
- {"version":3,"file":"imageLoad.d.ts","sourceRoot":"","sources":["../../modules/imageLoad.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAkDzG;;GAEG;AACH,qBAAa,WAAW;IACpB,OAAO,CAAC,QAAQ,CAAS;IACzB,SAAS,CAAC,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACvC,SAAS,CAAC,qBAAqB,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;IAE3D;;;OAGG;gBACS,QAAQ,GAAE,MAAuG;IAM7H;;;OAGG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAI/B;;;OAGG;IACH,WAAW,IAAI,MAAM;IAIrB;;;;OAIG;IACH,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI;IA6BvE;;;;;;OAMG;IACH,SAAS,CACL,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACpC,MAAM,CAAC,EAAE,iBAAiB,EAC1B,OAAO,CAAC,EAAE,kBAAkB,GAC7B,IAAI;IAwDP;;;;;OAKG;IACG,UAAU,CACZ,YAAY,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,EAClD,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,GACrE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAkC5C;;;OAGG;IACH,aAAa,IAAI,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC;IAIjC;;OAEG;IACH,eAAe,IAAI,IAAI;IAIvB;;;OAGG;IACH,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG;IAIhC;;;;OAIG;IACH,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI;IAIzC,mBAAmB,CACf,GAAG,EAAE,MAAM,EACX,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,MAAM,EACrB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GACnC,GAAG;IA0DN,8BAA8B,CAC1B,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,qBAAqB,GAAG,SAAS,EACzC,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,MAAM,EACrB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GACnC,GAAG;IAmDA,2BAA2B,IAAI,OAAO,CAAC,IAAI,CAAC;IAIlD;;;OAGG;IACH,kBAAkB,CACd,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACpC,MAAM,CAAC,EAAE,iBAAiB,EAC1B,OAAO,CAAC,EAAE,kBAAkB,GAC7B,IAAI;IAuBP;;OAEG;IACH,SAAS,CAAC,kBAAkB,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,GAAG,MAAM,EAAE;IAiE3E;;;;;;;OAOG;IACG,gBAAgB,CAClB,OAAO,EAAE,OAAO,EAChB,QAAQ,GAAE,OAAc,EACxB,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,GACrE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAyC/B,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAoB/B,OAAO,CAAC,MAAM,CAAC,cAAc;IAY7B,OAAO,CAAC,MAAM,CAAC,kBAAkB;cA+BjB,oBAAoB,CAChC,QAAQ,EAAE,MAAM,GACjB,OAAO,CACJ;QAAE,IAAI,EAAE,KAAK,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAA;KAAE,GACnF;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GACnC,IAAI,CACT;cAiCe,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAwB3G,SAAS,CAAC,iBAAiB,CACvB,KAAK,EAAE,GAAG,EACV,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,MAAM,EACtB,eAAe,EAAE,MAAM,EACvB,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,GACrB,IAAI;IAUP,SAAS,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;CASjE;AAGD,eAAO,MAAM,kBAAkB,aAAoB,CAAC"}
1
+ {"version":3,"file":"imageLoad.d.ts","sourceRoot":"","sources":["../../modules/imageLoad.ts"],"names":[],"mappings":"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"}