Skip to content

Conversation

@flferretti
Copy link
Collaborator

@flferretti flferretti commented Dec 18, 2025

This PR refactors the handling of velocity representations throughout the codebase, moving away from the deprecated switch_velocity_representation context manager and instead encouraging the explicit use of input_representation and output_representation parameters in relevant API methods. The backward compatibility is maintained.

Fixes https://github.com/gbionics/element_differentiable_simulators_for_codesign/issues/31


📚 Documentation preview 📚: https://jaxsim--496.org.readthedocs.build//496/

@flferretti flferretti self-assigned this Dec 18, 2025
Copy link
Contributor

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Benchmark

Details
Benchmark suite Current: 132f760 Previous: c28e89a Ratio
tests/test_benchmark.py::test_forward_dynamics_aba[1] 319.2614265783487 iter/sec (stddev: 0.000007687928414904411) 385.94492720843766 iter/sec (stddev: 0.000009463978323506126) 1.21
tests/test_benchmark.py::test_forward_dynamics_aba[128] 26.061866324206303 iter/sec (stddev: 0.00011850005770402863) 29.216966653272625 iter/sec (stddev: 0.00011455086573428671) 1.12
tests/test_benchmark.py::test_free_floating_bias_forces[1] 297.2319063826794 iter/sec (stddev: 0.000010252393984526802) 361.396251061539 iter/sec (stddev: 0.00000910574964681653) 1.22
tests/test_benchmark.py::test_free_floating_bias_forces[128] 14.566249466118304 iter/sec (stddev: 0.0003354849913413401) 16.218942194940492 iter/sec (stddev: 0.00025096534945186314) 1.11
tests/test_benchmark.py::test_forward_kinematics[1] 364.948987035732 iter/sec (stddev: 0.000010465405339996125) 452.4863643105723 iter/sec (stddev: 0.000008022285629396292) 1.24
tests/test_benchmark.py::test_forward_kinematics[128] 27.985786413362845 iter/sec (stddev: 0.00008688390795512073) 31.765642438814933 iter/sec (stddev: 0.0002088457881717258) 1.14
tests/test_benchmark.py::test_free_floating_mass_matrix[1] 152.83158308217102 iter/sec (stddev: 0.000012938360417174908) 181.58130216807277 iter/sec (stddev: 0.00005072371260792714) 1.19
tests/test_benchmark.py::test_free_floating_mass_matrix[128] 150.63494789138753 iter/sec (stddev: 0.000014898060859762702) 175.24079377087364 iter/sec (stddev: 0.000018760096947039575) 1.16
tests/test_benchmark.py::test_free_floating_jacobian[1] 413.8739908587021 iter/sec (stddev: 0.000009812410856679114) 525.7508803201982 iter/sec (stddev: 0.000006377672924636457) 1.27
tests/test_benchmark.py::test_free_floating_jacobian[128] 417.5550110080922 iter/sec (stddev: 0.000007741334773995725) 534.2483568468638 iter/sec (stddev: 0.000006942445781767468) 1.28
tests/test_benchmark.py::test_free_floating_jacobian_derivative[1] 340.5652481854508 iter/sec (stddev: 0.000010220187569187532) 410.0473494948492 iter/sec (stddev: 0.000012243950755069747) 1.20
tests/test_benchmark.py::test_free_floating_jacobian_derivative[128] 302.0503731539551 iter/sec (stddev: 0.00001896561229951185) 302.58988317111164 iter/sec (stddev: 0.000015109621352982298) 1.00
tests/test_benchmark.py::test_soft_contact_model[1] 263.3831503704675 iter/sec (stddev: 0.000013667442949718066) 349.9366267743607 iter/sec (stddev: 0.00000947480013200776) 1.33
tests/test_benchmark.py::test_soft_contact_model[128] 25.660711736857994 iter/sec (stddev: 0.00038516959783075624) 29.951416599383442 iter/sec (stddev: 0.0001405258247109449) 1.17
tests/test_benchmark.py::test_rigid_contact_model[1] 47.315541190779996 iter/sec (stddev: 0.00036622850586332884) 40.276241063183 iter/sec (stddev: 0.000024302278784552764) 0.85
tests/test_benchmark.py::test_rigid_contact_model[128] 0.7096774853548944 iter/sec (stddev: 0.0003874925270677735) 0.7258859819172665 iter/sec (stddev: 0.0003607214923404956) 1.02
tests/test_benchmark.py::test_relaxed_rigid_contact_model[1] 98.56515506807776 iter/sec (stddev: 0.00014369177693839108) 74.75017951811331 iter/sec (stddev: 0.00003167479964364776) 0.76
tests/test_benchmark.py::test_relaxed_rigid_contact_model[128] 5.071128280533731 iter/sec (stddev: 0.00036197841157675623) 6.400062476314604 iter/sec (stddev: 0.00024891629896200675) 1.26
tests/test_benchmark.py::test_simulation_step[1] 87.4176223371017 iter/sec (stddev: 0.00001416886654168995) 69.29459728383536 iter/sec (stddev: 0.00002754549281911007) 0.79
tests/test_benchmark.py::test_simulation_step[128] 4.471230938738151 iter/sec (stddev: 0.0006089090944558373) 5.39599749835251 iter/sec (stddev: 0.000279412049524645) 1.21
tests/test_benchmark.py::test_update_hw_parameters[1] 101.39066404130952 iter/sec (stddev: 0.00004172880549589833)
tests/test_benchmark.py::test_update_hw_parameters[128] 101.49678889914968 iter/sec (stddev: 0.0000930788430776146)
tests/test_benchmark.py::test_export_updated_model[1] 3.4422759114776014 iter/sec (stddev: 0.006553000240783159)
tests/test_benchmark.py::test_export_updated_model[128] 0.018957285274988724 iter/sec (stddev: 0.5984209323189633)

This comment was automatically generated by workflow using github-action-benchmark.

@flferretti flferretti force-pushed the refactor_references branch 2 times, most recently from a90cb82 to b5373a9 Compare December 19, 2025 09:25
@flferretti flferretti marked this pull request as ready for review December 19, 2025 15:39
@flferretti
Copy link
Collaborator Author

flferretti commented Dec 19, 2025

CI failing due to brentyi/jax_dataclasses#7. They do not fail on Python 3.10 since the environment is using JAX v0.7.2 and the bug in on JAX > v0.8

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants