Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
73f0abe
Add `CollidableShapeType` enum
flferretti Sep 12, 2025
274da77
Transition to `CollidableShape` and define collidables classes
flferretti Sep 12, 2025
c8953eb
Update collidable shape builders
flferretti Sep 12, 2025
1713a0f
Transition to collidable shapes naming
flferretti Sep 12, 2025
6c67095
Add SDF for spheres, boxes and cylinders
flferretti Sep 12, 2025
8f02340
Update computation of penetration API
flferretti Sep 12, 2025
a8793c9
Update Hunt-Crossley model to work with collidable shapes
flferretti Sep 12, 2025
da4925c
Update `ContactParameters` class and add collision shape map
flferretti Sep 12, 2025
8fa3a1e
Fix contact force orientation
flferretti Sep 15, 2025
4304171
Update arguments of Hunt-Crossley model
flferretti Sep 16, 2025
b2eebb8
Remove `collidable_shapes` module
flferretti Sep 16, 2025
da4dea0
Update link force summation
flferretti Sep 16, 2025
a107d0b
Fix SDF functions for boxes and cylinders
flferretti Sep 16, 2025
cb45deb
Update `compute_penetration_data` return variables
flferretti Sep 17, 2025
01e67f4
Update logic for enabling contact forces computation
flferretti Sep 17, 2025
721e2d5
Polish SDF implementations
flferretti Sep 17, 2025
4760402
Vectorize Hunt-Crossley model over shape types
flferretti Sep 17, 2025
3c1da03
Match `CollidableShapeType` enum with `LinkParametrizableShape`
flferretti Sep 17, 2025
d408a8f
Update `contact.transforms` for collidable shapes
flferretti Sep 17, 2025
ed7f861
Update `contact.jacobians` for collidable shapes
flferretti Sep 17, 2025
1c6cf91
Update `contact.jacobian_derivatives` for collidable shapes
flferretti Sep 17, 2025
713b8b6
Update `RelaxedRigid` contact model for collidable shapes
flferretti Sep 17, 2025
eef9a7e
Remove mesh collision support
flferretti Sep 17, 2025
91f80b4
Fix contact API test
flferretti Sep 18, 2025
c830949
Fix collisions parsing contact API
flferretti Sep 18, 2025
9057ba2
Fix contact Jacobian derivative
flferretti Sep 19, 2025
ae55a70
Consider collision shape offset wrt link center
flferretti Sep 19, 2025
af5c206
Add `.DS_Store` to `.gitignore`
flferretti Oct 22, 2025
e3113f2
Save collision shape to link transform
flferretti Oct 24, 2025
2d16aa6
Refactor contact models to use shape transforms
flferretti Oct 24, 2025
6aeeb65
Handle collision lumping when reducing models
flferretti Oct 24, 2025
5bc8a4c
Avoid to save unsupported collision attributes
flferretti Oct 28, 2025
863ed0a
Update cylinder collision configuration
flferretti Oct 28, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -151,3 +151,6 @@ src/jaxsim/_version.py
# data
.mp4
.png

# macOS
.DS_Store
13 changes: 1 addition & 12 deletions docs/guide/configuration.rst
Original file line number Diff line number Diff line change
Expand Up @@ -9,21 +9,10 @@ Collision Dynamics

Environment variables starting with ``JAXSIM_COLLISION_`` are used to configure collision dynamics. The available variables are:

- ``JAXSIM_COLLISION_SPHERE_POINTS``: Specifies the number of collision points to approximate the sphere.

*Default:* ``50``.

- ``JAXSIM_COLLISION_MESH_ENABLED``: Enables or disables mesh-based collision detection.
- ``JAXSIM_COLLISION_ENABLE_CYLINDER``: Enables collision dynamics for cylindrical geometries.

*Default:* ``False``.

- ``JAXSIM_COLLISION_USE_BOTTOM_ONLY``: Limits collision detection to only the bottom half of the box or sphere.

*Default:* ``False``.

.. note::
The bottom half is defined as the half of the box or sphere with the lowest z-coordinate in the collision link frame.


Testing
~~~~~~~
Expand Down
1 change: 0 additions & 1 deletion environment.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@ dependencies:
- pptree
- qpax
- rod >= 0.3.3
- trimesh
- typing_extensions # python<3.12
# ====================================
# Optional dependencies from setup.cfg
Expand Down
5 changes: 1 addition & 4 deletions examples/jaxsim_as_physics_engine_advanced.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -130,10 +130,7 @@
"# JaxSim currently only supports collisions between points attached to bodies\n",
"# and a ground surface modeled as a heightmap sampled from a smooth function.\n",
"# While this approach is universal as it applies to generic meshes, the number\n",
"# of considered points greatly affects the performance. Spheres, by default,\n",
"# are discretized with 250 points. It's too much for this simple example.\n",
"# This number can be decreased with the following environment variable.\n",
"os.environ[\"JAXSIM_COLLISION_SPHERE_POINTS\"] = \"50\""
"# of considered points greatly affects the performance."
]
},
{
Expand Down
4 changes: 2 additions & 2 deletions pixi.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 1 addition & 3 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,6 @@ dependencies = [
"qpax",
"rod >= 0.4.1",
"typing_extensions ; python_version < '3.12'",
"trimesh",
]

[project.optional-dependencies]
Expand Down Expand Up @@ -223,8 +222,7 @@ jax-dataclasses = "*"
pptree = "*"
optax = "*"
qpax = "*"
rod = ">=0.4.1"
trimesh = "*"
rod = "*"
typing_extensions = "*"
#
# Optional dependencies.
Expand Down
Loading
Loading