@helix3/helix-cli 0.1.15-helix3.225 → 0.1.15-helix3.226

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.
@@ -12,21 +12,22 @@
12
12
  * Chains and colliders map across almost mechanically. The parameters do not, and this is where every naive
13
13
  * converter goes wrong — including, by its own admission, VRChat's:
14
14
  *
15
- * · VRM `stiffness` is **world units per second**. It is added to the tail as a VELOCITY (`axis * stiffness *
16
- * dt`), not as a force. Its angular effect therefore depends on bone length, and a converter that copies the
17
- * number into a normalised 0..1 field is wrong by one to two orders of magnitude. The equivalent restoring
18
- * rate is `stiffness / boneLength` rad/s, which is what maps onto ω.
15
+ * · VRM `stiffness` is **world units per second**. It is added to the tail as `axis * stiffness * dt`, then the
16
+ * tail is projected back to its authored bone length. The projection couples stiffness, bone length and drag;
17
+ * none of the three can be converted independently without changing the response.
19
18
  *
20
- * · VRM `dragForce` is a per-FRAME velocity multiplier, not per second. That is also why three-vrm hair
21
- * measurably swings ~2.3x faster at 144 fps than at 30 — the drag is applied once per frame while stiffness
22
- * and gravity are scaled by dt. Converting it means picking the frame rate it was authored against; 60 Hz is
23
- * the only defensible choice, and it is what every authoring tool previews at.
19
+ * · VRM `dragForce` is a per-FRAME velocity multiplier. Three-vrm's reference Verlet step retains
20
+ * `(1 - dragForce)` of the previous displacement once per update while stiffness and gravity are scaled by
21
+ * dt. Converting it means choosing the frame rate it was authored against; 60 Hz is the preview convention.
22
+ * We linearise that exact projected step and map its two discrete poles to the continuous spring's poles.
23
+ * This preserves both oscillation frequency and decay instead of equating velocity retention alone, which
24
+ * over-damped ordinary VRoid hair and flattened distinct authored values at the critical-damping clamp.
24
25
  *
25
26
  * · VRM `gravityPower` is likewise a velocity, not an acceleration, so it cannot be read as m/s². The
26
27
  * conversion goes through the EQUILIBRIUM instead: in VRM the rest droop satisfies
27
- * `tan θ ≈ gravityPower / stiffness`, and in this solver the sag is `g / ω²` over a bone of length L. Setting
28
- * those equal gives `g = gravityPower * stiffness / L`, which preserves how far a chain hangs rather than
29
- * preserving a number that means something different on each side.
28
+ * `tan θ ≈ gravityPower / stiffness`, and in this solver the sag is `g / (ω²L)`. Setting those equal gives
29
+ * `g = gravityPower * ω²L / stiffness`, using the bounded ω this converter actually emits. That preserves
30
+ * how far a chain hangs rather than preserving a number that means something different on each side.
30
31
  *
31
32
  * None of this is exact, and it is not claimed to be. The research that produced these relations fitted them
32
33
  * numerically and found parameter recovery good but multi-joint waveforms drifting in phase over seconds. The
@@ -81,25 +82,40 @@ export interface VrmImportResult {
81
82
  }
82
83
  /** ω (rad/s) → the contract's normalised 0..1 stiffness. The inverse of `stiffnessToOmega`. */
83
84
  export declare function omegaToStiffness(omega: number): number;
