Havinga Software
Havinga SoftwareHavinga Software
How it worksHow it works
System ModelsSystem modeling
Quick tutorialQuick tutorial

ThreeDimSim: How it works

Script to scene Script
ThreeDimSim is a mechanics simulator and 3D rendering application. In order to set up a virtual world to be rendered and simulated, a script is evaluated. A script defines objects, like boxes, spheres and objects from external sources, and arrange these objects in a scene. Each object can be textured and/or colored in different ways, and this may change during the development of the scene. How this is done is specified in the script. Furthermore, COM objects may be created, for example to obtain external data form databases or spreadsheets.
Physical properties Physical properties
Also, a material is assigned to objects. A material specifies the density and parameters for collision detection (like friction and the amount of dampening that occurs during a collision). ThreeDimSim calculates the essential physical properties, like mass, volume and inertia and set up initial conditions for simulation. The script specifies when, how and for what time span the scene should be simulated.
Numerical integration Numerical Integration
The simulation is a numerical integration that is applied on all variables present in the scene. The variables integrated are the position, orientation, velocity and angular velocity of each object. Also user defined state variables are included in the integration scheme. These variables will change as the result of forces applied to the objects. Forces may be the result of gravity, collisions, joints, dampers, springs and user defined functions.
Collision detection Collision detection
During simulation, collisions are detected, and for each colliding pair of objects the resulting forces are determined. The resulting forces are based on materials of the objects and the exact shape of intersection. Since the intersection is calculated precisely, the collision model handles convex and non-convex solids  (like objects with holes).
Render control Render control
The script not only specifies the simulation, but also when the scene should be rendered. In fact, the evaluation of the script halts until the scene is rendered, so you can watch how the simulation evolves.
Storing the result Storing the result
The resulting scene is stored, so you can replay it using different viewpoints and different frame-rates. You can save the simulated scene as a video movie or VRML world  for further processing. Numeric results can be generated by script and displayed in an output screen, or exported to for example a database or spreadsheet using COM.