jaxsim 0.3.1.dev94__tar.gz → 0.3.1.dev119__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (128) hide show
  1. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/.gitignore +4 -0
  2. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/.readthedocs.yaml +2 -2
  3. {jaxsim-0.3.1.dev94/src/jaxsim.egg-info → jaxsim-0.3.1.dev119}/PKG-INFO +116 -18
  4. jaxsim-0.3.1.dev94/PKG-INFO → jaxsim-0.3.1.dev119/README.md +80 -67
  5. jaxsim-0.3.1.dev119/docs/conf.py +124 -0
  6. jaxsim-0.3.1.dev119/docs/examples.rst +46 -0
  7. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/docs/index.rst +20 -9
  8. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/docs/modules/api.rst +28 -0
  9. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/docs/modules/rbda.rst +4 -24
  10. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/environment.yml +5 -0
  11. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/examples/PD_controller.ipynb +14 -15
  12. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/examples/README.md +3 -4
  13. jaxsim-0.3.1.dev119/pyproject.toml +220 -0
  14. jaxsim-0.3.1.dev119/setup.cfg +4 -0
  15. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/_version.py +2 -2
  16. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/mujoco/model.py +1 -1
  17. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/parsers/kinematic_graph.py +1 -1
  18. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/typing.py +7 -2
  19. jaxsim-0.3.1.dev119/src/jaxsim.egg-info/PKG-INFO +335 -0
  20. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim.egg-info/SOURCES.txt +1 -3
  21. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim.egg-info/requires.txt +1 -10
  22. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/tests/test_api_frame.py +1 -1
  23. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/tests/test_api_link.py +6 -2
  24. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/tests/test_api_model.py +1 -0
  25. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/tests/utils_idyntree.py +1 -0
  26. jaxsim-0.3.1.dev94/README.md +0 -171
  27. jaxsim-0.3.1.dev94/docs/conf.py +0 -74
  28. jaxsim-0.3.1.dev94/docs/modules/index.rst +0 -19
  29. jaxsim-0.3.1.dev94/pyproject.toml +0 -119
  30. jaxsim-0.3.1.dev94/setup.cfg +0 -88
  31. jaxsim-0.3.1.dev94/src/jaxsim.egg-info/not-zip-safe +0 -1
  32. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/.devcontainer/Dockerfile +0 -0
  33. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/.devcontainer/devcontainer.json +0 -0
  34. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/.gitattributes +0 -0
  35. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/.github/CODEOWNERS +0 -0
  36. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/.github/workflows/ci_cd.yml +0 -0
  37. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/.github/workflows/read_the_docs.yml +0 -0
  38. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/.github/workflows/style.yml +0 -0
  39. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/.pre-commit-config.yaml +0 -0
  40. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/CONTRIBUTING.md +0 -0
  41. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/LICENSE +0 -0
  42. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/docs/Makefile +0 -0
  43. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/docs/guide/install.rst +0 -0
  44. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/docs/make.bat +0 -0
  45. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/docs/modules/integrators.rst +0 -0
  46. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/docs/modules/math.rst +0 -0
  47. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/docs/modules/mujoco.rst +0 -0
  48. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/docs/modules/parsers.rst +0 -0
  49. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/docs/modules/typing.rst +0 -0
  50. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/docs/modules/utils.rst +0 -0
  51. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/examples/.gitattributes +0 -0
  52. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/examples/.gitignore +0 -0
  53. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/examples/Parallel_computing.ipynb +0 -0
  54. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/examples/assets/cartpole.urdf +0 -0
  55. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/pixi.lock +0 -0
  56. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/setup.py +0 -0
  57. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/__init__.py +0 -0
  58. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/api/__init__.py +0 -0
  59. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/api/com.py +0 -0
  60. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/api/common.py +0 -0
  61. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/api/contact.py +0 -0
  62. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/api/data.py +0 -0
  63. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/api/frame.py +0 -0
  64. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/api/joint.py +0 -0
  65. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/api/kin_dyn_parameters.py +0 -0
  66. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/api/link.py +0 -0
  67. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/api/model.py +0 -0
  68. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/api/ode.py +0 -0
  69. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/api/ode_data.py +0 -0
  70. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/api/references.py +0 -0
  71. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/exceptions.py +0 -0
  72. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/integrators/__init__.py +0 -0
  73. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/integrators/common.py +0 -0
  74. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/integrators/fixed_step.py +0 -0
  75. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/integrators/variable_step.py +0 -0
  76. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/logging.py +0 -0
  77. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/math/__init__.py +0 -0
  78. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/math/adjoint.py +0 -0
  79. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/math/cross.py +0 -0
  80. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/math/inertia.py +0 -0
  81. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/math/joint_model.py +0 -0
  82. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/math/quaternion.py +0 -0
  83. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/math/rotation.py +0 -0
  84. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/math/skew.py +0 -0
  85. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/math/transform.py +0 -0
  86. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/mujoco/__init__.py +0 -0
  87. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/mujoco/__main__.py +0 -0
  88. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/mujoco/loaders.py +0 -0
  89. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/mujoco/visualizer.py +0 -0
  90. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/parsers/__init__.py +0 -0
  91. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/parsers/descriptions/__init__.py +0 -0
  92. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/parsers/descriptions/collision.py +0 -0
  93. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/parsers/descriptions/joint.py +0 -0
  94. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/parsers/descriptions/link.py +0 -0
  95. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/parsers/descriptions/model.py +0 -0
  96. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/parsers/rod/__init__.py +0 -0
  97. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/parsers/rod/parser.py +0 -0
  98. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/parsers/rod/utils.py +0 -0
  99. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/rbda/__init__.py +0 -0
  100. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/rbda/aba.py +0 -0
  101. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/rbda/collidable_points.py +0 -0
  102. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/rbda/contacts/__init__.py +0 -0
  103. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/rbda/contacts/common.py +0 -0
  104. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/rbda/contacts/soft.py +0 -0
  105. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/rbda/crba.py +0 -0
  106. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/rbda/forward_kinematics.py +0 -0
  107. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/rbda/jacobian.py +0 -0
  108. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/rbda/rnea.py +0 -0
  109. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/rbda/utils.py +0 -0
  110. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/terrain/__init__.py +0 -0
  111. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/terrain/terrain.py +0 -0
  112. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/utils/__init__.py +0 -0
  113. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/utils/jaxsim_dataclass.py +0 -0
  114. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/utils/tracing.py +0 -0
  115. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim/utils/wrappers.py +0 -0
  116. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim.egg-info/dependency_links.txt +0 -0
  117. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/src/jaxsim.egg-info/top_level.txt +0 -0
  118. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/tests/__init__.py +0 -0
  119. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/tests/conftest.py +0 -0
  120. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/tests/test_api_com.py +0 -0
  121. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/tests/test_api_contact.py +0 -0
  122. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/tests/test_api_data.py +0 -0
  123. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/tests/test_api_joint.py +0 -0
  124. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/tests/test_automatic_differentiation.py +0 -0
  125. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/tests/test_contact.py +0 -0
  126. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/tests/test_exceptions.py +0 -0
  127. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/tests/test_pytree.py +0 -0
  128. {jaxsim-0.3.1.dev94 → jaxsim-0.3.1.dev119}/tests/test_simulations.py +0 -0
