Skip to main content

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

Project description


Jiminy is a fast and lightweight 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 an 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, exposing and extending Pinocchio.
  • C++ core with full python bindings, providing frontend API parity between both languages.
  • Designed with machine learning in mind, with seemless 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.
  • Easy to install: pip is all that is needed to get you started !
  • Dedicated integration in jupyter notebook working out-of-the-box - including 3D rendering using Meshcat. This facilitates working on remote headless environnement such as machine learning clusters.
  • Cross-platform offscreen rendering capability, without requiring X-server, based on Panda3d.
  • 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 raw binary, CSV or HDF5 format.
  • Available for both Linux and Windows platforms.

Physics

  • Provide both classical phenomenological force-level spring-damper contact model and impulse-level LCP based on maximum energy dissipation principle.
  • Support contact and collision with the ground, using either a fixed set of contact points or collision meshes and primitives.
  • Able to simulate multiple articulated systems simultaneously, interacting with each other, to support use cases such as multi-agent reinforcement learning or swarm robotics.
  • Support of compliant joints with force-based spring-damper dynamics, to model joint elasticity, a common phenomenon particularly in legged robotics.
  • Simulate both continuous or discrete-time controller, with possibly different controller and sensor update frequencies.

A more complete list of features, development status, and changelog are 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, RL Coach, Tianshou, or Rllib. RL Coach leverages the open-source Machine Learning framework Tensorflow as backend, 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 are compatible with Linux and Windows, and supports Python3.6+. They are distributed on PyPi for Python 3.6/3.7/3.8/3.9 for both platform, so they can be installed using pip:

# For installing Jiminy
python -m pip install jiminy_py

# For installing Gym Jiminy
python -m pip install 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

If you're not sure about the file name format, learn more about wheel file names.

jiminy_py-1.6.25-cp39-cp39-win_amd64.whl (20.1 MB view details)

Uploaded CPython 3.9Windows x86-64

