jaxsim 0.1rc0__py3-none-any.whl → 0.2.0__py3-none-any.whl

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 (89) hide show
  1. jaxsim/__init__.py +5 -6
  2. jaxsim/_version.py +2 -2
  3. jaxsim/api/__init__.py +3 -0
  4. jaxsim/api/com.py +240 -0
  5. jaxsim/api/common.py +216 -0
  6. jaxsim/api/contact.py +271 -0
  7. jaxsim/api/data.py +821 -0
  8. jaxsim/api/joint.py +189 -0
  9. jaxsim/api/kin_dyn_parameters.py +777 -0
  10. jaxsim/api/link.py +361 -0
  11. jaxsim/api/model.py +1633 -0
  12. jaxsim/api/ode.py +295 -0
  13. jaxsim/api/ode_data.py +694 -0
  14. jaxsim/api/references.py +421 -0
  15. jaxsim/integrators/__init__.py +2 -0
  16. jaxsim/integrators/common.py +594 -0
  17. jaxsim/integrators/fixed_step.py +102 -0
  18. jaxsim/integrators/variable_step.py +610 -0
  19. jaxsim/math/__init__.py +11 -0
  20. jaxsim/math/adjoint.py +24 -2
  21. jaxsim/math/joint_model.py +335 -0
  22. jaxsim/math/quaternion.py +44 -3
  23. jaxsim/math/rotation.py +4 -4
  24. jaxsim/math/transform.py +92 -0
  25. jaxsim/mujoco/__init__.py +3 -0
  26. jaxsim/mujoco/__main__.py +192 -0
  27. jaxsim/mujoco/loaders.py +615 -0
  28. jaxsim/mujoco/model.py +414 -0
  29. jaxsim/mujoco/visualizer.py +176 -0
  30. jaxsim/parsers/descriptions/collision.py +14 -0
  31. jaxsim/parsers/descriptions/link.py +13 -2
  32. jaxsim/parsers/kinematic_graph.py +8 -3
  33. jaxsim/parsers/rod/parser.py +54 -38
  34. jaxsim/parsers/rod/utils.py +7 -8
  35. jaxsim/rbda/__init__.py +7 -0
  36. jaxsim/rbda/aba.py +295 -0
  37. jaxsim/rbda/collidable_points.py +142 -0
  38. jaxsim/{physics/algos → rbda}/crba.py +43 -42
  39. jaxsim/rbda/forward_kinematics.py +113 -0
  40. jaxsim/rbda/jacobian.py +201 -0
  41. jaxsim/rbda/rnea.py +237 -0
  42. jaxsim/rbda/soft_contacts.py +296 -0
  43. jaxsim/rbda/utils.py +152 -0
  44. jaxsim/terrain/__init__.py +2 -0
  45. jaxsim/{physics/algos → terrain}/terrain.py +4 -6
  46. jaxsim/typing.py +30 -30
  47. jaxsim/utils/__init__.py +1 -4
  48. jaxsim/utils/hashless.py +18 -0
  49. jaxsim/utils/jaxsim_dataclass.py +281 -31
  50. {jaxsim-0.1rc0.dist-info → jaxsim-0.2.0.dist-info}/LICENSE +1 -1
  51. jaxsim-0.2.0.dist-info/METADATA +237 -0
  52. jaxsim-0.2.0.dist-info/RECORD +64 -0
  53. {jaxsim-0.1rc0.dist-info → jaxsim-0.2.0.dist-info}/WHEEL +1 -1
  54. jaxsim/high_level/__init__.py +0 -2
  55. jaxsim/high_level/common.py +0 -11
  56. jaxsim/high_level/joint.py +0 -148
  57. jaxsim/high_level/link.py +0 -259
  58. jaxsim/high_level/model.py +0 -1695
  59. jaxsim/math/conv.py +0 -114
  60. jaxsim/math/joint.py +0 -101
  61. jaxsim/math/plucker.py +0 -100
  62. jaxsim/physics/__init__.py +0 -12
  63. jaxsim/physics/algos/__init__.py +0 -0
  64. jaxsim/physics/algos/aba.py +0 -256
  65. jaxsim/physics/algos/aba_motors.py +0 -284
  66. jaxsim/physics/algos/forward_kinematics.py +0 -79
  67. jaxsim/physics/algos/jacobian.py +0 -98
  68. jaxsim/physics/algos/rnea.py +0 -180
  69. jaxsim/physics/algos/rnea_motors.py +0 -196
  70. jaxsim/physics/algos/soft_contacts.py +0 -454
  71. jaxsim/physics/algos/utils.py +0 -69
  72. jaxsim/physics/model/__init__.py +0 -0
  73. jaxsim/physics/model/ground_contact.py +0 -55
  74. jaxsim/physics/model/physics_model.py +0 -358
  75. jaxsim/physics/model/physics_model_state.py +0 -174
  76. jaxsim/simulation/__init__.py +0 -4
  77. jaxsim/simulation/integrators.py +0 -452
  78. jaxsim/simulation/ode.py +0 -290
  79. jaxsim/simulation/ode_data.py +0 -53
  80. jaxsim/simulation/ode_integration.py +0 -125
  81. jaxsim/simulation/simulator.py +0 -544
  82. jaxsim/simulation/simulator_callbacks.py +0 -53
  83. jaxsim/simulation/utils.py +0 -15
  84. jaxsim/sixd/__init__.py +0 -2
  85. jaxsim/utils/oop.py +0 -532
  86. jaxsim/utils/vmappable.py +0 -117
  87. jaxsim-0.1rc0.dist-info/METADATA +0 -167
  88. jaxsim-0.1rc0.dist-info/RECORD +0 -64
  89. {jaxsim-0.1rc0.dist-info → jaxsim-0.2.0.dist-info}/top_level.txt +0 -0
