Rigs of Rods (also known as RoR), is an Open Source truck, car, airplane and boat simulator. You can drive, fly or sail in total freedom in an open environment. What makes RoR different to most simulators is its unique soft-body physics: vehicles chassis and wheels are simulated in real-time as flexible objects, giving the simulation an extremely accurate behavior, while allowing the vehicles to be simply specified by their structural composition, as a network of interconnected nodes (forming the chassis and the wheels). Crashing into walls or terrain can permanently deform a vehicle in a realistic manner. In addition to its unique soft-body physics, RoR also features an advanced flight model based on blade element theory, allowing the accurate simulation of any airplane, base on their physical dimensions and wing airfoils. It also features an accurate buoyancy model based on elemental pressure gradients, enabling boats with complex hulls to move realistically in the swell.
RoR is highly moddable: currently there are 2073 mods for RoR.
OGRE (Object-Oriented Graphics Rendering Engine) is a scene-oriented, flexible 3D engine written in C++ designed to make it easier and more intuitive for developers to produce applications utilising hardware-accelerated 3D graphics. The class library abstracts all the details of using the underlying system libraries like Direct3D and OpenGL and provides an interface based on world objects and other intuitive classes.
Features
Features Productivity features
Simple, easy to use OO interface designed to minimise the effort required to render 3D scenes, and to be independent of 3D implementation i.e. Direct3D/OpenGL.
Extensible example framework makes getting your application running is quick and simple
Common requirements like render state management, spatial culling, dealing with transparency are done for you automatically saving you valuable time
Clean, uncluttered design and full documentation of all engine classes
Proven, stable engine used in several commercial products
Platform & 3D API support
Direct3D and OpenGL support
Windows (all major versions), Linux and Mac OSX support
Builds on Visual C++ and Code::Blocks on Windows
Builds on gcc 3+ on Linux / Mac OSX (using XCode)
Material / Shader support
Powerful material declaration language allows you to maintain material assets outside of your code
Supports vertex and fragment programs (shaders), both low-level programs written in assembler, and high-level programs written in Cg, DirectX9 HLSL, or GLSL and provides automatic support for many commonly bound constant parameters like worldview matrices, light state information, object space eye position etc
Supports the complete range of fixed function operations such as multitexture and multipass blending, texture coordinate generation and modification, independent colour and alpha operations for non-programmable hardware or for lower cost materials
Multiple pass effects, with pass iteration if required for the closest ‘n’ lights
Support for multiple material techniques means you can design in alternative effects for a wide range of cards and OGRE automatically uses the best one supported
Material LOD support; your materials can reduce in cost as the objects using them get further away
Load textures from PNG, JPEG, TGA, BMP or DDS files, including unusual formats like 1D textures, volumetric textures, cubemaps and compressed textures (DXT/S3TC)
Textures can be provided and updated in realtime by plugins, for example a video feed
Easy to use projective texturing support
Meshes
Flexible mesh data formats accepted, separation of the concepts of vertex buffers, index buffers, vertex declarations and buffer mappings
Biquadric Bezier patches for curved surfaces
Progressive meshes (LOD), manual or automatically generated
Static geometry batcher
Animation
Sophisticated skeletal animation support
blending of multiple animations with variable weights
variable/multiple bone weight skinning
software and hardware-accelerated skinning pipelines with intelligent buffer sharing
manual bone control
Configurable interpolation modes, accuracy vs speed tradeoffs
Flexible shape animation support
Morph animation for legacy applications where you wish to perform simple linear blends between shape snapshots
Pose animation for modern shape animation, allowing you to blend many poses at variable weights along a timeline, for example expression / mouth shapes to perform facial animation
Both techniques can be implemented in hardware and software depending on hardware support
Animation of SceneNodes for camera paths and similar techniques, using spline interpolation where needed
Generic animation tracks can accept pluggable object adaptors to enable you to animate any parameter of any object over time
Scene Features
Highly customisable, flexible scene management, not tied to any single scene type. Use predefined classes for scene organisation if they suit or plug in your own subclass to gain full control over the scene organisation
Several example plugins demonstrate various ways of handling the scene specific to a particular type of layout (e.g. BSP, Octree)
Hierarchical scene graph; nodes allow objects to be attached to each other and follow each others movements, articulated structures etc
Multiple shadow rendering techniques, both modulative and additive techniques, stencil and texture based, each highly configurable and taking full advantage of any hardware acceleration available.
Scene querying features
Special Effects
Compositor system, allowing for full-screen postprocessing effects to be defined easily, via scripts if desired
Particle Systems, including easily extensible emitters, affectors and renderers (customisable through plugins). Systems can be defined in text scripts for easy tweaking. Automatic use of particle pooling for maximum performance
Support for skyboxes, skyplanes and skydomes, very easy to use
Billboarding for sprite graphics
Ribbon trails
Transparent objects automatically managed (rendering order & depth buffer settings all set up for you)
Misc features
Common resource infrastructure for memory management and loading from archives (ZIP, PK3)
Flexible plugin architecture allows engine to be extended without recompilation
‘Controllers’ allow you to easily organise derived values between objects e.g. changing the colour of a ship based on shields left
Debugging memory manager for identifying memory leaks
ReferenceAppLayer provides an example of how to combine OGRE with other libraries, for example ODE for collision & physics
XMLConverter to convert efficient runtime binary formats to/from XML for interchange or editing
ODE is an open source, high performance library for simulating rigid body dynamics. It is fully featured, stable, mature and platform independent with an easy to use C/C++ API. It has advanced joint types and integrated collision detection with friction. ODE is useful for simulating vehicles, objects in virtual reality environments and virtual creatures. It is currently used in many computer games, 3D authoring tools and simulation tools. This library is free software.
Physics libraries such as ODE provide excellent real-time simulation, embedding them in a 3D application to create a virtual reality is far from trivial. It is often prohibitively difficult to create a simulated reality that incorporates complex dynamic objects that interact with each other and the environment under physics’ constraints.
One of the major obstacles is mapping between meshes and objects supported by the physics engine.—This is what EZPhysics aims to solve.
EZPhysics API is licensed under the GNU Lesser Public License (LGPL).
The system is composed of two parts:
Editor & Simulator—Lets you interactively embed objects supported by the physics engine into 3D meshes, attach joints and constraints to the physics objects, save the “physically rigged” scenes into files, and run simulations.
API—Lets you embed the “physically rigged” meshes into your application. This involves using classes and methods for reading the editor files and manipulating the physical aspects of the objects, such as applying torques and forces to joints.
CarWorld is a small driving simulator/demo I use to test various things of interest. It was mostly developed when I was a student. It is released with the full source code under the GNU General Public License.
The rendering
The two top pictures represent an slightly older version (v0.072) but graphically similar of CarWorld as it was presented for my project. v0.072 includes an OpenGL based renderer allowing
file input and displaying of texture mapped models with interpolated surface normals, real time projected shadows (as seen in the dino lights example).
background object
on screen command line to modify visual and simulation parameters
The mechanics
based on classical mechanics
uses standard metrics (Newtons, meters, seconds…)
there are no constraints on the environment surface
variable length time increments and variable increment number means “CarWorld time” is not dependent on frame rate.
adjustable simulation specs include: metrics, mass, moment of inertia around rotation axis, suspension pre load, compression dampin
Where I am now
I am now working at OKTAL where I work on Callas/Prosper a vehicle dynamics evaluation tool and full scale driving simulator.
The rendering
The two top pictures represent an slightly older version (v0.072) but graphically similar of CarWorld as it was presented for my project. v0.072 includes an OpenGL based renderer allowing
file input and displaying of texture mapped models with interpolated surface normals, real time projected shadows (as seen in the dino lights example).
background object
on screen command line to modify visual and simulation parameters
The mechanics
based on classical mechanics
uses standard metrics (Newtons, meters, seconds…)
there are no constraints on the environment surface
variable length time increments and variable increment number means “CarWorld time” is not dependent on frame rate.
adjustable simulation specs include: metrics, mass, moment of inertia around rotation axis, suspension pre load, compression damping, rebound damping, engine torque output, air friction, surface friction.
ORBITER is a free flight simulator that goes beyond the confines of Earth’s atmosphere. Launch the Space Shuttle from Kennedy Space Center to deploy a satellite, rendezvous with the International Space Station or take the futuristic Delta-glider for a tour through the solar system – the choice is yours.
But make no mistake – ORBITER is not a space shooter. The emphasis is firmly on realism, and the learning curve can be steep. Be prepared to invest some time and effort to brush up on your orbital mechanics background. Good starting points are JPL’s Basics of Space Flight, and R. Braeunig’s Rocket & Space Technology.
USARSim is a high-fidelity simulation of robots and environments based on the Unreal Tournament game engine. It is intended as a research tool and is the basis for the RoboCup USAR simulation competition.
USARSim models the 3 NIST reference arenas and the fixed NIKE Silo environment. The current version of USARSim includes models of the P2AT and P2DX robots by Activmedia, the AIBO and QRIO robots by Sony, the ATRVJr robot by iRobot, and the Talon robot by Foster-Miller. Contributed robots include the Zerg and Tarantula robots from the University of Freiburg.
Kinematically accurate models of new robots can be added using vehicle classes from the Karma Physics Engine, a rigid multi-body dynamics simulator that is part of the Unreal development environment.
The standard version requires the Unreal game engine bundled with Unreal Tournament 2004. By using a game engine, the simulator achieves high fidelity on commodity hardware. The Unreal runtime engine version uses a modified vehicle class.
FreeCAD will be a general purpose 3D CAD modeler. The development is completely Free Software (GPL & LGPL License). FreeCAD is aimed directly at mechanical engineering and product design but also fits in a wider range of uses around engineering, such as architecture or other engineering specialties.
FreeCAD features tools similar to Catia, SolidWorks or Solid Edge, and therefore also falls into the category of MCAD, PLM, CAx and CAE. It will be a feature based parametric modeler with a modular software architecture which makes it easy to provide additional functionality without modifying the core system.
The goal of this project is to develop a fully fledged and extensible 3D CAD application based on the concept of
parametric modeling of solids, comparable to well known solutions like SolidWorks or Alibre Design.
The main categories of functionalities that naroCAD will have are:
Parts modeling (specifications detailed in Chapter 3)
Assemblies (specifications detailed in Chapter 4)
Drawings (specifications detailed in Chapter 5).
These functionalities are interrelated through Model Associativity and are exposed through a GUI. The
application can be extended through Plugins and programming interface.