jiminy_py-1.6.25-cp39-cp39-manylinux_2_24_x86_64.whl (29.7 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.24+ x86-64

jiminy_py-1.6.25-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (30.4 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.12+ x86-64

jiminy_py-1.6.25-cp38-cp38-win_amd64.whl (20.1 MB view details)

Uploaded CPython 3.8Windows x86-64

jiminy_py-1.6.25-cp38-cp38-manylinux_2_24_x86_64.whl (29.7 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.24+ x86-64

jiminy_py-1.6.25-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (30.4 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.12+ x86-64

jiminy_py-1.6.25-cp37-cp37m-win_amd64.whl (20.1 MB view details)

Uploaded CPython 3.7mWindows x86-64

jiminy_py-1.6.25-cp37-cp37m-manylinux_2_24_x86_64.whl (29.7 MB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.24+ x86-64

jiminy_py-1.6.25-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (30.4 MB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.12+ x86-64

jiminy_py-1.6.25-cp36-cp36m-win_amd64.whl (20.1 MB view details)

Uploaded CPython 3.6mWindows x86-64

jiminy_py-1.6.25-cp36-cp36m-manylinux_2_24_x86_64.whl (29.7 MB view details)

Uploaded CPython 3.6mmanylinux: glibc 2.24+ x86-64

jiminy_py-1.6.25-cp36-cp36m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (30.4 MB view details)

Uploaded CPython 3.6mmanylinux: glibc 2.12+ x86-64

File details

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

File metadata

  • Download URL: jiminy_py-1.6.25-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 20.1 MB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.6.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.9.6

File hashes

Hashes for jiminy_py-1.6.25-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 0a991066aabddd0eddf302fe4bd78c5280a4502f02f714759b3506ddf1c321c0
MD5 29d033041504b2bea4cb4a48d7dc6fe5
BLAKE2b-256 7b293c905f6287146727312f18f8ae0ea800e8b37e7487101699e026ca64bc69

See more details on using hashes here.

File details

Details for the file jiminy_py-1.6.25-cp39-cp39-manylinux_2_24_x86_64.whl.

File metadata

  • Download URL: jiminy_py-1.6.25-cp39-cp39-manylinux_2_24_x86_64.whl
  • Upload date:
  • Size: 29.7 MB
  • Tags: CPython 3.9, manylinux: glibc 2.24+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.10.1 pkginfo/1.5.0.1 requests/2.23.0 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.6.9

File hashes

Hashes for jiminy_py-1.6.25-cp39-cp39-manylinux_2_24_x86_64.whl
Algorithm Hash digest
SHA256 753ca5f1d4e984b4903283c0f921ab26efae0773e6c8d70a2cdae982262bba74
MD5 f8aa371f227de30e3efe14bbdb25d3ef
BLAKE2b-256 9cce4d195c0de5b63738367f17da7a49421156960e52151c676f951214b97680

See more details on using hashes here.

File details

Details for the file jiminy_py-1.6.25-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for jiminy_py-1.6.25-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 e6531c3657b58c32bfd61d54260c94b1b0672403c9569508d46a00df56230a2a
MD5 4beccba04efdb15e82abfecec0d776b9
BLAKE2b-256 33292f101bca2062db665c746ae59542435c9a2c5a45d2a5266779457a127e6b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: jiminy_py-1.6.25-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 20.1 MB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.6.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.9.6

File hashes

Hashes for jiminy_py-1.6.25-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 1304376a2e8353be2e3cbfd520154305a952d681f23b1770527003bf0ad6c16d
MD5 9fd381cc91f5d07acb176e2b94f56c2d
BLAKE2b-256 3d9fdeec994cdd9f9576d8c2a28c4d155471f4d5a2053b7a29686c4d579b95c3

See more details on using hashes here.

File details

Details for the file jiminy_py-1.6.25-cp38-cp38-manylinux_2_24_x86_64.whl.

File metadata

  • Download URL: jiminy_py-1.6.25-cp38-cp38-manylinux_2_24_x86_64.whl
  • Upload date:
  • Size: 29.7 MB
  • Tags: CPython 3.8, manylinux: glibc 2.24+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.6.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.9.6

File hashes

Hashes for jiminy_py-1.6.25-cp38-cp38-manylinux_2_24_x86_64.whl
Algorithm Hash digest
SHA256 90fff290c51db8a2f1b1451572f0dc0e481add476146cce253bdd14ddeda0cdc
MD5 9ab56ef6fa641b2e26be687a0f7d4156
BLAKE2b-256 bf3bcced1b28ea49bcb0ef368091d203df9c6a6c75a6edf1ac77dc33adf82bba

See more details on using hashes here.

File details

Details for the file jiminy_py-1.6.25-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for jiminy_py-1.6.25-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 2e98098ebc78fa1f428c72e0a65fcfa3bd1d8bce3949b511644da8d03728fee7
MD5 63e84d5dde17ec2f39be82402b7b3cd4
BLAKE2b-256 0fbb370087f526f711428aa63a31e50d4059aee1c588b40a996d4e6bd0294028

See more details on using hashes here.

File details

Details for the file jiminy_py-1.6.25-cp37-cp37m-win_amd64.whl.

File metadata

  • Download URL: jiminy_py-1.6.25-cp37-cp37m-win_amd64.whl
  • Upload date:
  • Size: 20.1 MB
  • Tags: CPython 3.7m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.6.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.9.6

File hashes

Hashes for jiminy_py-1.6.25-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 19001b9c130924d76feac77d61247e90ebb52e39892840629cb74bf4ccfe28b2
MD5 56e768cd4b3264e35e44c3a85e69088c
BLAKE2b-256 abbae733c4688ec05a55fa53f6abd0e4357dda4c278adbea52fface6f820c0c7

See more details on using hashes here.

File details

Details for the file jiminy_py-1.6.25-cp37-cp37m-manylinux_2_24_x86_64.whl.

File metadata

  • Download URL: jiminy_py-1.6.25-cp37-cp37m-manylinux_2_24_x86_64.whl
  • Upload date:
  • Size: 29.7 MB
  • Tags: CPython 3.7m, manylinux: glibc 2.24+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.6.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.9.6

File hashes

Hashes for jiminy_py-1.6.25-cp37-cp37m-manylinux_2_24_x86_64.whl
Algorithm Hash digest
SHA256 f635f31915357e41274acdbbba0102b23d7887075176542426d1fe8828242911
MD5 4c260c0b41d496111ce0290bf2f5e469
BLAKE2b-256 32b0454164ddf81b373f6ce597fdb465d4cc22929a7ef31984cf2df7876b2e64

See more details on using hashes here.

File details

Details for the file jiminy_py-1.6.25-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for jiminy_py-1.6.25-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 351eac934501d70e6d762337dcb99728cd2003e5900b9b12c93213ed89a94d9d
MD5 0b15e395f3e0e52d57e0cb87a44c7440
BLAKE2b-256 989c09eaaccfd3fc18fbe8654098febb0bfee0b50f1098a2aafbdd488c78ecf6

See more details on using hashes here.

File details

Details for the file jiminy_py-1.6.25-cp36-cp36m-win_amd64.whl.

File metadata

  • Download URL: jiminy_py-1.6.25-cp36-cp36m-win_amd64.whl
  • Upload date:
  • Size: 20.1 MB
  • Tags: CPython 3.6m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.6.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.9.6

File hashes

Hashes for jiminy_py-1.6.25-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 7102800711fef48cccecf2b197a5b5e977de466781ebda50a674c4157861e54d
MD5 2deeba05e1ea485c97fcd13b99679b5f
BLAKE2b-256 d6f7ce8bd86ca9247f15b72209c0cb4238b05160f00e6c3237571134efbb8881

See more details on using hashes here.

File details

Details for the file jiminy_py-1.6.25-cp36-cp36m-manylinux_2_24_x86_64.whl.

File metadata

  • Download URL: jiminy_py-1.6.25-cp36-cp36m-manylinux_2_24_x86_64.whl
  • Upload date:
  • Size: 29.7 MB
  • Tags: CPython 3.6m, manylinux: glibc 2.24+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.10.1 pkginfo/1.5.0.1 requests/2.23.0 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.6.9

File hashes

Hashes for jiminy_py-1.6.25-cp36-cp36m-manylinux_2_24_x86_64.whl
Algorithm Hash digest
SHA256 5aa838a1478255acdd31a342746a7e604a7942a3ee8e27c73d3db55267e879fe
MD5 b23caefee8793588b0c2d5b2cd2253e4
BLAKE2b-256 44378a9c9465637846982abbe4f38d1320d3fd6bd3a4f6ea160b43390c1316ca

See more details on using hashes here.

File details

Details for the file jiminy_py-1.6.25-cp36-cp36m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for jiminy_py-1.6.25-cp36-cp36m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 4f4169c79080205b2d8910d13fe21a650378454187b9ebdd76fe20608bef4904
MD5 ef344751d06b13812b1a4f56fac8637f
BLAKE2b-256 ac7762834494369dd0dd7f20861859bf568b06a8951f058a8bc4172faa168a1c

See more details on using hashes here.

Supported by

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