85
+ /** Continuous response plus its bounded `helix/dynamics@1` representation. */
86
+ export interface ConvertedSpring {
87
+ /** Unclamped continuous natural frequency, in rad/s. */
88
+ omega: number;
89
+ /** Unclamped continuous damping ratio. Values above one cannot be represented by dynamics@1. */
90
+ dampingRatio: number;
91
+ /** Natural frequency of the closest representable response, before the engine's 2..40 rad/s clamp. */
92
+ mappedOmega: number;
93
+ /** Natural frequency after the dynamics@1 clamp; this is what the runtime actually solves. */
94
+ engineOmega: number;
95
+ /** Damping ratio of the bounded dynamics@1 representation. */
96
+ mappedDampingRatio: number;
97
+ /** Normalised dynamics@1 stiffness. */
98
+ stiffness: number;
99
+ /** Normalised dynamics@1 damping. */
100
+ damping: number;
101
+ }
84
102
  /**
85
- * VRM `stiffness` (world units/second) + bone length → the contract's normalised stiffness.
103
+ * Convert one VRM projected-Verlet joint to the continuous `helix/dynamics@1` spring.
86
104
  *
87
- * A short bone with the same VRM stiffness returns faster in angle, which is why length is in here at all.
88
- */
89
- export declare function convertStiffness(vrmStiffness: number, boneLengthM: number): number;
90
- /**
91
- * VRM `dragForce` (per-frame velocity retention) → damping ratio ζ.
105
+ * For a small angular displacement `x`, three-vrm's documented update linearises to:
106
+ *
107
+ * q = 1 + (stiffness / boneLength) dt
108
+ * x[n+1] = ((1 + retention) / q) x[n] - (retention / q) x[n-1]
92
109
  *
93
- * Retention over one second at the authoring rate is `(1 − drag)^hz`; this solver decays velocity as
94
- * `exp(−ζω t)`. Equating them gives `ζ = −hz·ln(1 − drag) / ω`. Heavily-dragged chains clamp at critical
95
- * damping, which is correct behaviour rather than a lost parameter: past critical, more damping only makes a
96
- * chain slower, and an author who wanted that wanted lower stiffness.
110
+ * The roots of that recurrence are the response sampled at the authoring rate. Mapping their magnitude and
111
+ * phase to `exp((-ζω ± iωd)dt)` gives the continuous spring parameters directly. Dynamics@1 cannot express an
112
+ * overdamped response, so real positive roots map to a critical spring at the slow pole's rate. That preserves
113
+ * the visible return tail by lowering stiffness, as the contract requires, instead of clamping damping while
114
+ * retaining the geometric-mean frequency and making a heavily dragged chain snap back too quickly.
97
115
  */
98
- export declare function convertDamping(dragForce: number, omega: number, hz?: number): number;
99
- /** The unclamped ζ, so the caller can tell the creator when a value saturated instead of silently flattening it. */
100
- export declare function rawDampingRatio(dragForce: number, omega: number, hz?: number): number;
116
+ export declare function convertSpring(vrmStiffness: number, dragForce: number, boneLengthM: number, hz?: number): ConvertedSpring;
101
117
  /** VRM `gravityPower` → a multiplier on real world gravity, via the equilibrium droop. See the header. */
