Tutorials
| Name | Description | Level | Picture |
| demo crank | The simpliest way to integrate
Chrono::Engine in the Irrlicht 3D visualization library: in fact the
coordinates of the joints are simply used as end-points of simple
polygonal lines which are drawn in the 3D space for each frame redraw,
to show a very simplified 'skeleton' of a slider-crank mechanism. The demo also teaches how to: - create constraints and 'engine' objects - make a real-time application, where Chrono::Engine adapts the integration step to the speed of the CPU. |
Basic | ![]() |
| demo_fourbar | This tutorial is similar to
the demo_crank example, but here a small user-interface is created, so
that the user can play with a slider to modify the speed of the motor.
The user interface is created with simple GUI features of Irrlicht, but
other kind of interfaces/visualization systems could be used. Here you can also learn - how to make a four-bar linkage - an example of how to plot/fetch data during the simulation. |
Intermediate | ![]() |
| demo_collision | A bunch of random shapes will fall into a box, stacking in random order. Differently from the two examples above, here a special object is used to encapsulate Chrono::Engine rigid bodies, and some 'shortcuts' are used to manage them in Irrlicht. Learn about: - collisions, contacts and friction - use the easy ChBodySceneNode class for managing Irrlicht objects which encapsulates ChBody items. - describe compound shapes |
Intermediate | ![]() |
| demo bricks | Another tutorial about collisions. Create a stack of geometric primitives. Learn how to change the settings of the stepper (the integration method) in sake of higher precision or higher computing speed. |
Intermediate | ![]() |
| demo pendulum | Create some swinging pendulums, anchored to sliding joints. They move when the fan pushes some air toward them. This tutorial shows how to: - create a pendulum - apply custom forces using 'force accumulators' (the simplified aereodinamic drag, in this case) - create constraints with upper-lower limits (the horizontal sliding joints between pendula and truss) |
Intermediate | ![]() |
| Visual C++ wizard | Use the ChronoEngineWizard in the Microsoft Visual C++ Express IDE to set up quickly a new project. This tutorial shows how to: - use Visual C++ IDE to create a new project using the custom ChronoEngineWizard - quickly integrate Chrono::Engine in your C++ projects - create a spring-damper system between two bodies - easy display of springs in Irrlicht view |
Basic | ![]() |
| Name | Description | Level | Picture |
| demo_math | Demo on
how to use Chrono mathematical objects and functions (vector math,
matrices, linear algebra, etc.). No GUI: only text output. |
Basic | ![]() |
| demo_coords | Tutorial
on how to perform 3D coordinate manipulation (rotation and translations
of points, frames, etc.) thank to C++ objects and custom operators
introduced in Chrono::Engine. No GUI: only text output. |
Basic | ![]() |
| demo_stream | Tutorial
on files, streams, serialization. Learn: - streams and files - serialization, with versioning and dynamic creation (class factory) - class runtime type identification. No GUI: only text output. |
Intermediate | ![]() |
| demo_sharedptr | Tutorial
on how Chrono::Engine core functionality can handle smart pointers and
shared objects. These smart pointers can be useful also in projects non
related to physics simulation too. No GUI: only text output. |
Advanced | ![]() |
| Name | Description | Level | Picture |
| demo_buildsystem | Tutorial
which teaches the basic approach to build and simulate mechanical
systems. Learn how: - create a physical system (a slider-crank) - add/remove rigid bodies - create mechanical joints between bodies - perform a simulation No GUI: only text output. |
Basic | ![]() |
| Name | Description | Level | Picture |
| demo_lcp_solver | Tutorial teaching how to use the LCP solver, which is based on collections of 'variables' and 'constraint' objects as interfaces to the method. Two kinds of solvers are compared: and iterative fixed-point method and a direct (simplex) method. No GUI: only text output. | Advanced | ![]() |