Home | API | News |
Tutorials
The following is the list of all tutorials available for the Chrono::Engine, they represent a good starting point to learn programming with this multibody library.
Source code for all the examples presented in these tutorials is included in the SDK.

Demos with Irrlicht 3D interface
These examples are the most descriptive and amusing, since they show Chrono::Engine features within a graphical user interface, using a realtime 3D visualization engine called Irrlicht. (To compile these examples you must install also the Irrlicht API on your computer).
These demos are also available as precompiled binaries in the Chrono::Engine directory bin/Win32_VisualStudio/. To play the precompiled binaries you don't need Irrlicht installed on your computer.
We used Irrlicht, but of course you can use alternative libraries, such as GLUT, OpenGL, Ogre, etc. Consider these tutorial as suggestions.
The visualization runs in real-time for most systems with a decent graphic adaptor and a recent processor.

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 crank
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 fourbar
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 collision
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 bricks
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 bricks
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 wizard


Core features
These examples are about the basic features of the Chrono::Engine programming system, which can be used also for non-physics stuff. Some of these tutorials can be skipped (they deal with 'low level' stuff..).

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


Basics
These tutorials teach how to setup physical systems in Chrono::Engine. Here we do not use any graphical user interface: see the 'Irrlicht' tutorials for demos with a 3D graphical output.

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


LCP solver
These tutorials teach how to use the HyperOCTANT solver. The HyperOCTANT technology is a custom component of Chrono::Engine, and it is a collection of methods for solving the large LCP (Linear Complementarity Problems) which typically arise in multibody simulations.

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
.
Web design by Alessandro Tasora

Engine
::Home
::News
::Features
::Gallery
::Downloads

Documentation
::Requirements
::Install
::FAQ
::API help
::Tutorials
::Licensing

Other
::Chrono::R3D
::Deltaknowledge
::Links
::Contacts
::Author

Partners