102
- export declare function convertGravity(gravityPower: number, vrmStiffness: number, boneLengthM: number): number;
118
+ export declare function convertGravity(gravityPower: number, vrmStiffness: number, boneLengthM: number, engineOmega: number): number;
103
119
  /**
104
120
  * Guess how much a chain matters from its bone names.
105
121
  *
@@ -13,21 +13,22 @@
13
13
  * Chains and colliders map across almost mechanically. The parameters do not, and this is where every naive
14
14
  * converter goes wrong — including, by its own admission, VRChat's:
15
15
  *
16
- * · VRM `stiffness` is **world units per second**. It is added to the tail as a VELOCITY (`axis * stiffness *
17
- * dt`), not as a force. Its angular effect therefore depends on bone length, and a converter that copies the
18
- * number into a normalised 0..1 field is wrong by one to two orders of magnitude. The equivalent restoring
19
- * rate is `stiffness / boneLength` rad/s, which is what maps onto ω.
16
+ * · VRM `stiffness` is **world units per second**. It is added to the tail as `axis * stiffness * dt`, then the
17
+ * tail is projected back to its authored bone length. The projection couples stiffness, bone length and drag;
18
+ * none of the three can be converted independently without changing the response.
20
19
  *
21
- * · VRM `dragForce` is a per-FRAME velocity multiplier, not per second. That is also why three-vrm hair
22
- * measurably swings ~2.3x faster at 144 fps than at 30 — the drag is applied once per frame while stiffness
23
- * and gravity are scaled by dt. Converting it means picking the frame rate it was authored against; 60 Hz is
24
- * the only defensible choice, and it is what every authoring tool previews at.
20
+ * · VRM `dragForce` is a per-FRAME velocity multiplier. Three-vrm's reference Verlet step retains
21
+ * `(1 - dragForce)` of the previous displacement once per update while stiffness and gravity are scaled by
22
+ * dt. Converting it means choosing the frame rate it was authored against; 60 Hz is the preview convention.
23
+ * We linearise that exact projected step and map its two discrete poles to the continuous spring's poles.
24
+ * This preserves both oscillation frequency and decay instead of equating velocity retention alone, which
25
+ * over-damped ordinary VRoid hair and flattened distinct authored values at the critical-damping clamp.
25
26
  *
26
27
  * · VRM `gravityPower` is likewise a velocity, not an acceleration, so it cannot be read as m/s². The
27
28
  * conversion goes through the EQUILIBRIUM instead: in VRM the rest droop satisfies
28
- * `tan θ ≈ gravityPower / stiffness`, and in this solver the sag is `g / ω²` over a bone of length L. Setting
29
- * those equal gives `g = gravityPower * stiffness / L`, which preserves how far a chain hangs rather than
30
- * preserving a number that means something different on each side.
29
+ * `tan θ ≈ gravityPower / stiffness`, and in this solver the sag is `g / (ω²L)`. Setting those equal gives
30
+ * `g = gravityPower * ω²L / stiffness`, using the bounded ω this converter actually emits. That preserves
31
+ * how far a chain hangs rather than preserving a number that means something different on each side.
31
32
  *
32
33
  * None of this is exact, and it is not claimed to be. The research that produced these relations fitted them
33
34
  * numerically and found parameter recovery good but multi-joint waveforms drifting in phase over seconds. The
@@ -36,9 +37,7 @@
36
37
  Object.defineProperty(exports, "__esModule", { value: true });
37
38
  exports.CENTRE_INERTIA = exports.VRM_ASSUMED_AUTHORING_HZ = void 0;
38
39
  exports.omegaToStiffness = omegaToStiffness;
39
- exports.convertStiffness = convertStiffness;
40
- exports.convertDamping = convertDamping;
41
- exports.rawDampingRatio = rawDampingRatio;
40
+ exports.convertSpring = convertSpring;
42
41
  exports.convertGravity = convertGravity;
43
42
  exports.guessImportance = guessImportance;
44
43
  exports.convertVrmDynamics = convertVrmDynamics;
@@ -68,39 +67,103 @@ function omegaToStiffness(omega) {
68
67
  return Math.sqrt((clamped - STIFFNESS_MIN_OMEGA) / (STIFFNESS_MAX_OMEGA - STIFFNESS_MIN_OMEGA));
69
68
  }
70
69
  /**
71
- * VRM `stiffness` (world units/second) + bone length → the contract's normalised stiffness.
70
+ * Convert one VRM projected-Verlet joint to the continuous `helix/dynamics@1` spring.
72
71
  *
73
- * A short bone with the same VRM stiffness returns faster in angle, which is why length is in here at all.
74
- */
75
- function convertStiffness(vrmStiffness, boneLengthM) {
76
- const length = Math.max(boneLengthM, 1e-3);
77
- return omegaToStiffness(Math.max(vrmStiffness, 0) / length);
78
- }
79
- /**
80
- * VRM `dragForce` (per-frame velocity retention) → damping ratio ζ.
72
+ * For a small angular displacement `x`, three-vrm's documented update linearises to:
81
73
  *
82
- * Retention over one second at the authoring rate is `(1 − drag)^hz`; this solver decays velocity as
83
- * `exp(−ζω t)`. Equating them gives `ζ = −hz·ln(1 − drag) / ω`. Heavily-dragged chains clamp at critical
84
- * damping, which is correct behaviour rather than a lost parameter: past critical, more damping only makes a
85
- * chain slower, and an author who wanted that wanted lower stiffness.
74
+ * q = 1 + (stiffness / boneLength) dt
75
+ * x[n+1] = ((1 + retention) / q) x[n] - (retention / q) x[n-1]
76
+ *
77
+ * The roots of that recurrence are the response sampled at the authoring rate. Mapping their magnitude and
78
+ * phase to `exp((-ζω ± iωd)dt)` gives the continuous spring parameters directly. Dynamics@1 cannot express an
79
+ * overdamped response, so real positive roots map to a critical spring at the slow pole's rate. That preserves
80
+ * the visible return tail by lowering stiffness, as the contract requires, instead of clamping damping while
81
+ * retaining the geometric-mean frequency and making a heavily dragged chain snap back too quickly.
86
82
  */