@@ -77,6 +77,10 @@ instance/
77
77
 
78
78
  # Sphinx documentation
79
79
  docs/_build/
80
+ docs/_collections/
81
+ docs/modules/_autosummary/
82
+ docs/modules/generated
83
+ docs/sg_execution_times.rst
80
84
 
81
85
  # PyBuilder
82
86
  target/
@@ -1,9 +1,9 @@
1
1
  version: "2"
2
2
 
3
3
  build:
4
- os: ubuntu-22.04
4
+ os: ubuntu-24.04
5
5
  tools:
6
- python: "mambaforge-22.9"
6
+ python: "mambaforge-23.11"
7
7
 
8
8
  conda:
9
9
  environment: environment.yml
@@ -1,16 +1,44 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: jaxsim
3
- Version: 0.3.1.dev94
4
- Home-page: https://github.com/ami-iit/jaxsim
5
- Author: Diego Ferigo
6
- Author-email: diego.ferigo@iit.it
7
- License: BSD
3
+ Version: 0.3.1.dev119
4
+ Summary: A differentiable physics engine and multibody dynamics library for control and robot learning.
5
+ Author-email: Diego Ferigo <dgferigo@gmail.com>
6
+ Maintainer-email: Diego Ferigo <dgferigo@gmail.com>, Filippo Luca Ferretti <filippo.ferretti@iit.it>
7
+ License: BSD 3-Clause License
8
+
9
+ Copyright (c) 2022, Artificial and Mechanical Intelligence
10
+ All rights reserved.
11
+
12
+ Redistribution and use in source and binary forms, with or without
13
+ modification, are permitted provided that the following conditions are met:
14
+
15
+ 1. Redistributions of source code must retain the above copyright notice, this
16
+ list of conditions and the following disclaimer.
17
+
18
+ 2. Redistributions in binary form must reproduce the above copyright notice,
19
+ this list of conditions and the following disclaimer in the documentation
20
+ and/or other materials provided with the distribution.
21
+
22
+ 3. Neither the name of the copyright holder nor the names of its
23
+ contributors may be used to endorse or promote products derived from
24
+ this software without specific prior written permission.
25
+
26
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
27
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
28
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
29
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
30
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
31
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
32
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
33
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
34
+ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
35
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
36
+
8
37
  Project-URL: Changelog, https://github.com/ami-iit/jaxsim/releases
9
38
  Project-URL: Documentation, https://jaxsim.readthedocs.io
10
39
  Project-URL: Source, https://github.com/ami-iit/jaxsim
11
40
  Project-URL: Tracker, https://github.com/ami-iit/jaxsim/issues
12
41
  Keywords: physics,physics engine,jax,rigid body dynamics,featherstone,reinforcement learning,robot,robotics,sdf,urdf
