Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
39 commits
Select commit Hold shift + click to select a range
cd6ed53
Add `CollidableShapeType` enum
flferretti Sep 12, 2025
d8bae76
Transition to `CollidableShape` and define collidables classes
flferretti Sep 12, 2025
6fe426a
Update collidable shape builders
flferretti Sep 12, 2025
740b8cf
Transition to collidable shapes naming
flferretti Sep 12, 2025
3c78f86
Add SDF for spheres, boxes and cylinders
flferretti Sep 12, 2025
a5ad4d8
Update computation of penetration API
flferretti Sep 12, 2025
28d3568
Update Hunt-Crossley model to work with collidable shapes
flferretti Sep 12, 2025
93c16cb
Update `ContactParameters` class and add collision shape map
flferretti Sep 12, 2025
592cfc8
Fix contact force orientation
flferretti Sep 15, 2025
c447ba6
Update arguments of Hunt-Crossley model
flferretti Sep 16, 2025
3edf36c
Remove `collidable_shapes` module
flferretti Sep 16, 2025
d650ca5
Update link force summation
flferretti Sep 16, 2025
7edec47
Fix SDF functions for boxes and cylinders
flferretti Sep 16, 2025
da43c63
Update `compute_penetration_data` return variables
flferretti Sep 17, 2025
2d822a2
Update logic for enabling contact forces computation
flferretti Sep 17, 2025
6fefe15
Polish SDF implementations
flferretti Sep 17, 2025
444d915
Vectorize Hunt-Crossley model over shape types
flferretti Sep 17, 2025
26b3c88
Match `CollidableShapeType` enum with `LinkParametrizableShape`
flferretti Sep 17, 2025
cec6d50
Update `contact.transforms` for collidable shapes
flferretti Sep 17, 2025
54cbb67
Update `contact.jacobians` for collidable shapes
flferretti Sep 17, 2025
bad1f69
Update `contact.jacobian_derivatives` for collidable shapes
flferretti Sep 17, 2025
43524fe
Update `RelaxedRigid` contact model for collidable shapes
flferretti Sep 17, 2025
5fd741d
Remove mesh collision support
flferretti Sep 17, 2025
b1e054a
Fix contact API test
flferretti Sep 18, 2025
d038095
Fix collisions parsing contact API
flferretti Sep 18, 2025
f0de993
Fix contact Jacobian derivative
flferretti Sep 19, 2025
c0840d0
Consider collision shape offset wrt link center
flferretti Sep 19, 2025
76f72a7
Add `.DS_Store` to `.gitignore`
flferretti Oct 22, 2025
c32f2d6
Save collision shape to link transform
flferretti Oct 24, 2025
5078049
Refactor contact models to use shape transforms
flferretti Oct 24, 2025
33bd9f9
Handle collision lumping when reducing models
flferretti Oct 24, 2025
8192780
Avoid to save unsupported collision attributes
flferretti Oct 28, 2025
38698ec
Update cylinder collision configuration
flferretti Oct 28, 2025
9997126
Use JAX NumPy to build contact frame
flferretti Oct 29, 2025
67bf77c
Fix contact API tests
flferretti Nov 19, 2025
d40634b
Allow selecting collidable links
flferretti Nov 19, 2025
3025fee
Fix automatic differentiation tests
flferretti Nov 24, 2025
3b7e0f4
Fix mixed representation in contact Jacobian derivative
flferretti Nov 24, 2025
a70564e
Fix rigid contact model
flferretti Nov 24, 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 @@ -224,8 +223,7 @@ jax-dataclasses = "*"
pptree = "*"
optax = "*"
qpax = "*"
rod = ">=0.4.1"
trimesh = "*"
rod = "*"
typing_extensions = "*"
#
# Optional dependencies.
Expand Down
Loading
Loading