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.8+. 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.8-cp312-cp312-win_amd64.whl (23.6 MB view details)

Uploaded CPython 3.12 Windows x86-64

jiminy_py-1.8.8-cp312-cp312-manylinux_2_28_x86_64.whl (18.2 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.28+ x86-64

jiminy_py-1.8.8-cp312-cp312-macosx_11_0_universal2.whl (42.1 MB view details)

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

jiminy_py-1.8.8-cp311-cp311-win_amd64.whl (23.6 MB view details)

Uploaded CPython 3.11 Windows x86-64

jiminy_py-1.8.8-cp311-cp311-manylinux_2_28_x86_64.whl (18.3 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.28+ x86-64

jiminy_py-1.8.8-cp311-cp311-macosx_11_0_universal2.whl (41.8 MB view details)

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

jiminy_py-1.8.8-cp310-cp310-win_amd64.whl (23.6 MB view details)

Uploaded CPython 3.10 Windows x86-64

jiminy_py-1.8.8-cp310-cp310-manylinux_2_28_x86_64.whl (18.3 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.28+ x86-64

jiminy_py-1.8.8-cp310-cp310-macosx_11_0_x86_64.macosx_11_0_universal2.whl (42.1 MB view details)

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

jiminy_py-1.8.8-cp39-cp39-win_amd64.whl (23.6 MB view details)

Uploaded CPython 3.9 Windows x86-64

jiminy_py-1.8.8-cp39-cp39-manylinux_2_28_x86_64.whl (18.3 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.28+ x86-64

jiminy_py-1.8.8-cp39-cp39-macosx_11_0_x86_64.macosx_11_0_universal2.whl (42.1 MB view details)

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

jiminy_py-1.8.8-cp38-cp38-win_amd64.whl (23.6 MB view details)

Uploaded CPython 3.8 Windows x86-64

jiminy_py-1.8.8-cp38-cp38-manylinux_2_28_x86_64.whl (18.3 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.28+ x86-64

jiminy_py-1.8.8-cp38-cp38-macosx_11_0_x86_64.macosx_11_0_universal2.whl (41.8 MB view details)

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

File details

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

File metadata

File hashes

Hashes for jiminy_py-1.8.8-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 8f4b6ed06e4367922dc67a801350e4b1a7d0aaf090989d4cd6df19b5a0851d0e
MD5 31d587c372c301d62a6d04f58055d8c8
BLAKE2b-256 f5707816fb125a026297c46e9d8d8c85e62a5cd2a6134b06b9628ac287b3c4d5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jiminy_py-1.8.8-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a5064e6e357aefb86cf514287bf3f91dd54c9d82bac97c597c8f09d0b2251133
MD5 37e1f1944d752afc6c0e7cf5162ee29c
BLAKE2b-256 e6074dfadfc185dda6d7326664b692d4b2225337a0b9b3faa3f3ad4315b5cec6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jiminy_py-1.8.8-cp312-cp312-macosx_11_0_universal2.whl
Algorithm Hash digest
SHA256 a82fe3d5f98be76e8b09c87104d14e8c23bf7c62e60f3e0ea2a5a3c0d696b901
MD5 37c524afad353365f3597a1fd678ca3b
BLAKE2b-256 3f2c709cedf061e31ff1cbb0e22adab256fe1c6792535eacf190e19fecda61c2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jiminy_py-1.8.8-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 98b07719fbe6b4c2c11a943b3692cefa2f28463efa53ba70d1d790aeb0258549
MD5 350c123e1786cfb72b5eb81e1b407f80
BLAKE2b-256 30aa61fd466acccbabfd606695114093e03ad1dbd1ad4e0682d6bd2122dc143d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jiminy_py-1.8.8-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b2bbf6815e6051813562ee9e5acbc1741a6069459dbffcc41b4bf53ee7c48f82
MD5 49a6b43f0021176d0a7229bced569af9
BLAKE2b-256 2f1ce329ccf9b59f957bde57e6309f9bd6ca5c410eca1b20a352272ea64a0dcb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jiminy_py-1.8.8-cp311-cp311-macosx_11_0_universal2.whl
Algorithm Hash digest
SHA256 1afefc4797e597e27d1232fd53d94de1d9c5237ced52440f99ac5e883c2d1204
MD5 d026230ae3d56bd855e86f6c1faff26a
BLAKE2b-256 63958bd5bed4833aecc1bb32a31222da285a096fd462c2645dd48d69f176f854

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jiminy_py-1.8.8-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 323286b8dd04b4e566267437691ddbd3e97306a3e0597b46a369bc9b08b52eeb
MD5 c63f63a755c180d7534952f805466c10
BLAKE2b-256 20d813abba2088f701cebf6485d06b98d6498171975009f74120915f674f82e5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jiminy_py-1.8.8-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6f60aeccd5ffdaf720ebc3d02267958694d84c0a561cc893f0ea13d8926567ad
MD5 627211c02da853e925ebf8146b0177fb
BLAKE2b-256 64a375fc73c2e1df8c46011481be3a63dc11b01c8f50f334628e54797887336a

See more details on using hashes here.

File details

Details for the file jiminy_py-1.8.8-cp310-cp310-macosx_11_0_x86_64.macosx_11_0_universal2.whl.

File metadata

File hashes

Hashes for jiminy_py-1.8.8-cp310-cp310-macosx_11_0_x86_64.macosx_11_0_universal2.whl
Algorithm Hash digest
SHA256 d953b43ab8fccd45a19e50bfd22ed1a5a0f52de1f5c06cfd695c16e6e9daefc2
MD5 e44ea76a017b2bb837c2c1a879bfc464
BLAKE2b-256 a458680013e6cf508ae7f552276870bcab9f8b01dbf81786f2d84d7f81a6e7f2

See more details on using hashes here.

File details

Details for the file jiminy_py-1.8.8-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: jiminy_py-1.8.8-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 23.6 MB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/4.0.2 CPython/3.11.9

File hashes

Hashes for jiminy_py-1.8.8-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 8429c2daa434337484fc05551aa38c56c9f406bf9dadeaad255d59bf54a00ff0
MD5 4255fc97dde85c952c50bec0c140793f
BLAKE2b-256 53607382392efa8238387e4ddde331fe517cc57eae1e1ae62b8814b0e7a7bdd7

See more details on using hashes here.

File details

Details for the file jiminy_py-1.8.8-cp39-cp39-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for jiminy_py-1.8.8-cp39-cp39-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b1bd34db22e99bca55626ec18e47d6fd533c4034d5d6257a4673028c362448f3
MD5 30779cc057906c4284c83d14f989e5c0
BLAKE2b-256 20e27b074a91549e7bf9221c0fdf6745031bc3c604e712080fb82f682bee5390

See more details on using hashes here.

File details

Details for the file jiminy_py-1.8.8-cp39-cp39-macosx_11_0_x86_64.macosx_11_0_universal2.whl.

File metadata

File hashes

Hashes for jiminy_py-1.8.8-cp39-cp39-macosx_11_0_x86_64.macosx_11_0_universal2.whl
Algorithm Hash digest
SHA256 51273437c0574007852e4684482f756d64c0c3947628b9ed10b02edb2180ba2b
MD5 94f648d45a8366685f3131a6b853200b
BLAKE2b-256 ec6fa9489fe112ad3eb2160ddf00aca32eec5d9ac567d44d4b953c1615a30ea4

See more details on using hashes here.

File details

Details for the file jiminy_py-1.8.8-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: jiminy_py-1.8.8-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 23.6 MB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/4.0.2 CPython/3.11.9

File hashes

Hashes for jiminy_py-1.8.8-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 0a0a742dd6c40761bd7daac9844a9b739046881fd8dab3ab78a28c562a9b37c1
MD5 3d6495a4a5154940bfe136df994000ed
BLAKE2b-256 5a39a246cc098ecd8f7ee0efbaf0439ba177900d1c8b75e0c25334a5b5a68e57

See more details on using hashes here.

File details

Details for the file jiminy_py-1.8.8-cp38-cp38-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for jiminy_py-1.8.8-cp38-cp38-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 efef6a939701226b128aa1b8b73b49576fbe51f9705c57cc6be75299903f07b8
MD5 ef4dea8f0b6be5b3cd1a3b580803a207
BLAKE2b-256 0af4218646223f2d6b60284bc9f76df3ef341c738d892daa96705fa9dbaddcb5

See more details on using hashes here.

File details

Details for the file jiminy_py-1.8.8-cp38-cp38-macosx_11_0_x86_64.macosx_11_0_universal2.whl.

File metadata

File hashes

Hashes for jiminy_py-1.8.8-cp38-cp38-macosx_11_0_x86_64.macosx_11_0_universal2.whl
Algorithm Hash digest
SHA256 a53243af678dcda7b89b10276d67ac25ab04d436c43c2a8789d63864eddedbbe
MD5 71e818358abc0745b18b79f0fa3c6a54
BLAKE2b-256 8a513197f75795d939848fba5886d7efbee5538e24ca5a365a594fa3a47fcbc4

See more details on using hashes here.

Supported by

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