An Open Source Multi-physics Simulation Engine

Why ?

Chrono is a physics-based modelling and simulation infrastructure based on a platform-independent open-source design implemented in C++. A library can be embedded in a software project to simulate, for instance, wheeled and tracked vehicles operating on deformable terrains, robots, mechatronic systems, compliant mechanisms, and fluid solid interaction phenomena. Systems can be made of rigid and flexible/compliant parts with constraints, motors and contacts; parts can have three-dimensional shapes for collision detection.

There is also a Python version of Chrono,PyChrono.

Chrono is cross-platform, open source, and released under a BSD-3 license.

Applications

  • Robotics
  • Wheeled vehicle dynamics
  • Tracked vehicle dynamics
  • Nonlinear finite element analysis
  • Mechatronics
  • Off-road vehicle mobility
  • Terramechanics
  • Virtual reality
  • Granular flows
  • Collision detection
  • Autonomous vehicles
  • Seismic engineering
  • Augmented reality

Useful Links


Top

Features

Multibody dynamics

Run simulations of mechanisms made of rigid bodies. Apply constraint to parts using a wide set of joints. Add motors, linear actuators, springs and dampers. Apply forces and torques.

Finite elements

Use the FEA module to create finite elements and model flexible parts. Beams, cables, shells, solid tetrahedrons and hexahedrons. Apply local or distributed loads. Perform non-linear analysis with large deformations.

Vehicle dynamics

Use Chrono::Vehicle to model wheeled or tracked vehicles using a template-based approach. Leverage a wide set of suspension templates. Use various soil and tire models. Add powertrains/drivelines using 1D elements: clutches, brakes, and reducers.

Large scale simulation

Exploit the parallel version of Chrono to simulate large scenarios such as granular flows, vehicle-soil interaction, and fluid-solid interaction. Perform co-simulation with other CFD and FEA software packages.

Collision detection

Define collision shapes using meshes or primitives. Compute frictional contact forces using state-of-the-art collision detection algorithms. Define surface properties and surface families.

Open API design

Chrono is middleware, designed from ground up to be customized and embedded in other simulation software. Plug-in optional modules available for post-processing and real-time visualization. Chrono is cross-platform, open source, and release under a BSD-3 license.

Top

Chrono for Python

PYCHRONO

Python Anaconda

A simpler alternative to C++ programming: use the Python language to exploit the capabilities of Chrono.

PyChrono is the new Python wrapper of the Chrono simulation library. It is cross-platform, open source, and distributed as pre-compiled binaries using Anaconda. Using Chrono in Python is as easy as installing the Anaconda PyChrono package and typing import pychrono in your preferred Python IDE.

You can use PyChrono together with many other Python libraries: plot using MayaVi, postprocess with NumPy, train AI neural networks with TensorFlow, etc.