@aura3d/animation 3.0.1 → 4.0.0

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 (175) hide show
  1. package/dist/AnimationController.d.ts +8 -0
  2. package/dist/AnimationController.d.ts.map +1 -1
  3. package/dist/AnimationController.js +93 -0
  4. package/dist/AnimationController.js.map +1 -1
  5. package/dist/AnimationMixer.d.ts.map +1 -1
  6. package/dist/AnimationMixer.js +11 -0
  7. package/dist/AnimationMixer.js.map +1 -1
  8. package/dist/FootIk.d.ts +41 -0
  9. package/dist/FootIk.d.ts.map +1 -1
  10. package/dist/FootIk.js +202 -0
  11. package/dist/FootIk.js.map +1 -1
  12. package/dist/IK.d.ts +26 -0
  13. package/dist/IK.d.ts.map +1 -1
  14. package/dist/IK.js +515 -0
  15. package/dist/IK.js.map +1 -1
  16. package/dist/Keyframe.d.ts.map +1 -1
  17. package/dist/Keyframe.js +13 -12
  18. package/dist/Keyframe.js.map +1 -1
  19. package/dist/SpringBones.d.ts +80 -0
  20. package/dist/SpringBones.d.ts.map +1 -1
  21. package/dist/SpringBones.js +593 -49
  22. package/dist/SpringBones.js.map +1 -1
  23. package/dist/browser-index.d.ts +1 -1
  24. package/dist/browser-index.d.ts.map +1 -1
  25. package/dist/browser-index.js +1 -1
  26. package/dist/browser-index.js.map +1 -1
  27. package/dist/contracts/index.d.ts +2 -0
  28. package/dist/contracts/index.d.ts.map +1 -0
  29. package/dist/contracts/index.js +7 -0
  30. package/dist/contracts/index.js.map +1 -0
  31. package/dist/contracts/pose.d.ts +25 -0
  32. package/dist/contracts/pose.d.ts.map +1 -0
  33. package/dist/contracts/pose.js +41 -0
  34. package/dist/contracts/pose.js.map +1 -0
  35. package/dist/experimental/CrowdAnimation.d.ts +13 -0
  36. package/dist/experimental/CrowdAnimation.d.ts.map +1 -0
  37. package/dist/experimental/CrowdAnimation.js +14 -0
  38. package/dist/experimental/CrowdAnimation.js.map +1 -0
  39. package/dist/index.d.ts +1 -1
  40. package/dist/index.d.ts.map +1 -1
  41. package/dist/index.js +1 -1
  42. package/dist/index.js.map +1 -1
  43. package/dist/lanes/index.d.ts +17 -0
  44. package/dist/lanes/index.d.ts.map +1 -0
  45. package/dist/lanes/index.js +17 -0
  46. package/dist/lanes/index.js.map +1 -0
  47. package/dist/lanes/prd01.d.ts +6 -0
  48. package/dist/lanes/prd01.d.ts.map +1 -0
  49. package/dist/lanes/prd01.js +6 -0
  50. package/dist/lanes/prd01.js.map +1 -0
  51. package/dist/lanes/prd02.d.ts +6 -0
  52. package/dist/lanes/prd02.d.ts.map +1 -0
  53. package/dist/lanes/prd02.js +6 -0
  54. package/dist/lanes/prd02.js.map +1 -0
  55. package/dist/lanes/prd03.d.ts +6 -0
  56. package/dist/lanes/prd03.d.ts.map +1 -0
  57. package/dist/lanes/prd03.js +6 -0
  58. package/dist/lanes/prd03.js.map +1 -0
  59. package/dist/lanes/prd04.d.ts +6 -0
  60. package/dist/lanes/prd04.d.ts.map +1 -0
  61. package/dist/lanes/prd04.js +6 -0
  62. package/dist/lanes/prd04.js.map +1 -0
  63. package/dist/lanes/prd05.d.ts +6 -0
  64. package/dist/lanes/prd05.d.ts.map +1 -0
  65. package/dist/lanes/prd05.js +6 -0
  66. package/dist/lanes/prd05.js.map +1 -0
  67. package/dist/lanes/prd06.d.ts +37 -0
  68. package/dist/lanes/prd06.d.ts.map +1 -0
  69. package/dist/lanes/prd06.js +26 -0
  70. package/dist/lanes/prd06.js.map +1 -0
  71. package/dist/lanes/prd07.d.ts +6 -0
  72. package/dist/lanes/prd07.d.ts.map +1 -0
  73. package/dist/lanes/prd07.js +6 -0
  74. package/dist/lanes/prd07.js.map +1 -0
  75. package/dist/lanes/prd08.d.ts +6 -0
  76. package/dist/lanes/prd08.d.ts.map +1 -0
  77. package/dist/lanes/prd08.js +6 -0
  78. package/dist/lanes/prd08.js.map +1 -0
  79. package/dist/lanes/prd09.d.ts +6 -0
  80. package/dist/lanes/prd09.d.ts.map +1 -0
  81. package/dist/lanes/prd09.js +6 -0
  82. package/dist/lanes/prd09.js.map +1 -0
  83. package/dist/lanes/prd10.d.ts +6 -0
  84. package/dist/lanes/prd10.d.ts.map +1 -0
  85. package/dist/lanes/prd10.js +6 -0
  86. package/dist/lanes/prd10.js.map +1 -0
  87. package/dist/lanes/prd11.d.ts +6 -0
  88. package/dist/lanes/prd11.d.ts.map +1 -0
  89. package/dist/lanes/prd11.js +6 -0
  90. package/dist/lanes/prd11.js.map +1 -0
  91. package/dist/lanes/prd12.d.ts +6 -0
  92. package/dist/lanes/prd12.d.ts.map +1 -0
  93. package/dist/lanes/prd12.js +6 -0
  94. package/dist/lanes/prd12.js.map +1 -0
  95. package/dist/lanes/prd13.d.ts +6 -0
  96. package/dist/lanes/prd13.d.ts.map +1 -0
  97. package/dist/lanes/prd13.js +6 -0
  98. package/dist/lanes/prd13.js.map +1 -0
  99. package/dist/lanes/prd14.d.ts +6 -0
  100. package/dist/lanes/prd14.d.ts.map +1 -0
  101. package/dist/lanes/prd14.js +6 -0
  102. package/dist/lanes/prd14.js.map +1 -0
  103. package/dist/lanes/prd15.d.ts +6 -0
  104. package/dist/lanes/prd15.d.ts.map +1 -0
  105. package/dist/lanes/prd15.js +6 -0
  106. package/dist/lanes/prd15.js.map +1 -0
  107. package/dist/pose/BoneMask.d.ts +39 -0
  108. package/dist/pose/BoneMask.d.ts.map +1 -0
  109. package/dist/pose/BoneMask.js +160 -0
  110. package/dist/pose/BoneMask.js.map +1 -0
  111. package/dist/pose/CcdIkConstraint.d.ts +38 -0
  112. package/dist/pose/CcdIkConstraint.d.ts.map +1 -0
  113. package/dist/pose/CcdIkConstraint.js +198 -0
  114. package/dist/pose/CcdIkConstraint.js.map +1 -0
  115. package/dist/pose/CompiledClip.d.ts +48 -0
  116. package/dist/pose/CompiledClip.d.ts.map +1 -0
  117. package/dist/pose/CompiledClip.js +209 -0
  118. package/dist/pose/CompiledClip.js.map +1 -0
  119. package/dist/pose/LookAtConstraint.d.ts +48 -0
  120. package/dist/pose/LookAtConstraint.d.ts.map +1 -0
  121. package/dist/pose/LookAtConstraint.js +251 -0
  122. package/dist/pose/LookAtConstraint.js.map +1 -0
  123. package/dist/pose/MotionMetrics.d.ts +136 -0
  124. package/dist/pose/MotionMetrics.d.ts.map +1 -0
  125. package/dist/pose/MotionMetrics.js +253 -0
  126. package/dist/pose/MotionMetrics.js.map +1 -0
  127. package/dist/pose/PoseBuffer.d.ts +23 -0
  128. package/dist/pose/PoseBuffer.d.ts.map +1 -0
  129. package/dist/pose/PoseBuffer.js +48 -0
  130. package/dist/pose/PoseBuffer.js.map +1 -0
  131. package/dist/pose/PoseInertializer.d.ts +38 -0
  132. package/dist/pose/PoseInertializer.d.ts.map +1 -0
  133. package/dist/pose/PoseInertializer.js +208 -0
  134. package/dist/pose/PoseInertializer.js.map +1 -0
  135. package/dist/pose/PoseMixer.d.ts +256 -0
  136. package/dist/pose/PoseMixer.d.ts.map +1 -0
  137. package/dist/pose/PoseMixer.js +848 -0
  138. package/dist/pose/PoseMixer.js.map +1 -0
  139. package/dist/pose/Retarget.d.ts +77 -0
  140. package/dist/pose/Retarget.d.ts.map +1 -0
  141. package/dist/pose/Retarget.js +378 -0
  142. package/dist/pose/Retarget.js.map +1 -0
  143. package/dist/pose/RetargetCache.d.ts +21 -0
  144. package/dist/pose/RetargetCache.d.ts.map +1 -0
  145. package/dist/pose/RetargetCache.js +102 -0
  146. package/dist/pose/RetargetCache.js.map +1 -0
  147. package/dist/pose/RetargetWorker.d.ts +21 -0
  148. package/dist/pose/RetargetWorker.d.ts.map +1 -0
  149. package/dist/pose/RetargetWorker.js +56 -0
  150. package/dist/pose/RetargetWorker.js.map +1 -0
  151. package/dist/pose/SkeletonBinding.d.ts +55 -0
  152. package/dist/pose/SkeletonBinding.d.ts.map +1 -0
  153. package/dist/pose/SkeletonBinding.js +62 -0
  154. package/dist/pose/SkeletonBinding.js.map +1 -0
  155. package/dist/pose/blendKernels.d.ts +32 -0
  156. package/dist/pose/blendKernels.d.ts.map +1 -0
  157. package/dist/pose/blendKernels.js +101 -0
  158. package/dist/pose/blendKernels.js.map +1 -0
  159. package/dist/pose/makeClipAdditive.d.ts +22 -0
  160. package/dist/pose/makeClipAdditive.d.ts.map +1 -0
  161. package/dist/pose/makeClipAdditive.js +101 -0
  162. package/dist/pose/makeClipAdditive.js.map +1 -0
  163. package/dist/pose/poseMixerFlags.d.ts +18 -0
  164. package/dist/pose/poseMixerFlags.d.ts.map +1 -0
  165. package/dist/pose/poseMixerFlags.js +30 -0
  166. package/dist/pose/poseMixerFlags.js.map +1 -0
  167. package/dist/pose/quatFlat.d.ts +16 -0
  168. package/dist/pose/quatFlat.d.ts.map +1 -0
  169. package/dist/pose/quatFlat.js +88 -0
  170. package/dist/pose/quatFlat.js.map +1 -0
  171. package/dist/pose/retarget.worker.d.ts +25 -0
  172. package/dist/pose/retarget.worker.d.ts.map +1 -0
  173. package/dist/pose/retarget.worker.js +22 -0
  174. package/dist/pose/retarget.worker.js.map +1 -0
  175. package/package.json +14 -2