@@ -1,167 +0,0 @@
1
- Metadata-Version: 2.1
2
- Name: jaxsim
3
- Version: 0.1rc0
4
- Summary: A physics engine in reduced coordinates implemented with JAX.
5
- Home-page: https://github.com/ami-iit/jaxsim
6
- Author: Diego Ferigo
7
- Author-email: diego.ferigo@iit.it
8
- License: BSD
9
- Project-URL: Changelog, https://github.com/ami-iit/jaxsim/releases
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.11
23
- Classifier: Programming Language :: Python :: 3.12
24
- Classifier: Programming Language :: Python :: 3 :: Only
25
- Classifier: Programming Language :: Python :: Implementation :: CPython
26
- Classifier: Topic :: Games/Entertainment :: Simulation
27
- Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
28
- Classifier: Topic :: Scientific/Engineering :: Physics
29
- Classifier: Topic :: Software Development
30
- Requires-Python: >=3.11
31
- Description-Content-Type: text/markdown
32
- License-File: LICENSE
33
- Requires-Dist: coloredlogs
34
- Requires-Dist: jax >=0.4.13
35
- Requires-Dist: jaxlib
36
- Requires-Dist: jaxlie >=1.3.0
37
- Requires-Dist: jax-dataclasses >=1.4.0
38
- Requires-Dist: pptree
39
- Requires-Dist: rod
40
- Provides-Extra: all
41
- Requires-Dist: black ; extra == 'all'
42
- Requires-Dist: isort ; extra == 'all'
43
- Requires-Dist: idyntree ; extra == 'all'
44
- Requires-Dist: pytest >=6.0 ; extra == 'all'
45
- Requires-Dist: pytest-forked ; extra == 'all'
46
- Requires-Dist: pytest-icdiff ; extra == 'all'
47
- Requires-Dist: robot-descriptions ; extra == 'all'
48
- Provides-Extra: style
49
- Requires-Dist: black ; extra == 'style'
50
- Requires-Dist: isort ; extra == 'style'
51
- Provides-Extra: testing
52
- Requires-Dist: idyntree ; extra == 'testing'
53
- Requires-Dist: pytest >=6.0 ; extra == 'testing'
54
- Requires-Dist: pytest-forked ; extra == 'testing'
55
- Requires-Dist: pytest-icdiff ; extra == 'testing'
56
- Requires-Dist: robot-descriptions ; extra == 'testing'
57
-
58
- # JAXsim
59
-
60
- **A scalable physics engine and multibody dynamics library implemented with JAX. With JIT batteries 🔋**
61
-
62
- > [!WARNING]
63
- > This project is still experimental, APIs could change without notice.
64
-
65
- > [!NOTE]
66
- > This simulator currently focuses on locomotion applications. Only contacts with ground are supported.
67
-
68
- ## Features
69
-
70
- - Physics engine in reduced coordinates implemented with [JAX][jax] in Python.
71
- - JIT compilation of Python code for increased performance.
72
- - Transparent support to execute logic on CPUs, GPUs, and TPUs.
73
- - Parallel multi-body simulations on hardware accelerators for significantly increased throughput.
74
- - Support for SDF models (and, upon conversion, URDF models).
75
- - Collision detection between bodies and uneven ground surface.
76
- - Soft contacts model supporting full friction cone and sticking / slipping transition.
77
- - Complete support for inertial properties of rigid bodies.
78
- - Revolute, prismatic, and fixed joints support.
79
- - Integrators: forward Euler, semi-implicit Euler, Runge-Kutta 4.
80
- - High-level classes for object-oriented programming.
81
- - High-level classes to compute multi-body dynamics quantities from the simulation state.
82
- - High-level classes wrapping the low-level functional RBDAs with support of [multiple velocities representations][notation].
83
- - Default validation of JAX pytrees to prevent JIT re-compilations.
84
- - Preliminary support for automatic differentiation of RBDAs.
85
-
86
- [jax]: https://github.com/google/jax/
87
- [notation]: https://research.tue.nl/en/publications/multibody-dynamics-notation-version-2
88
-
89
- ## Documentation
90
-
91
- The JAXsim API documentation is available at [jaxsim.readthedocs.io](https://jaxsim.readthedocs.io/).
92
-
93
- ## Installation
94
-
95
- You can install the project with [`pypa/pip`][pip], preferably in a [virtual environment][venv]:
96
-
97
- ```bash
98
- pip install jaxsim
99
- ```
100
-
101
- Check [`setup.cfg`](setup.cfg) for the complete list of optional dependencies.
102
- Install all of them with `jaxsim[all]`.
103
-
104
- **Note:** For GPU support, follow the official [installation instruction][jax_gpu] of JAX.
105
-
106
- [pip]: https://github.com/pypa/pip/
107
- [venv]: https://docs.python.org/3/tutorial/venv.html
108
- [jax_gpu]: https://github.com/google/jax/#installation
109
-
110
- ## Quickstart
111
-
112
- Explore and learn how to use the library through practical demonstrations available in the [examples](./examples) folder.
113
-
114
- ## Credits
115
-
116
- The physics module of JAXsim is based on the theory of the [Rigid Body Dynamics Algorithms][RBDA]
117
- book by Roy Featherstone.
118
- We structured part of our logic following its accompanying [code][spatial_v2].
119
- The physics engine is developed entirely in Python using [JAX][jax].
120
-
121
- [RBDA]: https://link.springer.com/book/10.1007/978-1-4899-7560-7
122
- [spatial_v2]: http://royfeatherstone.org/spatial/index.html#spatial-software
123
-
124
- The inspiration for developing JAXsim originally stemmed from early versions of [`google/brax`][brax].
125
- Here below we summarize the differences between the projects:
126
-
127
- - JAXsim simulates multibody dynamics in reduced coordinates, while brax v1 uses maximal coordinates.
128
- - The new v2 APIs of brax (and the new [MJX][mjx]) were then implemented in reduced coordinates, following an approach comparable to JAXsim, with major differences in contact handling.
129
- - The rigid-body algorithms used in JAXsim allow to efficiently compute quantities based on the Euler-Poincarè
130
- formulation of the equations of motion, necessary for model-based robotics research.
131
- - JAXsim supports SDF (and, indirectly, URDF) models, assuming the model is described with the
132
- recent [Pose Frame Semantics][PFS].
133
- - Contrarily to brax, JAXsim only supports collision detection between bodies and a compliant ground surface.
134
- - The RBDAs of JAXsim support automatic differentiation, but this functionality has not been thoroughly tested.
135
-
136
- [brax]: https://github.com/google/brax
137
- [mjx]: https://mujoco.readthedocs.io/en/3.0.0/mjx.html
138
- [PFS]: http://sdformat.org/tutorials?tut=pose_frame_semantics
139
-
140
- ## Contributing
141
-
142
- Pull requests are welcome.
143
- For major changes, please open an issue first to discuss what you would like to change.
144
-
145
- ## Citing
146
-
147
- ```bibtex
148
- @software{ferigo_jaxsim_2022,
149
- author = {Diego Ferigo and Silvio Traversaro and Daniele Pucci},
150
- title = {{JAXsim}: A Physics Engine in Reduced Coordinates and Multibody Dynamics Library for Control and Robot Learning},
151
- url = {http://github.com/ami-iit/jaxsim},
152
- year = {2022},
153
- }
154
- ```
155
-
156
- ## People
157
-
158
- | Author | Maintainers |
159
- |:------:|:-----------:|
160
- | [<img src="https://avatars.githubusercontent.com/u/469199?v=4" width="40">][df] | [<img src="https://avatars.githubusercontent.com/u/102977828?v=4" width="40">][ff] [<img src="https://avatars.githubusercontent.com/u/469199?v=4" width="40">][df] |
161
-
162
- [df]: https://github.com/diegoferigo
163
- [ff]: https://github.com/flferretti
164
-
165
- ## License
166
-
167
- [BSD3](https://choosealicense.com/licenses/bsd-3-clause/)
@@ -1,64 +0,0 @@
1
- jaxsim/__init__.py,sha256=LJhCG4rsmCrTKTocwRIvllPQeYTxDn-VFn6NjPngn4s,1877
2
- jaxsim/_version.py,sha256=nrBgoAeJilYeqm-4jM5kvaCqeYEJ_yzl6oqlUk8BZK0,409
3
- jaxsim/logging.py,sha256=c4zhwBKf9eAYAHVp62kTEllqdsZgh0K-kPKVy8L3elU,1584
4
- jaxsim/typing.py,sha256=Skdm3OrTCT0MvaL57kD10-6LAfceYIUTzO8zuP5b0RA,777
5
- jaxsim/high_level/__init__.py,sha256=aWYBCsYmEO76Qt4GEi91Hye_ifGFLvc_bpy9OQplz2o,69
6
- jaxsim/high_level/common.py,sha256=6nyRlFsNOLEy5JvLH70VPWeHGSL_ZKNxX3Q62ccqSuY,196
7
- jaxsim/high_level/joint.py,sha256=0WF0QWkZzP0SXw0QYpn3PAwdZq0_uXFr2_f1OATiOBA,4089
8
- jaxsim/high_level/link.py,sha256=4kcBMh-3w9c-fkTYm3_sXfdwd3NwUm7jKf5BjwEge94,8010
9
- jaxsim/high_level/model.py,sha256=Krv1ZPWWz7bL_XdeyupHXoGLDI0fZy7aQcJPKpJJS2w,57347
10
- jaxsim/math/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
11
- jaxsim/math/adjoint.py,sha256=ImkOkWHQKMukBprLTsOPpSuqb1NNPA3_t447zRVo79s,3779
12
- jaxsim/math/conv.py,sha256=jbr9MU_vGtTpLTQpbqwAT4huF51skCfORFUBmKSdlaI,3138
13
- jaxsim/math/cross.py,sha256=U7yEx_l75mSy5g6O-jsjBztApvxC3WaV4MpkS5tThu4,1330
14
- jaxsim/math/inertia.py,sha256=UAB7ym4gXFanejcs_ovZMpteHCc6poWYmt-mLmd5hhk,1640
15
- jaxsim/math/joint.py,sha256=wDlXX3P9OK6miGxaEYtaKmYvlF1pY6aG5nmR7mI4rgk,2878
16
- jaxsim/math/plucker.py,sha256=44NvKVbcZoG8ivFN1BeXxDpuSFdEre1Q6ZXvhnmIiPY,2282
17
- jaxsim/math/quaternion.py,sha256=ToyRnAWU0JvKSSSX2vaJeSw2lMa5BGU72DjtonOUw0k,3685
18
- jaxsim/math/rotation.py,sha256=MHOnrpS5Sf4rszhOpZ8w7qXFkEl7UMltYimqqsuYuuU,2187
19
- jaxsim/math/skew.py,sha256=oOGSSR8PUGROl6IJFlrmu6K3gPH-u16hUPfKIkcVv9o,1177
20
- jaxsim/parsers/__init__.py,sha256=sonYi-bBWAoB04kp1mxT4uIORxjb7SdZ0ukGPmVx98Y,44
21
- jaxsim/parsers/kinematic_graph.py,sha256=S-JFz9TkwcmRnskSaZf34yccs1vdp0rh02A2colTLFs,23620
22
- jaxsim/parsers/descriptions/__init__.py,sha256=EbTfnrK3oCxA3pNv--YUwllJ6uICENvFgAdRbYtS9ts,238
23
- jaxsim/parsers/descriptions/collision.py,sha256=p8v24UyWNQFd3n5t3Z25IamfTqw19V9VlF5oyxeQXtU,2935
24
- jaxsim/parsers/descriptions/joint.py,sha256=hpH0ANvIhbEQk-NGRmWIvPv3lXW385TBIMWNgz5rzM4,4106
25
- jaxsim/parsers/descriptions/link.py,sha256=SONPaSwtNhIX93RIVng8Fb_Y7I5h3sk-5rsqd5U7Fmw,2493
26
- jaxsim/parsers/descriptions/model.py,sha256=wenuDrjoBf6prkzm9WyYT0nFWc0l6WBpKNjLoRUDPxo,8937
27
- jaxsim/parsers/rod/__init__.py,sha256=G2vqlLajBLUc4gyzXwsEI2Wsi4TMOIF9bLDFeT6KrGU,92
28
- jaxsim/parsers/rod/parser.py,sha256=JcHkCoIhsecA1MVfn8Q0Ubkhyzb5FDpaiZzFh-rbQ6Q,12173
29
- jaxsim/parsers/rod/utils.py,sha256=C3RfLSnHHR7rgZhnM15QjM_tpJFHKf1Jf2mOsdep3LM,6492
30
- jaxsim/physics/__init__.py,sha256=TKH7IqQi39eobWT03b820ky6tWVWFFWcO8YPayNpnZc,216
31
- jaxsim/physics/algos/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
32
- jaxsim/physics/algos/aba.py,sha256=fnV5kfCQkjDpf98w-_e85N9PglSycjhpqFYRIPn18qI,7583
33
- jaxsim/physics/algos/aba_motors.py,sha256=gGdFrFvImTwYs2V2lONHh85DObppee1MkDUoUGGoc24,8362
34
- jaxsim/physics/algos/crba.py,sha256=5OcPNaeGMZ3IcemhX4cdXvUUtysJv1SB92QkZTVtizc,4478
35
- jaxsim/physics/algos/forward_kinematics.py,sha256=myiqBGk5Nv-OIJpkNFVOby2FdHEJM3teEOQrL77dExQ,2513
36
- jaxsim/physics/algos/jacobian.py,sha256=HQk7UBYwWr2_qIYZBil_t9nqoL-TQB8hi-JHdPcSA0g,3166
37
- jaxsim/physics/algos/rnea.py,sha256=bIv6TTwdCZVj_s9Fd5i_ZTMib4W2_sn8gxCbMRrzRcg,5322
38
- jaxsim/physics/algos/rnea_motors.py,sha256=gaiEAOfpw9kZBVImfNKKwpgIgM8eygVu--wszh3npJc,5684
39
- jaxsim/physics/algos/soft_contacts.py,sha256=4a0IK__KWzfWDUVMMzYwmEtkzZHx3taqcs26FYN7RZw,16079
40
- jaxsim/physics/algos/terrain.py,sha256=Gw9-1AjU4c4Yd2xzo0i-fgWwYlroj03TjScJsz_2m9o,2228
41
- jaxsim/physics/algos/utils.py,sha256=0OiELbXtv5Jink3l-vMK_OGHgGkZ_wTAAclcd7vDKoc,2230
42
- jaxsim/physics/model/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
43
- jaxsim/physics/model/ground_contact.py,sha256=mva-yDzYHREmgUu8jGJmIAsf66_SF6ZISmN-XQQ9Ktw,1924
44
- jaxsim/physics/model/physics_model.py,sha256=UtGBTxXR0cLEc9EHzDo6Q__RRNgX4VCS88wQ7SsJuyU,13245
45
- jaxsim/physics/model/physics_model_state.py,sha256=nAXAwXnL7kez8DlxI_AxOY-p9ZJjVFAgZ-P0JZ5-crA,5384
46
- jaxsim/simulation/__init__.py,sha256=WOWkzq7rMGa4xWvjNqTYtD0Nl4yLQtULGW1xU7hD9m0,182
47
- jaxsim/simulation/integrators.py,sha256=E6kz4irJYzPi4hUnzyxOgGZJiOb1ATT9QQ-UtyLOjMo,13779
48
- jaxsim/simulation/ode.py,sha256=cawB4qsuSoGifF_wkwGwOFU8NB0R89isa7sK-IZipv8,10376
49
- jaxsim/simulation/ode_data.py,sha256=spzHU5LnOL6mJPuuhho-J61koT-bcTRonqMMkiPo3M4,1750
50
- jaxsim/simulation/ode_integration.py,sha256=56PqhI_MEeiBQ3MNpE2ytSQBntBPPlUM-oe50DOpbHw,4042
51
- jaxsim/simulation/simulator.py,sha256=Et58GPQkXIWL0NfM8DczbjJCixz2KI6Imz8w9KFWzN4,18168
52
- jaxsim/simulation/simulator_callbacks.py,sha256=FEKyQyhVmDRckIOizvNDhSj1Xh6gYLO7yXDrK09_VQY,1476
53
- jaxsim/simulation/utils.py,sha256=YdNA1mYGBAE7xVA-Dw7_OoBEuh0J8RS2X0RPQZf4c5E,329
54
- jaxsim/sixd/__init__.py,sha256=3tbynXQjvJ6X1IRcDH5eQBgBL0ilTSerDkS8SEF7a8A,62
55
- jaxsim/utils/__init__.py,sha256=UQsjrWMrhSQUfUXIIQhzd0kEioLHR3U0OhB-sIQqOd4,291
56
- jaxsim/utils/jaxsim_dataclass.py,sha256=FbjfEoCoYC_F-M3wUggXiEhQ7MMS-V_ciYQca-uSiMQ,3272
57
- jaxsim/utils/oop.py,sha256=PPQvD2_pXx81UD4dbu8E8RiYLegJNEsD23IT-YkEuQs,22434
58
- jaxsim/utils/tracing.py,sha256=KDMoyVPlu2NJvFkhtZwq5AkqMMgajt3munvJom-vEjQ,650
59
- jaxsim/utils/vmappable.py,sha256=NqGL9nGFRI5OorCfnjXsjR_yXigzDxL0lW1YhQ_nMTY,3655
60
- jaxsim-0.1rc0.dist-info/LICENSE,sha256=EsU2z6_sWW4Zduzq3goVWjZoCZVKQsM4H_y0o7oRA7Q,1547
61
- jaxsim-0.1rc0.dist-info/METADATA,sha256=lCoeEqU6jjUIR1o02r7qhR4akKSFw9h-Q56uFT-12gM,7143
62
- jaxsim-0.1rc0.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
63
- jaxsim-0.1rc0.dist-info/top_level.txt,sha256=LxGMA8FLtXjQ6oI7N5gd_R_oSUHxpXxUEOfT1xS_ni0,7
64
- jaxsim-0.1rc0.dist-info/RECORD,,