13
- Platform: any
14
42
  Classifier: Development Status :: 4 - Beta
15
43
  Classifier: Framework :: Robot Framework
16
44
  Classifier: Intended Audience :: Developers
@@ -19,10 +47,10 @@ Classifier: License :: OSI Approved :: BSD License
19
47
  Classifier: Operating System :: POSIX :: Linux
20
48
  Classifier: Operating System :: MacOS
21
49
  Classifier: Operating System :: Microsoft
50
+ Classifier: Programming Language :: Python :: 3 :: Only
22
51
  Classifier: Programming Language :: Python :: 3.10
23
52
  Classifier: Programming Language :: Python :: 3.11
24
53
  Classifier: Programming Language :: Python :: 3.12
25
- Classifier: Programming Language :: Python :: 3 :: Only
26
54
  Classifier: Programming Language :: Python :: Implementation :: CPython
27
55
  Classifier: Topic :: Games/Entertainment :: Simulation
28
56
  Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
@@ -53,16 +81,7 @@ Requires-Dist: lxml; extra == "viz"
53
81
  Requires-Dist: mediapy; extra == "viz"
54
82
  Requires-Dist: mujoco>=3.0.0; extra == "viz"
55
83
  Provides-Extra: all
56
- Requires-Dist: black[jupyter]~=24.0; extra == "all"
57
- Requires-Dist: isort; extra == "all"
58
- Requires-Dist: pre-commit; extra == "all"
59
- Requires-Dist: idyntree>=12.2.1; extra == "all"
60
- Requires-Dist: pytest>=6.0; extra == "all"
61
- Requires-Dist: pytest-icdiff; extra == "all"
62
- Requires-Dist: robot-descriptions; extra == "all"
63
- Requires-Dist: lxml; extra == "all"
64
- Requires-Dist: mediapy; extra == "all"
65
- Requires-Dist: mujoco>=3.0.0; extra == "all"
84
+ Requires-Dist: jaxsim[style,testing,viz]; extra == "all"
66
85
 
67
86
  # JaxSim
68
87
 
@@ -95,6 +114,7 @@ Its design facilitates research and accelerates prototyping in the intersection
95
114
  - Provides all the quantities included in the Euler-Poincarè formulation of the equations of motion.
96
115
  - Supports body-fixed, inertial-fixed, and mixed [velocity representations][notation].
97
116
  - Exposes all the necessary quantities to develop controllers in centroidal coordinates.
117
+ - Supports running open-loop and full closed-loop control architectures on hardware accelerators.
98
118
 
99
119
  ### JaxSim for robot learning
100
120
 