87
- function convertDamping(dragForce, omega, hz = exports.VRM_ASSUMED_AUTHORING_HZ) {
88
- return Math.min(Math.max(rawDampingRatio(dragForce, omega, hz), 0), 1);
89
- }
90
- /** The unclamped ζ, so the caller can tell the creator when a value saturated instead of silently flattening it. */
91
- function rawDampingRatio(dragForce, omega, hz = exports.VRM_ASSUMED_AUTHORING_HZ) {
92
- const drag = Math.min(Math.max(dragForce, 0), 0.999);
93
- if (drag <= 0)
94
- return 0;
95
- return (-hz * Math.log(1 - drag)) / Math.max(omega, 1e-3);
83
+ function convertSpring(vrmStiffness, dragForce, boneLengthM, hz = exports.VRM_ASSUMED_AUTHORING_HZ) {
84
+ const safeHz = Number.isFinite(hz) ? Math.max(hz, 1e-3) : exports.VRM_ASSUMED_AUTHORING_HZ;
85
+ const dt = 1 / safeHz;
86
+ const finiteLength = Number.isFinite(boneLengthM) ? boneLengthM : 0.07;
87
+ const length = Math.max(finiteLength, 1e-3);
88
+ const finiteStiffness = Number.isFinite(vrmStiffness) ? vrmStiffness : 0;
89
+ const restoringRate = Math.max(finiteStiffness, 0) / length;
90
+ const finiteDrag = Number.isFinite(dragForce) ? dragForce : 0.5;
91
+ const drag = Math.min(Math.max(finiteDrag, 0), 1);
92
+ const retention = 1 - drag;
93
+ const projectionScale = 1 + restoringRate * dt;
94
+ const trace = (1 + retention) / projectionScale;
95
+ const determinant = retention / projectionScale;
96
+ const discriminant = trace * trace - 4 * determinant;
97
+ let omega;
98
+ let dampingRatio;
99
+ let decayRate;
100
+ let mappedOmega;
101
+ if (retention <= Number.EPSILON) {
102
+ // dragForce=1 removes the second pole entirely. Preserve its one finite return rate with the closest
103
+ // representable response: a critically damped spring at the same slow-pole rate.
104
+ decayRate = Math.log(projectionScale) / dt;
105
+ omega = decayRate;
106
+ dampingRatio = 1;
107
+ mappedOmega = decayRate;
108
+ }
109
+ else if (discriminant < 0) {
110
+ const magnitude = Math.sqrt(determinant);
111
+ decayRate = -Math.log(magnitude) / dt;
112
+ const phase = Math.acos(Math.min(Math.max(trace / (2 * magnitude), -1), 1));
113
+ const dampedOmega = phase / dt;
114
+ omega = Math.hypot(decayRate, dampedOmega);
115
+ dampingRatio = omega > 0 ? decayRate / omega : 1;
116
+ mappedOmega = omega;
117
+ }
118
+ else {
119
+ const rootDelta = Math.sqrt(discriminant);
120
+ const slowRoot = Math.max((trace + rootDelta) / 2, Number.EPSILON);
121
+ const fastRoot = Math.max((trace - rootDelta) / 2, Number.EPSILON);
122
+ const slowRate = -Math.log(slowRoot) / dt;
123
+ const fastRate = -Math.log(fastRoot) / dt;
124
+ const rateProduct = Math.max(slowRate * fastRate, 0);
125
+ omega = Math.sqrt(rateProduct);
126
+ decayRate = (slowRate + fastRate) / 2;
127
+ dampingRatio = omega > 1e-8 ? (slowRate + fastRate) / (2 * omega) : 1;
128
+ // A critical spring has one repeated pole. Preserve the source's dominant return pole rather than its
129
+ // geometric-mean natural frequency; keeping the latter while clamping zeta to one can be many times faster.
130
+ mappedOmega = Math.max(slowRate, 0);
131
+ }
132
+ if (!Number.isFinite(omega))
133
+ omega = STIFFNESS_MAX_OMEGA;
134
+ if (!Number.isFinite(dampingRatio))
135
+ dampingRatio = 1;
136
+ if (!Number.isFinite(decayRate))
137
+ decayRate = omega;
138
+ if (!Number.isFinite(mappedOmega))
139
+ mappedOmega = STIFFNESS_MAX_OMEGA;
140
+ const engineOmega = Math.min(Math.max(mappedOmega, STIFFNESS_MIN_OMEGA), STIFFNESS_MAX_OMEGA);
141
+ const mappedDampingRatio = dampingRatio > 1 || mappedOmega <= 1e-8 ? 1 : decayRate / engineOmega;
142
+ return {
143
+ omega,
144
+ dampingRatio,
145
+ mappedOmega,
146
+ engineOmega,
147
+ mappedDampingRatio,
148
+ stiffness: omegaToStiffness(mappedOmega),
149
+ damping: Math.min(Math.max(mappedDampingRatio, 0), 1),
150
+ };
96
151
  }
97
152
  /** VRM `gravityPower` → a multiplier on real world gravity, via the equilibrium droop. See the header. */
98
- function convertGravity(gravityPower, vrmStiffness, boneLengthM) {
99
- if (gravityPower <= 0)
153
+ function convertGravity(gravityPower, vrmStiffness, boneLengthM, engineOmega) {
154
+ if (!Number.isFinite(gravityPower) || gravityPower <= 0)
100
155
  return 0;
101
- const length = Math.max(boneLengthM, 1e-3);
102
- const accel = (gravityPower * Math.max(vrmStiffness, 1e-3)) / length;
103
- return Math.min(accel / WORLD_GRAVITY, 8);
156
+ const stiffness = Number.isFinite(vrmStiffness) ? Math.max(vrmStiffness, 0) : 0;
157
+ // Gravity with no restoring term has no finite VRM equilibrium: the joint falls as far as its length allows.
158
+ // The bounded V1 contract cannot express that exactly, so retain the fully-drooped intent with its max force.
159
+ if (stiffness <= Number.EPSILON)
160
+ return 8;
161
+ const finiteLength = Number.isFinite(boneLengthM) ? boneLengthM : 0.07;
162
+ const length = Math.max(finiteLength, 1e-3);
163
+ const finiteOmega = Number.isFinite(engineOmega) ? engineOmega : STIFFNESS_MIN_OMEGA;
164
+ const boundedOmega = Math.min(Math.max(finiteOmega, STIFFNESS_MIN_OMEGA), STIFFNESS_MAX_OMEGA);
165
+ const accel = (gravityPower * boundedOmega * boundedOmega * length) / stiffness;
166
+ return Math.min(Math.max(accel / WORLD_GRAVITY, 0), 8);
104
167
  }
105
168
  /**
106
169
  * Guess how much a chain matters from its bone names.
@@ -230,9 +293,9 @@ function convertVrm1(nodes, springBone) {
230
293
  const dragRaw = numberOr(first.dragForce, 0.5);
231
294
  const gravityPower = numberOr(first.gravityPower, 0);
232
295
  const length = boneLength(nodes, rootIndex);
233
- const omega = Math.max(stiffnessRaw, 0) / Math.max(length, 1e-3);
296
+ const spring = convertSpring(stiffnessRaw, dragRaw, length);
234
297
  const name = typeof raw.name === 'string' && raw.name.length > 0 ? raw.name : root;
235
- noteSaturation(warnings, name, omega, dragRaw);
298
+ noteSaturation(warnings, name, spring, dragRaw);
236
299
  const chainColliders = [];
237
300
  for (const groupIndex of Array.isArray(raw.colliderGroups) ? raw.colliderGroups : []) {
238
301
  for (const id of groups[Number(groupIndex)] ?? [])
@@ -246,9 +309,9 @@ function convertVrm1(nodes, springBone) {
246
309
  id: sanitiseId(`${name}_${index}`, `spring_${index}`),
247
310
  root,
248
311
  importance: guessImportance(name),
249
- stiffness: convertStiffness(stiffnessRaw, length),
250
- damping: convertDamping(dragRaw, omega),
251
- gravity: convertGravity(gravityPower, stiffnessRaw, length),
312
+ stiffness: spring.stiffness,
313
+ damping: spring.damping,
314
+ gravity: convertGravity(gravityPower, stiffnessRaw, length, spring.engineOmega),
252
315
  ...(Array.isArray(first.gravityDir) && first.gravityDir.length === 3
253
316
  ? { gravityDir: first.gravityDir.slice(0, 3) } : {}),
254
317
  ...(hitRadius > 0 && chainColliders.length > 0
@@ -313,16 +376,16 @@ function convertVrm0(nodes, secondary) {
313
376
  if (root === null)
314
377
  return;
315
378
  const length = boneLength(nodes, rootIndex);
316
- const omega = Math.max(stiffnessRaw, 0) / Math.max(length, 1e-3);
317
- noteSaturation(warnings, root, omega, dragRaw);
379
+ const spring = convertSpring(stiffnessRaw, dragRaw, length);
380
+ noteSaturation(warnings, root, spring, dragRaw);
318
381
  chains.push({
319
382
  ...(hasCentre ? { inertia: exports.CENTRE_INERTIA } : {}),
320
383
  id: sanitiseId(`${root}_${groupIndex}_${i}`, `spring_${groupIndex}_${i}`),
321
384
  root,
322
385
  importance: guessImportance(`${comment} ${root}`),
323
- stiffness: convertStiffness(stiffnessRaw, length),
324
- damping: convertDamping(dragRaw, omega),
325
- gravity: convertGravity(gravityPower, stiffnessRaw, length),
386
+ stiffness: spring.stiffness,
387
+ damping: spring.damping,
388
+ gravity: convertGravity(gravityPower, stiffnessRaw, length, spring.engineOmega),
326
389
  ...(isRecord(raw.gravityDir)
327
390
  ? { gravityDir: [numberOr(raw.gravityDir.x, 0), numberOr(raw.gravityDir.y, -1), -numberOr(raw.gravityDir.z, 0)] }
328
391
  : {}),
@@ -339,21 +402,20 @@ function convertVrm0(nodes, secondary) {
339
402
  /**
340
403
  * Record where a source value fell outside the contract's expressible range.
341
404
  *
342
- * Both clamps are faithful readings rather than lost data — a chain past critical damping only gets slower, and
343
- * one past 40 rad/s is already visually rigid — but a creator comparing their avatar side by side deserves to
344
- * be told which knob stopped mattering rather than left to wonder why two chains they tuned differently now
345
- * look the same.
405
+ * Both conversions are reported — an overdamped chain has its slow return pole preserved with lower stiffness,
406
+ * and a representable response past 40 rad/s is already visually rigid. A creator comparing side by side
407
+ * deserves to know which knob stopped mattering rather than wonder why two chains they tuned differently move
408
+ * the same.
346
409
  */
347
410
  function centreNote(name) {
348
411
  return `'${name}': declares a center node; approximated with inertia ${exports.CENTRE_INERTIA} (true centre-space is a V2 item)`;
349
412
  }
350
- function noteSaturation(warnings, name, omega, dragForce) {
351
- if (omega > STIFFNESS_MAX_OMEGA) {
352
- warnings.push(`'${name}': stiffness maps to ${omega.toFixed(0)} rad/s, clamped to ${STIFFNESS_MAX_OMEGA} — it will read as rigid, which is how it already read`);
413
+ function noteSaturation(warnings, name, spring, dragForce) {
414
+ if (spring.mappedOmega > STIFFNESS_MAX_OMEGA) {
415
+ warnings.push(`'${name}': response maps to ${spring.mappedOmega.toFixed(0)} rad/s, clamped to ${STIFFNESS_MAX_OMEGA} — it will read as rigid, which is how it already read`);
353
416
  }
354
- const zeta = rawDampingRatio(dragForce, omega);
355
- if (zeta > 1) {
356
- warnings.push(`'${name}': dragForce ${dragForce} is overdamped (zeta ${zeta.toFixed(1)}), clamped to critical — it will not overshoot, and it did not before either`);
417
+ if (spring.dampingRatio > 1) {
418
+ warnings.push(`'${name}': dragForce ${dragForce} produces an overdamped response (zeta ${spring.dampingRatio.toFixed(1)}), fitted to critical damping at its slow return rate`);
357
419
  }
358
420
  }
359
421
  //# sourceMappingURL=vrmDynamics.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"vrmDynamics.js","sourceRoot":"","sources":["../../../src/character/stages/vrmDynamics.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vrmDynamics.js","sourceRoot":"","sources":["../../../src/character/stages/vrmDynamics.ts"],"names":[],"mappings":"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"}