package/dist/FootIk.js CHANGED
@@ -250,10 +250,212 @@ function refineOverExtendedLegs(legs, solved, hipOffset) {
250
250
  function clamp(value, min, max) {
251
251
  return Math.max(min, Math.min(max, value));
252
252
  }
253
+ /** Column-major affine mat4 × point (w divide for non-TRS safety). */
254
+ function mulMat4Point(m, p) {
255
+ const x = p[0], y = p[1], z = p[2];
256
+ const w = m[3] * x + m[7] * y + m[11] * z + m[15] || 1;
257
+ return [
258
+ (m[0] * x + m[4] * y + m[8] * z + m[12]) / w,
259
+ (m[1] * x + m[5] * y + m[9] * z + m[13]) / w,
260
+ (m[2] * x + m[6] * y + m[10] * z + m[14]) / w
261
+ ];
262
+ }
253
263
  function round(value) {
254
264
  return Number(value.toFixed(4));
255
265
  }
256
266
  function roundVec(value) {
257
267
  return [round(value[0]), round(value[1]), round(value[2])];
258
268
  }
269
+ // ---------------------------------------------------------------------------
270
+ // T3.2 — pose-space foot-IK constraint (`FootIkConstraintSpec`, PRD-06 §7.1):
271
+ // consumes `solveTwoBoneIkRotations` directly on a PoseBuffer instead of the
272
+ // legacy position-space leg input. Pelvis offset is the MINIMUM of the
273
+ // per-foot ground deltas (each grounded foot's required vertical correction),
274
+ // clamped to `maxPelvisDrop` — replaces the legacy fixed `hipDropFactor`
275
+ // (0.72) on this path. Foot tilt aligns the foot bone's up axis to the ground
276
+ // normal, capped at `maxFootTiltDeg` (default 35°).
277
+ // ---------------------------------------------------------------------------
278
+ import { solveTwoBoneIkRotations } from "./IK.js";
279
+ function fkFrame(pose, skeleton, joint) {
280
+ const rot = [pose.rotations[joint * 4], pose.rotations[joint * 4 + 1], pose.rotations[joint * 4 + 2], pose.rotations[joint * 4 + 3]];
281
+ const scl = [pose.scales[joint * 3], pose.scales[joint * 3 + 1], pose.scales[joint * 3 + 2]];
282
+ const pos = [pose.positions[joint * 3], pose.positions[joint * 3 + 1], pose.positions[joint * 3 + 2]];
283
+ const parent = skeleton.parentIndices[joint] ?? -1;
284
+ if (parent < 0 || parent >= skeleton.boneCount || parent === joint) {
285
+ return { position: pos, rotation: rot, scale: scl };
286
+ }
287
+ const pf = fkFrame(pose, skeleton, parent);
288
+ const scaled = [pos[0] * pf.scale[0], pos[1] * pf.scale[1], pos[2] * pf.scale[2]];
289
+ const rotated = rotateVec3(pf.rotation, scaled);
290
+ return {
291
+ position: [pf.position[0] + rotated[0], pf.position[1] + rotated[1], pf.position[2] + rotated[2]],
292
+ rotation: multiplyQuat(pf.rotation, rot),
293
+ scale: [pf.scale[0] * scl[0], pf.scale[1] * scl[1], pf.scale[2] * scl[2]]
294
+ };
295
+ }
296
+ function rotateVec3(q, v) {
297
+ const [x, y, z, w] = q;
298
+ const tx = 2 * (y * v[2] - z * v[1]);
299
+ const ty = 2 * (z * v[0] - x * v[2]);
300
+ const tz = 2 * (x * v[1] - y * v[0]);
301
+ return [v[0] + w * tx + (y * tz - z * ty), v[1] + w * ty + (z * tx - x * tz), v[2] + w * tz + (x * ty - y * tx)];
302
+ }
303
+ function multiplyQuat(a, b) {
304
+ const [ax, ay, az, aw] = a;
305
+ const [bx, by, bz, bw] = b;
306
+ return [
307
+ ax * bw + aw * bx + ay * bz - az * by,
308
+ ay * bw + aw * by + az * bx - ax * bz,
309
+ az * bw + aw * bz + ax * by - ay * bx,
310
+ aw * bw - ax * bx - ay * by - az * bz
311
+ ];
312
+ }
313
+ function quatFromUnitVectors(from, to) {
314
+ const d = Math.max(-1, Math.min(1, from[0] * to[0] + from[1] * to[1] + from[2] * to[2]));
315
+ if (d > 1 - 1e-9)
316
+ return [0, 0, 0, 1];
317
+ if (d < -1 + 1e-9) {
318
+ const axis = Math.abs(from[0]) < 0.9 ? [1, 0, 0] : [0, 1, 0];
319
+ const c = [
320
+ from[1] * axis[2] - from[2] * axis[1],
321
+ from[2] * axis[0] - from[0] * axis[2],
322
+ from[0] * axis[1] - from[1] * axis[0]
323
+ ];
324
+ const l = Math.hypot(c[0], c[1], c[2]) || 1;
325
+ return [c[0] / l, c[1] / l, c[2] / l, 0];
326
+ }
327
+ const c = [
328
+ from[1] * to[2] - from[2] * to[1],
329
+ from[2] * to[0] - from[0] * to[2],
330
+ from[0] * to[1] - from[1] * to[0]
331
+ ];
332
+ const w = Math.sqrt((1 + d) / 2);
333
+ const s = 1 / (2 * w);
334
+ return [c[0] * s, c[1] * s, c[2] * s, w];
335
+ }
336
+ function axisAngle(axis, radians) {
337
+ const half = radians / 2;
338
+ const s = Math.sin(half);
339
+ return [axis[0] * s, axis[1] * s, axis[2] * s, Math.cos(half)];
340
+ }
341
+ function jointIndex(skeleton, name) {
342
+ const indices = skeleton.jointIndicesByName.get(name);
343
+ if (!indices || indices.length === 0)
344
+ throw new Error(`FootIkConstraint: unknown bone "${name}".`);
345
+ return indices[0];
346
+ }
347
+ /**
348
+ * T3.2 — evaluate a foot-IK constraint on a pose: for each leg, raycast the
349
+ * ground under the ankle, drop the pelvis by the deepest required correction
350
+ * (min of per-foot deltas, clamped to `maxPelvisDrop`), solve each leg's
351
+ * rotations toward `ground.point + normal * ankleHeight`, then tilt each foot
352
+ * bone toward the ground normal capped at `maxFootTiltDeg`.
353
+ *
354
+ * Returns per-leg telemetry (grounded, correction applied, tilt degrees) for
355
+ * the §17.3 foot-surface diagnostic.
356
+ */
357
+ export function solveFootIkConstraint(pose, skeleton, modelMatrix, spec) {
358
+ const ankleHeightDefault = 0.035;
359
+ const rayStartHeight = spec.rayStartHeight ?? 0.6;
360
+ const maxRayDistance = spec.maxRayDistance ?? 2;
361
+ const plantThreshold = spec.plantThreshold ?? 0.02;
362
+ const maxPelvisDrop = spec.maxPelvisDrop ?? 0.4;
363
+ const maxFootTiltDeg = spec.maxFootTiltDeg ?? 35;
364
+ const plans = [];
365
+ for (const [index, leg] of spec.legs.entries()) {
366
+ const ankleIndex = jointIndex(skeleton, leg.tip);
367
+ const ankle = fkFrame(pose, skeleton, ankleIndex).position;
368
+ // Model matrix is applied inside the solver; raycast in MODEL space via
369
+ // world coords — the scene's GroundRaycaster is defined in world space and
370
+ // T3.9 supplies an analytic caster in world units, so keep model space for
371
+ // simple rigs (identity or translation-only model matrices).
372
+ const hit = spec.ground.raycastDown([ankle[0], ankle[1] + rayStartHeight, ankle[2]], rayStartHeight + maxRayDistance);
373
+ if (!hit)
374
+ continue;
375
+ const ankleHeight = leg.ankleHeight ?? ankleHeightDefault;
376
+ const target = [
377
+ hit.point[0] + hit.normal[0] * 0,
378
+ hit.point[1] + hit.normal[1] * ankleHeight,
379
+ hit.point[2] + hit.normal[2] * 0
380
+ // Sole offsets along X/Z by the normal's horizontal part are
381
+ // intentionally ignored — the ankle sits directly over the contact.
382
+ ];
383
+ const deltaY = target[1] - ankle[1];
384
+ const grounded = Math.abs(deltaY) <= plantThreshold;
385
+ plans.push({ spec: leg, index, ankleIndex, target, normal: hit.normal, deltaY, grounded });
386
+ }
387
+ if (plans.length === 0)
388
+ return [];
389
+ // Pelvis drop = MINIMUM per-foot delta (deepest needed correction), clamped.
390
+ // The correction is expressed in pose space; the pelvis node's local
391
+ // translation lives in its parent frame, whose up axis need not be +Y and
392
+ // whose units need not be pose units (e.g. cm under a scaled glTF root) —
393
+ // map (0, drop, 0) through the parent frame's inverse rotation and scale.
394
+ if (spec.pelvis) {
395
+ const pelvisIndex = jointIndex(skeleton, spec.pelvis);
396
+ const minDelta = Math.min(0, ...plans.map((plan) => plan.deltaY));
397
+ const drop = Math.max(-maxPelvisDrop, minDelta);
398
+ if (drop !== 0) {
399
+ const parentIndex = skeleton.parentIndices[pelvisIndex] ?? -1;
400
+ const parentFrame = parentIndex >= 0 && parentIndex < skeleton.boneCount ? fkFrame(pose, skeleton, parentIndex) : undefined;
401
+ if (parentFrame !== undefined) {
402
+ const invRot = [-parentFrame.rotation[0], -parentFrame.rotation[1], -parentFrame.rotation[2], parentFrame.rotation[3]];
403
+ const dir = rotateVec3(invRot, [0, drop, 0]);
404
+ const sx = parentFrame.scale[0] || 1, sy = parentFrame.scale[1] || 1, sz = parentFrame.scale[2] || 1;
405
+ pose.positions[pelvisIndex * 3] = pose.positions[pelvisIndex * 3] + dir[0] / sx;
406
+ pose.positions[pelvisIndex * 3 + 1] = pose.positions[pelvisIndex * 3 + 1] + dir[1] / sy;
407
+ pose.positions[pelvisIndex * 3 + 2] = pose.positions[pelvisIndex * 3 + 2] + dir[2] / sz;
408
+ }
409
+ else {
410
+ pose.positions[pelvisIndex * 3 + 1] = pose.positions[pelvisIndex * 3 + 1] + drop;
411
+ }
412
+ }
413
+ }
414
+ // Pass 2 — solve legs + tilt feet.
415
+ const results = [];
416
+ for (const plan of plans) {
417
+ if (spec.lockOnContact && plan.grounded) {
418
+ results.push({ leg: plan.index, grounded: true, verticalCorrection: 0, tiltDeg: 0 });
419
+ continue;
420
+ }
421
+ // `solveTwoBoneIkRotations` takes a WORLD-space target (it maps the target
422
+ // back to model space via invertTRS(modelMatrix)); `plan.target` is model
423
+ // space — lift it to world or the mount transform is applied twice and the
424
+ // ankle aims past the real terrain.
425
+ solveTwoBoneIkRotations(pose, skeleton, modelMatrix, plan.spec, mulMat4Point(modelMatrix, plan.target));
426
+ // Foot tilt: rotate the tip bone so its local +Y (sole normal) matches the
427
+ // ground normal, capped at maxFootTiltDeg — applied in the tip's parent frame.
428
+ const frame = fkFrame(pose, skeleton, plan.ankleIndex);
429
+ const up = rotateVec3(frame.rotation, [0, 1, 0]);
430
+ const tiltQ = quatFromUnitVectors(up, plan.normal);
431
+ const tiltAngle = Math.acos(Math.max(-1, Math.min(1, tiltQ[3]))) * 2 * (180 / Math.PI);
432
+ const capped = Math.min(tiltAngle, maxFootTiltDeg);
433
+ if (capped > 1e-4 && tiltAngle > 1e-4) {
434
+ const axis = [
435
+ up[1] * plan.normal[2] - up[2] * plan.normal[1],
436
+ up[2] * plan.normal[0] - up[0] * plan.normal[2],
437
+ up[0] * plan.normal[1] - up[1] * plan.normal[0]
438
+ ];
439
+ const axisLen = Math.hypot(axis[0], axis[1], axis[2]);
440
+ if (axisLen > 1e-6) {
441
+ const nAxis = [axis[0] / axisLen, axis[1] / axisLen, axis[2] / axisLen];
442
+ const applied = axisAngle(nAxis, (capped * Math.PI) / 180);
443
+ const newWorld = multiplyQuat(applied, frame.rotation);
444
+ const parent = skeleton.parentIndices[plan.ankleIndex] ?? -1;
445
+ const parentRot = parent >= 0
446
+ ? fkFrame(pose, skeleton, parent).rotation
447
+ : [0, 0, 0, 1];
448
+ const inv = [-parentRot[0], -parentRot[1], -parentRot[2], parentRot[3]];
449
+ const local = multiplyQuat(inv, newWorld);
450
+ const l = Math.hypot(local[0], local[1], local[2], local[3]) || 1;
451
+ pose.rotations[plan.ankleIndex * 4] = local[0] / l;
452
+ pose.rotations[plan.ankleIndex * 4 + 1] = local[1] / l;
453
+ pose.rotations[plan.ankleIndex * 4 + 2] = local[2] / l;
454
+ pose.rotations[plan.ankleIndex * 4 + 3] = local[3] / l;
455
+ }
456
+ }
457
+ results.push({ leg: plan.index, grounded: false, verticalCorrection: plan.deltaY, tiltDeg: Math.min(tiltAngle, maxFootTiltDeg) });
458
+ }
459
+ return results;
460
+ }
259
461
  //# sourceMappingURL=FootIk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FootIk.js","sourceRoot":"","sources":["../../../../packages/animation/src/FootIk.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FootIk.js","sourceRoot":"","sources":["../../../../packages/animation/src/FootIk.ts"],"names":[],"mappings":"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"}
package/dist/IK.d.ts CHANGED
@@ -26,4 +26,30 @@ export declare function solveTwoBoneIk(input: TwoBoneIkInput): TwoBoneIkResult;
26
26
  * giving {@link solveTwoBoneIk} a stable bend plane (knees point forward, elbows back). Pure.
27
27
  */
28
28
  export declare function kneePoleHint(root: Vec3, mid: Vec3, forward: Vec3, distance?: number): Vec3;
29
+ import type { PoseBuffer } from "./pose/PoseBuffer.js";
30
+ import type { SkeletonBinding } from "./pose/SkeletonBinding.js";
31
+ /** PRD-06 §7.1 `TwoBoneIkConstraintSpec` — resolved against a bound skeleton by name. */
32
+ export interface TwoBoneIkConstraintSpec {
33
+ readonly root: string;
34
+ readonly mid: string;
35
+ readonly tip: string;
36
+ /** Pole plane hint: "auto" keeps the current bend plane; a point or `{bone}` steers it. */
37
+ readonly pole?: "auto" | readonly [number, number, number] | {
38
+ readonly bone: string;
39
+ };
40
+ /** Optional twist distribution bone (receives `twistWeight` of the plane-align twist). */
41
+ readonly twistBone?: string;
42
+ readonly twistWeight?: number;
43
+ /** Blend of the solve into the current pose (1 = full solve, 0 = untouched). */
44
+ readonly weight?: number;
45
+ /** Reach stretch multiplier > 1 permits targets beyond limb length. */
46
+ readonly allowStretch?: number;
47
+ }
48
+ export declare function solveTwoBoneIkRotations(pose: PoseBuffer, skeleton: SkeletonBinding, modelMatrix: Float32Array | readonly number[], spec: TwoBoneIkConstraintSpec, target: readonly [number, number, number]): void;
49
+ /**
50
+ * @deprecated PRD-06 T3.1: prefer {@link solveTwoBoneIkRotations}, which writes
51
+ * local pose rotations directly. `solveTwoBoneIk` stays for position-space
52
+ * consumers (e.g. FootIk mid points) until they migrate.
53
+ */
54
+ export type { TwoBoneIkInput as LegacyTwoBoneIkInput };
29
55
  //# sourceMappingURL=IK.d.ts.map
package/dist/IK.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"IK.d.ts","sourceRoot":"","sources":["../../../../packages/animation/src/IK.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,IAAI,EAAE,MAAM,eAAe,CAAC;AAEpD,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC;IACnB,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC;IACnB,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC;IACtB,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC;IACrB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;CACjC;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC;IACnB,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC;IACnB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,cAAc,GAAG,eAAe,CAqCrE;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,SAAI,GAAG,IAAI,CAIrF"}
1
+ {"version":3,"file":"IK.d.ts","sourceRoot":"","sources":["../../../../packages/animation/src/IK.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,IAAI,EAAE,MAAM,eAAe,CAAC;AAEpD,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC;IACnB,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC;IACnB,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC;IACtB,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC;IACrB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;CACjC;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC;IACnB,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC;IACnB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,cAAc,GAAG,eAAe,CAqCrE;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,SAAI,GAAG,IAAI,CAIrF;AAyDD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAGjE,yFAAyF;AACzF,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,2FAA2F;IAC3F,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACvF,0FAA0F;IAC1F,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,gFAAgF;IAChF,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,uEAAuE;IACvE,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;CAChC;AAiLD,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,UAAU,EAChB,QAAQ,EAAE,eAAe,EACzB,WAAW,EAAE,YAAY,GAAG,SAAS,MAAM,EAAE,EAC7C,IAAI,EAAE,uBAAuB,EAC7B,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GACxC,IAAI,CA0PN;AAGD;;;;GAIG;AACH,YAAY,EAAE,cAAc,IAAI,oBAAoB,EAAE,CAAC"}