@@ -148,7 +168,7 @@ You can install the project using [`pypa/pip`][pip], preferably in a [virtual en
148
168
  pip install jaxsim
149
169
  ```
150
170
 
151
- Check [`setup.cfg`](setup.cfg) for the complete list of optional dependencies.
171
+ Check [`pyproject.toml`](pyproject.toml) for the complete list of optional dependencies.
152
172
  You can obtain a full installation using `jaxsim[all]`.
153
173
 
154
174
  If you need GPU support, follow the official [installation instructions][jax_gpu] of JAX.
@@ -178,6 +198,71 @@ pip install --no-deps -e .
178
198
  [venv]: https://docs.python.org/3/tutorial/venv.html
179
199
  [jax_gpu]: https://github.com/google/jax/#installation
180
200
 
201
+ ## Overview
202
+
203
+ <details>
204
+ <summary>Structure of the Python package</summary>
205
+
206
+ ```
207
+ # tree -L 2 -I "__pycache__" -I "__init__*" -I "__main__*" src/jaxsim
208
+
209
+ src/jaxsim
210
+ |-- api..........................# Package containing the main functional APIs.
211
+ | |-- com.py...................# |-- APIs for computing quantities related to the center of mass.
212
+ | |-- common.py................# |-- Common utilities used in the current package.
213
+ | |-- contact.py...............# |-- APIs for computing quantities related to the collidable points.
214
+ | |-- data.py..................# |-- Class storing the data of a simulated model.
215
+ | |-- frame.py.................# |-- APIs for computing quantities related to additional frames.
216
+ | |-- joint.py.................# |-- APIs for computing quantities related to the joints.
217
+ | |-- kin_dyn_parameters.py....# |-- Class storing kinematic and dynamic parameters of a model.
218
+ | |-- link.py..................# |-- APIs for computing quantities related to the links.
219
+ | |-- model.py.................# |-- Class defining a simulated model and APIs for computing related quantities.
220
+ | |-- ode.py...................# |-- APIs for computing quantities related to the system dynamics.
221
+ | |-- ode_data.py..............# |-- Set of classes to store the data of the system dynamics.
222
+ | `-- references.py............# `-- Helper class to create references (link forces and joint torques).
223
+ |-- exceptions.py................# Module containing functions to raise exceptions from JIT-compiled functions.
224
+ |-- integrators..................# Package containing the integrators used to simulate the system dynamics.
225
+ | |-- common.py................# |-- Common utilities used in the current package.
226
+ | |-- fixed_step.py............# |-- Fixed-step integrators (explicit Runge-Kutta schemes).
227
+ | `-- variable_step.py.........# `-- Variable-step integrators (embedded Runge-Kutta schemes).
228
+ |-- logging.py...................# Module containing logging utilities.
229
+ |-- math.........................# Package containing mathematical utilities.
230
+ | |-- adjoint.py...............# |-- APIs for creating and manipulating 6D transformations.
231
+ | |-- cross.py.................# |-- APIs for computing cross products of 6D quantities.
232
+ | |-- inertia.py...............# |-- APIs for creating and manipulating 6D inertia matrices.
233
+ | |-- joint_model.py...........# |-- APIs defining the supported joint model and the corresponding transformations.
234
+ | |-- quaternion.py............# |-- APIs for creating and manipulating quaternions.
235
+ | |-- rotation.py..............# |-- APIs for creating and manipulating rotation matrices.
236
+ | |-- skew.py..................# |-- APIs for creating and manipulating skew-symmetric matrices.
237
+ | `-- transform.py.............# `-- APIs for creating and manipulating homogeneous transformations.
238
+ |-- mujoco.......................# Package containing utilities to interact with the Mujoco passive viewer.
239
+ | |-- loaders.py...............# |-- Utilities for converting JaxSim models to Mujoco models.
240
+ | |-- model.py.................# |-- Class providing high-level methods to compute quantities using Mujoco.
241
+ | `-- visualizer.py............# `-- Class that simplifies opening the passive viewer and recording videos.
242
+ |-- parsers......................# Package containing utilities to parse model descriptions (SDF and URDF models).
243
+ | |-- descriptions/............# |-- Package containing the intermediate representation of a model description.
244
+ | |-- kinematic_graph.py.......# |-- Definition of the kinematic graph associated with a parsed model description.
245
+ | `-- rod/.....................# `-- Package to create the intermediate representation from model descriptions using ROD.
246
+ |-- rbda.........................# Package containing the low-level rigid body dynamics algorithms.
247
+ | |-- aba.py...................# |-- The Articulated Body Algorithm.
248
+ | |-- collidable_points.py.....# |-- Kinematics of collidable points.
249
+ | |-- contacts/................# |-- Package containing the supported contact models.
250
+ | |-- crba.py..................# |-- The Composite Rigid Body Algorithm.
251
+ | |-- forward_kinematics.py....# |-- Forward kinematics of the model.
252
+ | |-- jacobian.py..............# |-- Full Jacobian and full Jacobian derivative.
253
+ | |-- rnea.py..................# |-- The Recursive Newton-Euler Algorithm.
254
+ | `-- utils.py.................# `-- Common utilities used in the current package.
255
+ |-- terrain......................# Package containing resources to specify the terrain.
256
+ | `-- terrain.py...............# `-- Classes defining the supported terrains.
257
+ |-- typing.py....................# Module containing type hints.
258
+ `-- utils........................# Package of common utilities.
259
+ |-- jaxsim_dataclass.py......# |-- Utilities to operate on pytree dataclasses.
260
+ |-- tracing.py...............# |-- Utilities to use when JAX is tracing functions.
261
+ `-- wrappers.py..............# `-- Utilities to wrap objects for specific use cases on pytree dataclass attributes.
262
+ ```
263
+
264
+ </details>
265
+
181
266
  ## Credits
182
267
 
183
268
  The RBDAs are based on the theory of the [Rigid Body Dynamics Algorithms][RBDA]
@@ -223,6 +308,19 @@ Please read the [contributing guide](./CONTRIBUTING.md) to get started.
223
308
  }
224
309
  ```
225
310
 
311
+ Theoretical aspects of JaxSim are based on Chapters 7 and 8 of the following Ph.D. thesis:
312
+
313
+ ```bibtex
314
+ @phdthesis{ferigo_phd_thesis_2022,
315
+ title = {Simulation Architectures for Reinforcement Learning applied to Robotics},
316
+ author = {Diego Ferigo},
317
+ school = {University of Manchester},
318
+ type = {PhD Thesis},
319
+ month = {July},
320
+ year = {2022},
321
+ }
322
+ ```
323
+
226
324
  ## People
227
325
 
228
326
  | Author | Maintainers |
@@ -1,69 +1,3 @@
1
- Metadata-Version: 2.1
2
- Name: jaxsim
3
- Version: 0.3.1.dev94
4
- Home-page: https://github.com/ami-iit/jaxsim
5
- Author: Diego Ferigo
6
- Author-email: diego.ferigo@iit.it
7
- License: BSD
8
- Project-URL: Changelog, https://github.com/ami-iit/jaxsim/releases
9
- Project-URL: Documentation, https://jaxsim.readthedocs.io
10
- Project-URL: Source, https://github.com/ami-iit/jaxsim
11
- Project-URL: Tracker, https://github.com/ami-iit/jaxsim/issues
12
- Keywords: physics,physics engine,jax,rigid body dynamics,featherstone,reinforcement learning,robot,robotics,sdf,urdf
13
- Platform: any
14
- Classifier: Development Status :: 4 - Beta
15
- Classifier: Framework :: Robot Framework
16
- Classifier: Intended Audience :: Developers
17
- Classifier: Intended Audience :: Science/Research
18
- Classifier: License :: OSI Approved :: BSD License
19
- Classifier: Operating System :: POSIX :: Linux
20
- Classifier: Operating System :: MacOS
21
- Classifier: Operating System :: Microsoft
22
- Classifier: Programming Language :: Python :: 3.10
23
- Classifier: Programming Language :: Python :: 3.11
24
- Classifier: Programming Language :: Python :: 3.12
25
- Classifier: Programming Language :: Python :: 3 :: Only
26
- Classifier: Programming Language :: Python :: Implementation :: CPython
27
- Classifier: Topic :: Games/Entertainment :: Simulation
28
- Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
29
- Classifier: Topic :: Scientific/Engineering :: Physics
30
- Classifier: Topic :: Software Development
31
- Requires-Python: >=3.10
32
- Description-Content-Type: text/markdown
33
- License-File: LICENSE
34
- Requires-Dist: coloredlogs
35
- Requires-Dist: jax>=0.4.13
36
- Requires-Dist: jaxlib>=0.4.13
37
- Requires-Dist: jaxlie>=1.3.0
38
- Requires-Dist: jax_dataclasses>=1.4.0
39
- Requires-Dist: pptree
40
- Requires-Dist: rod>=0.3.0
41
- Requires-Dist: typing_extensions; python_version < "3.12"
42
- Provides-Extra: style
43
- Requires-Dist: black[jupyter]~=24.0; extra == "style"
44
- Requires-Dist: isort; extra == "style"
45
- Requires-Dist: pre-commit; extra == "style"
46
- Provides-Extra: testing
47
- Requires-Dist: idyntree>=12.2.1; extra == "testing"
48
- Requires-Dist: pytest>=6.0; extra == "testing"
49
- Requires-Dist: pytest-icdiff; extra == "testing"
50
- Requires-Dist: robot-descriptions; extra == "testing"
51
- Provides-Extra: viz
52
- Requires-Dist: lxml; extra == "viz"
53
- Requires-Dist: mediapy; extra == "viz"
54
- Requires-Dist: mujoco>=3.0.0; extra == "viz"
55
- Provides-Extra: all
56
- Requires-Dist: black[jupyter]~=24.0; extra == "all"
57
- Requires-Dist: isort; extra == "all"
58
- Requires-Dist: pre-commit; extra == "all"
59
- Requires-Dist: idyntree>=12.2.1; extra == "all"
60
- Requires-Dist: pytest>=6.0; extra == "all"
61
- Requires-Dist: pytest-icdiff; extra == "all"
62
- Requires-Dist: robot-descriptions; extra == "all"
63
- Requires-Dist: lxml; extra == "all"
64
- Requires-Dist: mediapy; extra == "all"
65
- Requires-Dist: mujoco>=3.0.0; extra == "all"
66
-
67
1
  # JaxSim
68
2
 
69
3
  JaxSim is a **differentiable physics engine** and **multibody dynamics library** designed for applications in control and robot learning, implemented with JAX.
@@ -95,6 +29,7 @@ Its design facilitates research and accelerates prototyping in the intersection
95
29
  - Provides all the quantities included in the Euler-Poincarè formulation of the equations of motion.
96
30
  - Supports body-fixed, inertial-fixed, and mixed [velocity representations][notation].
97
31
  - Exposes all the necessary quantities to develop controllers in centroidal coordinates.
32
+ - Supports running open-loop and full closed-loop control architectures on hardware accelerators.
98
33
 
99
34
  ### JaxSim for robot learning
100
35
 
@@ -148,7 +83,7 @@ You can install the project using [`pypa/pip`][pip], preferably in a [virtual en
148
83
  pip install jaxsim
149
84
  ```
150
85
 
151
- Check [`setup.cfg`](setup.cfg) for the complete list of optional dependencies.
86
+ Check [`pyproject.toml`](pyproject.toml) for the complete list of optional dependencies.
152
87
  You can obtain a full installation using `jaxsim[all]`.
153
88
 
154
89
  If you need GPU support, follow the official [installation instructions][jax_gpu] of JAX.
@@ -178,6 +113,71 @@ pip install --no-deps -e .
178
113
  [venv]: https://docs.python.org/3/tutorial/venv.html
179
114
  [jax_gpu]: https://github.com/google/jax/#installation
180
115
 
116
+ ## Overview
117
+
118
+ <details>
119
+ <summary>Structure of the Python package</summary>
120
+
121
+ ```
122
+ # tree -L 2 -I "__pycache__" -I "__init__*" -I "__main__*" src/jaxsim
123
+
124
+ src/jaxsim
125
+ |-- api..........................# Package containing the main functional APIs.
126
+ | |-- com.py...................# |-- APIs for computing quantities related to the center of mass.
127
+ | |-- common.py................# |-- Common utilities used in the current package.
128
+ | |-- contact.py...............# |-- APIs for computing quantities related to the collidable points.
129
+ | |-- data.py..................# |-- Class storing the data of a simulated model.
130
+ | |-- frame.py.................# |-- APIs for computing quantities related to additional frames.
131
+ | |-- joint.py.................# |-- APIs for computing quantities related to the joints.
132
+ | |-- kin_dyn_parameters.py....# |-- Class storing kinematic and dynamic parameters of a model.
133
+ | |-- link.py..................# |-- APIs for computing quantities related to the links.
134
+ | |-- model.py.................# |-- Class defining a simulated model and APIs for computing related quantities.
135
+ | |-- ode.py...................# |-- APIs for computing quantities related to the system dynamics.
136
+ | |-- ode_data.py..............# |-- Set of classes to store the data of the system dynamics.
137
+ | `-- references.py............# `-- Helper class to create references (link forces and joint torques).
138
+ |-- exceptions.py................# Module containing functions to raise exceptions from JIT-compiled functions.
139
+ |-- integrators..................# Package containing the integrators used to simulate the system dynamics.
140
+ | |-- common.py................# |-- Common utilities used in the current package.
141
+ | |-- fixed_step.py............# |-- Fixed-step integrators (explicit Runge-Kutta schemes).
142
+ | `-- variable_step.py.........# `-- Variable-step integrators (embedded Runge-Kutta schemes).
143
+ |-- logging.py...................# Module containing logging utilities.
144
+ |-- math.........................# Package containing mathematical utilities.
145
+ | |-- adjoint.py...............# |-- APIs for creating and manipulating 6D transformations.
146
+ | |-- cross.py.................# |-- APIs for computing cross products of 6D quantities.
147
+ | |-- inertia.py...............# |-- APIs for creating and manipulating 6D inertia matrices.
148
+ | |-- joint_model.py...........# |-- APIs defining the supported joint model and the corresponding transformations.
149
+ | |-- quaternion.py............# |-- APIs for creating and manipulating quaternions.
150
+ | |-- rotation.py..............# |-- APIs for creating and manipulating rotation matrices.
151
+ | |-- skew.py..................# |-- APIs for creating and manipulating skew-symmetric matrices.
152
+ | `-- transform.py.............# `-- APIs for creating and manipulating homogeneous transformations.
153
+ |-- mujoco.......................# Package containing utilities to interact with the Mujoco passive viewer.
154
+ | |-- loaders.py...............# |-- Utilities for converting JaxSim models to Mujoco models.
155
+ | |-- model.py.................# |-- Class providing high-level methods to compute quantities using Mujoco.
156
+ | `-- visualizer.py............# `-- Class that simplifies opening the passive viewer and recording videos.
157
+ |-- parsers......................# Package containing utilities to parse model descriptions (SDF and URDF models).
158
+ | |-- descriptions/............# |-- Package containing the intermediate representation of a model description.
159
+ | |-- kinematic_graph.py.......# |-- Definition of the kinematic graph associated with a parsed model description.
160
+ | `-- rod/.....................# `-- Package to create the intermediate representation from model descriptions using ROD.
161
+ |-- rbda.........................# Package containing the low-level rigid body dynamics algorithms.
162
+ | |-- aba.py...................# |-- The Articulated Body Algorithm.
163
+ | |-- collidable_points.py.....# |-- Kinematics of collidable points.
164
+ | |-- contacts/................# |-- Package containing the supported contact models.
165
+ | |-- crba.py..................# |-- The Composite Rigid Body Algorithm.
166
+ | |-- forward_kinematics.py....# |-- Forward kinematics of the model.
167
+ | |-- jacobian.py..............# |-- Full Jacobian and full Jacobian derivative.
168
+ | |-- rnea.py..................# |-- The Recursive Newton-Euler Algorithm.
169
+ | `-- utils.py.................# `-- Common utilities used in the current package.
170
+ |-- terrain......................# Package containing resources to specify the terrain.
171
+ | `-- terrain.py...............# `-- Classes defining the supported terrains.
172
+ |-- typing.py....................# Module containing type hints.
173
+ `-- utils........................# Package of common utilities.
174
+ |-- jaxsim_dataclass.py......# |-- Utilities to operate on pytree dataclasses.
175
+ |-- tracing.py...............# |-- Utilities to use when JAX is tracing functions.
176
+ `-- wrappers.py..............# `-- Utilities to wrap objects for specific use cases on pytree dataclass attributes.
177
+ ```
178
+
179
+ </details>
180
+
181
181
  ## Credits
182
182
 
183
183
  The RBDAs are based on the theory of the [Rigid Body Dynamics Algorithms][RBDA]
@@ -223,6 +223,19 @@ Please read the [contributing guide](./CONTRIBUTING.md) to get started.
223
223
  }
224
224
  ```
225
225
 
226
+ Theoretical aspects of JaxSim are based on Chapters 7 and 8 of the following Ph.D. thesis:
227
+
228
+ ```bibtex
229
+ @phdthesis{ferigo_phd_thesis_2022,
230
+ title = {Simulation Architectures for Reinforcement Learning applied to Robotics},
231
+ author = {Diego Ferigo},
232
+ school = {University of Manchester},
233
+ type = {PhD Thesis},
234
+ month = {July},
235
+ year = {2022},
236
+ }
237
+ ```
238
+
226
239
  ## People
227
240
 
228
241
  | Author | Maintainers |
@@ -0,0 +1,124 @@
1
+ # Configuration file for the Sphinx documentation builder.
2
+ import os
3
+ import sys
4
+
5
+ from pkg_resources import get_distribution
6
+
7
+ if os.environ.get("READTHEDOCS"):
8
+ checkout_name = os.path.basename(os.path.dirname(os.path.realpath(__file__)))
9
+ os.environ["CONDA_PREFIX"] = os.path.realpath(
10
+ os.path.join("..", "..", "conda", checkout_name)
11
+ )
12
+
13
+ import jaxsim
14
+
15
+ # -- Version information
16
+
17
+ sys.path.insert(0, os.path.abspath("."))
18
+ sys.path.insert(0, os.path.abspath("../"))
19
+ sys.path.insert(0, os.path.abspath("../../"))
20
+
21
+ module_path = os.path.abspath("../src/")
22
+ sys.path.insert(0, module_path)
23
+
24
+ __version__ = get_distribution("jaxsim").version
25
+
26
+ # -- Project information
27
+
28
+ project = "JAXsim"
29
+ copyright = "2022, Artificial and Mechanical Intelligence"
30
+ author = "Artificial and Mechanical Intelligence"
31
+
32
+ release = f"{__version__}"
33
+ version = f"main ({__version__})"
34
+
35
+ # -- General configuration
36
+
37
+ extensions = [
38
+ "sphinx.ext.duration",
39
+ "sphinx.ext.doctest",
40
+ "sphinx.ext.autodoc",
41
+ "sphinx.ext.autosummary",
42
+ "sphinx.ext.intersphinx",
43
+ "sphinx.ext.mathjax",
44
+ "sphinx.ext.ifconfig",
45
+ "sphinx.ext.viewcode",
46
+ "sphinx_rtd_theme",
47
+ "sphinx.ext.napoleon",
48
+ "sphinx_autodoc_typehints",
49
+ "sphinx_multiversion",
50
+ "enum_tools.autoenum",
51
+ "myst_nb",
52
+ "sphinx_gallery.gen_gallery",
53
+ "sphinxcontrib.collections",
54
+ "sphinx_design",
55
+ ]
56
+
57
+ # -- Options for intersphinx extension
58
+
59
+ language = "en"
60
+
61
+ html_theme = "sphinx_book_theme"
62
+
63
+ templates_path = ["_templates"]
64
+
65
+ html_title = f"JAXsim {version}"
66
+
67
+ master_doc = "index"
68
+
69
+ autodoc_typehints_format = "short"
70
+
71
+ autodoc_typehints = "description"
72
+
73
+ autosummary_generate = True
74
+
75
+ epub_show_urls = "footnote"
76
+
77
+ # Enable postponed evaluation of annotations (PEP 563)
78
+ autodoc_type_aliases = {
79
+ "jaxsim.typing.PyTree": "jaxsim.typing.PyTree",
80
+ "jaxsim.typing.Vector": "jaxsim.typing.Vector",
81
+ "jaxsim.typing.Matrix": "jaxsim.typing.Matrix",
82
+ "jaxsim.typing.Array": "jaxsim.typing.Array",
83
+ "jaxsim.typing.Int": "jaxsim.typing.Int",
84
+ "jaxsim.typing.Bool": "jaxsim.typing.Bool",
85
+ "jaxsim.typing.Float": "jaxsim.typing.Float",
86
+ "jaxsim.typing.ScalarLike": "jaxsim.typing.ScalarLike",
87
+ "jaxsim.typing.ArrayLike": "jaxsim.typing.ArrayLike",
88
+ "jaxsim.typing.VectorLike": "jaxsim.typing.VectorLike",
89
+ "jaxsim.typing.MatrixLike": "jaxsim.typing.MatrixLike",
90
+ "jaxsim.typing.IntLike": "jaxsim.typing.IntLike",
91
+ "jaxsim.typing.BoolLike": "jaxsim.typing.BoolLike",
92
+ "jaxsim.typing.FloatLike": "jaxsim.typing.FloatLike",
93
+ }
94
+
95
+ # -- Options for sphinx-collections
96
+
97
+ collections = {
98
+ "examples": {"driver": "copy_folder", "source": "../examples/", "ignore": "assets"}
99
+ }
100
+
101
+ # -- Options for sphinx-gallery ----------------------------------------------
102
+
103
+ sphinx_gallery_conf = {
104
+ "examples_dirs": "../examples",
105
+ "gallery_dirs": "../generated_examples/",
106
+ "doc_module": "jaxsim",
107
+ }
108
+
109
+ # -- Options for myst -------------------------------------------------------
110
+ myst_enable_extensions = [
111
+ "amsmath",
112
+ "dollarmath",
113
+ ]
114
+ nb_execution_mode = "auto"
115
+ nb_execution_raise_on_error = True
116
+ nb_render_image_options = {
117
+ "scale": "60",
118
+ }
119
+ nb_execution_timeout = 180
120
+
121
+ source_suffix = [".rst", ".md", ".ipynb"]
122
+
123
+ # Ignore header warnings
124
+ suppress_warnings = ["myst.header"]
@@ -0,0 +1,46 @@
1
+ .. _collections:
2
+
3
+ Example Notebooks
4
+ =================
5
+
6
+ .. toctree::
7
+ :glob:
8
+ :hidden:
9
+ :maxdepth: 1
10
+
11
+ _collections/examples/README.md
12
+
13
+ .. raw:: html
14
+
15
+ <div class="sphx-glr-thumbnails">
16
+
17
+ .. raw:: html
18
+
19
+ <div class="sphx-glr-thumbcontainer" tooltip="Parallel Simulation.">
20
+
21
+ .. only:: html
22
+
23
+ :doc:`_collections/examples/Parallel_computing`
24
+
25
+ .. raw:: html
26
+
27
+ <div class="sphx-glr-thumbnail-title">Parallel Simulation</div>
28
+ </div>
29
+
30
+
31
+ .. raw:: html
32
+
33
+ <div class="sphx-glr-thumbcontainer" tooltip="PD Controller.">
34
+
35
+ .. only:: html
36
+
37
+ :doc:`_collections/examples/PD_controller`
38
+
39
+ .. raw:: html
40
+
41
+ <div class="sphx-glr-thumbnail-title">PD Controller</div>
42
+ </div>
43
+
44
+ .. raw:: html
45
+
46
+ </div>
@@ -21,7 +21,7 @@ Features
21
21
 
22
22
  .. div:: sd-font-normal
23
23
 
24
- Physics engine in reduced coordinates implemented with `JAX <https://github.com/google/jax/>`_.
24
+ Physics engine in reduced coordinates implemented with JAX_.
25
25
  Compatibility with JIT compilation for increased performance and transparent support to execute logic on CPUs, GPUs, and TPUs.
26
26
  Parallel multi-body simulations on hardware accelerators for significantly increased throughput
27
27
 
@@ -68,17 +68,24 @@ Features
68
68
 
69
69
  .. toctree::
70
70
  :hidden:
71
- :maxdepth: 1
72
- :caption: User Guide
73
71
 
74
72
  guide/install
75
73
 
74
+ examples
75
+
76
76
  .. toctree::
77
77
  :hidden:
78
- :maxdepth: 1
78
+ :maxdepth: 2
79
79
  :caption: JAXsim API
80
80
 
81
- modules/index
81
+ modules/api
82
+ modules/integrators
83
+ modules/math
84
+ modules/mujoco
85
+ modules/parsers
86
+ modules/rbda
87
+ modules/typing
88
+ modules/utils
82
89
 
83
90
  Examples
84
91
  --------
@@ -90,13 +97,13 @@ Credits
90
97
 
91
98
  The physics module of JAXsim is based on the theory of the `Rigid Body Dynamics Algorithms <https://link.springer.com/book/10.1007/978-1-4899-7560-7>`_ book by Roy Featherstone.
92
99
  We structured part of our logic following its accompanying `code <http://royfeatherstone.org/spatial/index.html#spatial-software>`_.
93
- The physics engine is developed entirely in Python using `JAX <https://github.com/google/jax/>`_.
100
+ The physics engine is developed entirely in Python using JAX_.
94
101
 
95
- The inspiration for developing JAXsim originally stemmed from early versions of `google/brax <https://github.com/google/brax>`_.
102
+ The inspiration for developing JAXsim originally stemmed from early versions of Brax_.
96
103
  Here below we summarize the differences between the projects:
97
104
 
98
- - JAXsim simulates multibody dynamics in reduced coordinates, while brax v1 uses maximal coordinates.
99
- - The new v2 APIs of brax (and the new `MJX <https://mujoco.readthedocs.io/en/3.0.0/mjx.html>`_) were then implemented in reduced coordinates, following an approach comparable to JAXsim, with major differences in contact handling.
105
+ - JAXsim simulates multibody dynamics in reduced coordinates, while :code:`brax v1` uses maximal coordinates.
106
+ - The new v2 APIs of brax (and the new MJX_) were then implemented in reduced coordinates, following an approach comparable to JAXsim, with major differences in contact handling.
100
107
  - The rigid-body algorithms used in JAXsim allow to efficiently compute quantities based on the Euler-Poincarè
101
108
  formulation of the equations of motion, necessary for model-based robotics research.
102
109
  - JAXsim supports SDF (and, indirectly, URDF) models, assuming the model is described with the
@@ -122,3 +129,7 @@ License
122
129
  -------
123
130
 
124
131
  `BSD3 <https://choosealicense.com/licenses/bsd-3-clause/>`_
132
+
133
+ .. _Brax: https://github.com/google/brax
134
+ .. _MJX: https://mujoco.readthedocs.io/en/3.0.0/mjx.html
135
+ .. _JAX: https://github.com/google/jax