Skip to content

Commit fa63e9d

Browse files
andrewkaufmanclaude
andcommitted
Rename contactFrictionStiffness to contactFrictionGain
The kf parameter is a velocity-dependent friction gain, not a tangential stiffness. Ordered with the other contact* attrs: contactStiffness, contactDamping, contactFrictionGain, contactAdhesion. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 06a6a8d commit fa63e9d

4 files changed

Lines changed: 17 additions & 9 deletions

File tree

CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
1+
# 0.3.1
2+
3+
## Fixes
4+
5+
- Renamed `newton:contactFrictionStiffness` to `newton:contactFrictionGain` on `NewtonMaterialAPI`; the parameter is a velocity-dependent friction gain, not a tangential stiffness
6+
17
# 0.3.0
28

39
## Features

newton_usd_schemas/_version.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
# SPDX-FileCopyrightText: Copyright (c) 2025 The Newton Developers
22
# SPDX-License-Identifier: Apache-2.0
33

4-
__version__ = "0.3.0"
4+
__version__ = "0.3.1"

newton_usd_schemas/generatedSchema.usda

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -691,13 +691,15 @@ class NewtonMaterialAPI "NewtonMaterialAPI" (
691691
}
692692
)
693693

694-
float newton:contactFrictionStiffness = -inf (
695-
doc = """Stiffness of the tangential friction response.
694+
float newton:contactFrictionGain = -inf (
695+
doc = """Friction gain controlling resistance to tangential slip.
696696

697-
At low sliding speeds, friction force equals `contactFrictionStiffness * velocity`
698-
(viscous regime); at high speeds it is clamped to the Coulomb limit `mu * normal_force`.
697+
Controls the slope of the friction force with respect to tangential slip velocity
698+
in the sticking regime. Larger values produce stronger resistance to small relative
699+
motion and more closely approximate ideal Coulomb sticking. At high speeds the
700+
friction force is clamped to the Coulomb limit `mu * normal_force`.
699701

700-
If `newton:contactFrictionStiffness` is set to `-inf`, the engine's default should be used instead.
702+
If `newton:contactFrictionGain` is set to `-inf`, the engine's default should be used instead.
701703

702704
Range: [0, inf)
703705
Units: force * time / distance"""

tests/test_material.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ def test_api_application(self):
3333
self.assertTrue(self.material.HasAttribute("newton:torsionalFriction")) # from NewtonMaterialAPI
3434
self.assertTrue(self.material.HasAttribute("newton:contactStiffness")) # from NewtonMaterialAPI
3535
self.assertTrue(self.material.HasAttribute("newton:contactDamping")) # from NewtonMaterialAPI
36-
self.assertTrue(self.material.HasAttribute("newton:contactFrictionStiffness")) # from NewtonMaterialAPI
36+
self.assertTrue(self.material.HasAttribute("newton:contactFrictionGain")) # from NewtonMaterialAPI
3737
self.assertTrue(self.material.HasAttribute("newton:contactAdhesion")) # from NewtonMaterialAPI
3838

3939
def test_api_limitations(self):
@@ -121,10 +121,10 @@ def test_contact_damping(self):
121121
self.assertIsNone(soft.GetMaximum())
122122

123123
def test_contact_friction_stiffness(self):
124-
self.assertFalse(self.material.HasAttribute("newton:contactFrictionStiffness"))
124+
self.assertFalse(self.material.HasAttribute("newton:contactFrictionGain"))
125125

126126
self.material.ApplyAPI("NewtonMaterialAPI")
127-
attr = self.material.GetAttribute("newton:contactFrictionStiffness")
127+
attr = self.material.GetAttribute("newton:contactFrictionGain")
128128
self.assertIsNotNone(attr)
129129
self.assertFalse(attr.HasAuthoredValue())
130130
self.assertEqual(attr.Get(), -math.inf)

0 commit comments

Comments
 (0)