Skip to main content

Fast and light weight simulator of rigid poly-articulated systems.

Project description


License Version Python Downloads Try it in Binder Try it in Colab Try in in Deepnote Linux CI MacOS CI Windows CI

Jiminy is a cross-platform open-source simulator for poly-articulated systems. It was built with two ideas in mind:

  • provide a fast yet physically accurate simulator for robotics research.

Jiminy is built around Pinocchio, an open-source fast and efficient kinematics and dynamics library. Jiminy thus uses minimal coordinates and Lagrangian dynamics to simulate an articulated system: this makes Jiminy as close as numerically possible to an analytical solution, without the risk of joint violation.

  • build an efficient and flexible platform for machine learning in robotics.

Beside a strong focus on performance to answer machine learning's need for running computationally demanding distributed simulations, Jiminy offers convenience tools for learning via a dedicated module Gym-Jiminy. It is fully compliant with gym standard API and provides a highly customizable wrapper to interface any robotics system with state-of-the-art learning frameworks.

Key features

General

  • Simulation of multi-body systems using minimal coordinates and Lagrangian dynamics.
  • Comprehensive API for computing dynamic quantities and their derivatives thanks to Pinocchio.
  • C++ core with full python bindings, providing user API parity between both languages.
  • Designed with machine learning in mind, with seamless wrapping of robots as OpenAI Gym environments using one-liners. Jiminy provides both the physical engine and the robot model (including sensors) required for learning.
  • Fully modular learning environment pipeline design, with plug-and-play robotic observers and controllers, but also composable reward components and termination conditions. See example here.
  • Rich simulation log output, easily customizable for recording, introspection and debugging. The simulation log is made available in RAM directly for fast access, and can be exported in binary or HDF5 format.
  • Dedicated integration in Google Colab, Jupyter Lab, Mybinder and VSCode working out-of-the-box - including interactive 3D viewer based on Meshcat. This facilitates working on remote environments.
  • Synchronous and single-threaded offscreen rendering capability, GPU-accelerated without graphical server, based on Panda3d.
  • Easy to install: pip is all that is needed to get you started ! Support Linux, Mac and Windows platforms.

Physics

  • Provide both classical phenomenological force-level spring-damper contact model and constraint solver satisfying the maximum energy dissipation principle.
  • Support contact and collision with the ground from a fixed set of contact points (primitives and meshes yet to come).
  • Simulate multiple articulated systems simultaneously interacting with each other, to support use cases such as multi-agent learning or swarm robotics.
  • Modeling of motor transmission backlash and structural deformation via compliant spherical joints with spring-damper dynamics, which are common phenomena, particularly in bipedal robotics.
  • Simulate both continuous or discrete-time controller, with possibly different controller and sensor update frequencies.

A more complete list of features is available on the wiki.

The documentation is available on Github.io, or locally in docs/html/index.html if built from source.

Gym Jiminy

Gym Jiminy is an interface between Jiminy simulator and reinforcement learning frameworks. It is fully compliant with now standard Open AI Gym API. Additionally, it offers a generic and easily configurable learning environment for learning locomotion tasks, with minimal intervention from the user, who usually only needs to provide the robot's URDF file. Furthermore, Gym Jiminy enables easy modification of many aspects of the simulation to provide richer exploration and ensure robust learning. This ranges from external perturbation forces to sensor noise and bias, including randomization of masses and inertias, ground friction model or even gravity itself. Note that learning can easily be done on any high-level dynamics features, or restricted to mock sensor data for end-to-end learning.

Gym is cross-platform and compatible with most Reinforcement Learning frameworks implementing standard algorithms. For instance, Stable Baselines 3, Tianshou, or Rllib. Stable Baselines 3 and Tianshou use its counterpart Pytorch, and Rllib supports both. A few learning examples relying on those packages are also provided.

Pre-configured environments for some well-known toys models and reference robotics platforms are provided: cartpole, acrobot, pendulum, Ant, ANYmal, and Cassie, and Atlas.

Demo

Getting started

Jiminy and Gym Jiminy support Linux, Mac and Windows, and is compatible with Python3.10+. Pre-compiled binaries are distributed on PyPi. They can be installed using pip>=20.3:

# For installing Jiminy
python -m pip install --prefer-binary jiminy_py[meshcat,plot]

# For installing Gym Jiminy
python -m pip install --prefer-binary gym_jiminy[all]

Detailed installation instructions, including building from source, are available here.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

jiminy_py-1.8.13-cp313-cp313-win_amd64.whl (31.0 MB view details)

Uploaded CPython 3.13Windows x86-64

jiminy_py-1.8.13-cp313-cp313-manylinux_2_28_x86_64.whl (20.9 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64

jiminy_py-1.8.13-cp313-cp313-macosx_11_0_universal2.whl (44.6 MB view details)

Uploaded CPython 3.13macOS 11.0+ universal2 (ARM64, x86-64)

jiminy_py-1.8.13-cp312-cp312-win_amd64.whl (31.0 MB view details)

Uploaded CPython 3.12Windows x86-64

jiminy_py-1.8.13-cp312-cp312-manylinux_2_28_x86_64.whl (20.9 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

jiminy_py-1.8.13-cp312-cp312-macosx_11_0_universal2.whl (44.6 MB view details)

Uploaded CPython 3.12macOS 11.0+ universal2 (ARM64, x86-64)

jiminy_py-1.8.13-cp311-cp311-win_amd64.whl (30.8 MB view details)

Uploaded CPython 3.11Windows x86-64

jiminy_py-1.8.13-cp311-cp311-manylinux_2_28_x86_64.whl (20.9 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

jiminy_py-1.8.13-cp311-cp311-macosx_11_0_universal2.whl (44.4 MB view details)

Uploaded CPython 3.11macOS 11.0+ universal2 (ARM64, x86-64)

jiminy_py-1.8.13-cp310-cp310-win_amd64.whl (30.8 MB view details)

Uploaded CPython 3.10Windows x86-64

jiminy_py-1.8.13-cp310-cp310-manylinux_2_28_x86_64.whl (20.9 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

jiminy_py-1.8.13-cp310-cp310-macosx_11_0_universal2.whl (44.4 MB view details)

Uploaded CPython 3.10macOS 11.0+ universal2 (ARM64, x86-64)

File details

Details for the file jiminy_py-1.8.13-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: jiminy_py-1.8.13-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 31.0 MB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.8

File hashes

Hashes for jiminy_py-1.8.13-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 f2e07eb79951c3aa1737d474ccf27d0206b3b1719b53d9673602a79dd8b3f98b
MD5 a09b22d5e074715aead5d3b78da1f20f
BLAKE2b-256 c37b8665b3ea7f0be9f9717b2d783ebc62b5a4c3cdbfa0329a522fe93aa2916d

See more details on using hashes here.

File details

Details for the file jiminy_py-1.8.13-cp313-cp313-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for jiminy_py-1.8.13-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b15740993605cb119ba43dc37b9079afb84841cbea20bfec06977b9eb706a0fc
MD5 8f823d8fa608c4d7e91fe706af915aea
BLAKE2b-256 a8ea9a43e891ff163b2fe574f70b700ebd85f0157020780910382c09398cb224

See more details on using hashes here.

File details

Details for the file jiminy_py-1.8.13-cp313-cp313-macosx_11_0_universal2.whl.

File metadata

File hashes

Hashes for jiminy_py-1.8.13-cp313-cp313-macosx_11_0_universal2.whl
Algorithm Hash digest
SHA256 e7f96dc8c4b1e48ccf243bada386d108c02caa52ada9be2fc505a4676a76ce30
MD5 9a20887bf158694a55ee876607babb37
BLAKE2b-256 1181a0380e1ebb6a3d8092f9668d85bc141e72b978ff642f75afd2c0651a3409

See more details on using hashes here.

File details

Details for the file jiminy_py-1.8.13-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: jiminy_py-1.8.13-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 31.0 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.8

File hashes

Hashes for jiminy_py-1.8.13-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 8bb2200979185df1e91045abd5bb5ba134a3feef6c8bb35d9da3f0c49f9830cc
MD5 e611cbd79feebaa0942bd7751ccccb55
BLAKE2b-256 3c98a7e1b031430318c390a98be3f58b740de259a9215fb9c055e9ac9ed48b3b

See more details on using hashes here.

File details

Details for the file jiminy_py-1.8.13-cp312-cp312-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for jiminy_py-1.8.13-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a38d4c4506b68280bc8525d66e13fa4a62d1d4005f1db6e5e6291595fa7327dc
MD5 c4511d3dc25a27fd4afd864661522c55
BLAKE2b-256 7ffc796dae2e63db530c3655be67932b3b64ba681c00e457afe5d79f51bf50bf

See more details on using hashes here.

File details

Details for the file jiminy_py-1.8.13-cp312-cp312-macosx_11_0_universal2.whl.

File metadata

File hashes

Hashes for jiminy_py-1.8.13-cp312-cp312-macosx_11_0_universal2.whl
Algorithm Hash digest
SHA256 20d59e2a777ea6be8eff6a1659e18aa510c71964e3bff64fdd0bcdd82e311352
MD5 d31acb87c5f54c23da704562e1539ab1
BLAKE2b-256 b691261a64b5ca7e69f81818c45dc8293111da19b8477b299d522fd584a24ef7

See more details on using hashes here.

File details

Details for the file jiminy_py-1.8.13-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: jiminy_py-1.8.13-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 30.8 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.8

File hashes

Hashes for jiminy_py-1.8.13-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 c884de34485eb981db95621bdaa1ca37239042a4b443be3294c3aa897ae9ad7e
MD5 a2de9de534f0c85d7ee9cc166b8a3d11
BLAKE2b-256 fa81227775296a57132a53c603c67479709a02ff80d2b72d9bb3955cfaecf510

See more details on using hashes here.

File details

Details for the file jiminy_py-1.8.13-cp311-cp311-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for jiminy_py-1.8.13-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4a339e462fe3e3a5cc5c70d340ab4b4fb68d308f64e14900cc7d56272676ab8b
MD5 72d2f995fd834888923da93d122c8812
BLAKE2b-256 020e32b03c4ea5b2ead8c5692b853f836da81b3068cf10070c7131c16ec31ff9

See more details on using hashes here.

File details

Details for the file jiminy_py-1.8.13-cp311-cp311-macosx_11_0_universal2.whl.

File metadata

File hashes

Hashes for jiminy_py-1.8.13-cp311-cp311-macosx_11_0_universal2.whl
Algorithm Hash digest
SHA256 5d6a7bcb74f1f5e5cb5a088a37991c18a6311849c65be33be3f1cd90d6bd9add
MD5 322cf2f2c7bffce868832ff68d2c344c
BLAKE2b-256 90e215a42957db2e4cbcb65815c938ec50e4da1768bd9e96b86b3ca49478d696

See more details on using hashes here.

File details

Details for the file jiminy_py-1.8.13-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: jiminy_py-1.8.13-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 30.8 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.8

File hashes

Hashes for jiminy_py-1.8.13-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 025812905c204510376904b34afd0f43eff996b1e58a2fe221a2e16508b16fae
MD5 daf7e8e950446e2ebb24eff7d6805ce0
BLAKE2b-256 8306b15bca79afa6ec927bd2518ac9bde2a7e938488f6e57256e66ed27961f9d

See more details on using hashes here.

File details

Details for the file jiminy_py-1.8.13-cp310-cp310-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for jiminy_py-1.8.13-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 95c008063351660447490329ab477bf8385abaf5589ba243eab072a5c9558ab6
MD5 68e638f33effae2e5a1ac9b101d1a711
BLAKE2b-256 3f3b2cf9869a825171948c4e62a7bfc300bba868db6c164e51a09dcab4803e6a

See more details on using hashes here.

File details

Details for the file jiminy_py-1.8.13-cp310-cp310-macosx_11_0_universal2.whl.

File metadata

File hashes

Hashes for jiminy_py-1.8.13-cp310-cp310-macosx_11_0_universal2.whl
Algorithm Hash digest
SHA256 ef966b8cb4c9ec20cc364b270907565be0498257e693c6e044e3853e3164d723
MD5 6c523587c675cff007a3a3125e4035c1
BLAKE2b-256 40cb9a4dd505fdee8204dc29706f64b22bcf5c7890a4f413550008d87880e66b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page