Skip to content

Commit f4fdb6d

Browse files
committed
docs(JointAPI): clarify armature, friction, and limit attribute semantics
- armature: describe as reflected inertia from gears/rotors/transmissions, not just 'artificial' stability aid - friction: remove 'must be moving' claim; note constraint-based solvers may also resist motion at zero velocity (static friction) - limitStiffness/limitDamping: replace prescriptive 'position-based solvers always enforce hard limits' with solver-neutral note that some solvers may ignore the attribute - limitDamping: clarify damping applies to velocity in any direction while limit is exceeded, not only the penetrating direction
1 parent 447a3a9 commit f4fdb6d

1 file changed

Lines changed: 14 additions & 9 deletions

File tree

newton_usd_schemas/generatedSchema.usda

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -377,7 +377,9 @@ class NewtonJointAPI "NewtonJointAPI" (
377377
)
378378
{
379379
float newton:armature = 0 (
380-
doc = """Artificial inertia added to each degree of freedom for solver stability.
380+
doc = """Additional diagonal inertia added to each degree of freedom,
381+
representing reflected inertia from co-rotating elements (gears,
382+
rotors, transmissions) and/or solver regularization.
381383

382384
In reduced-coordinate solvers this augments the joint-space mass
383385
matrix diagonal. In maximal-coordinate solvers it regularizes the
@@ -416,8 +418,9 @@ class NewtonJointAPI "NewtonJointAPI" (
416418
doc = """Dry (Coulomb) friction effort opposing joint motion.
417419

418420
A constant resistive effort that opposes the direction of motion,
419-
independent of velocity magnitude. The joint must be moving for
420-
this effort to apply.
421+
independent of velocity magnitude. Solvers that implement this as
422+
a constraint may also resist motion at zero velocity (static
423+
friction up to the specified magnitude).
421424

422425
The value is broadcast to all DOFs of the joint.
423426

@@ -457,8 +460,8 @@ class NewtonJointAPI "NewtonJointAPI" (
457460

458461
A value of `inf` is interpreted as a hard limit: solvers that support
459462
both soft and hard limits enforce the limit as a rigid positional
460-
constraint (no spring). Position-based solvers always enforce hard
461-
positional constraints regardless of this attribute.
463+
constraint (no spring). Note: some solvers may ignore this attribute
464+
and always enforce hard positional constraints.
462465

463466
A value of `-inf` means the engine's own default stiffness is used.
464467

@@ -472,12 +475,14 @@ class NewtonJointAPI "NewtonJointAPI" (
472475
doc = """Damping of the joint limit spring.
473476

474477
When a DOF's position exceeds the range defined by the joint limits,
475-
a velocity-dependent dissipative effort is applied:
476-
`effort = -limitDamping * velocity`.
478+
a velocity-dependent dissipative effort is applied in any direction:
479+
`effort = -limitDamping * velocity`. This damps all joint velocity
480+
while the limit is exceeded, not only velocity in the penetrating
481+
direction.
477482

478483
Ignored when `limitStiffness` is `inf` (hard limit): a hard limit has
479-
no spring to damp. Position-based solvers always enforce hard positional
480-
constraints regardless of this attribute.
484+
no spring to damp. Note: some solvers may ignore this attribute and
485+
always enforce hard positional constraints.
481486

482487
A value of `-inf` means the engine's own default damping is used.
483488

0 commit comments

Comments
 (0)