ThreeDimSim: How it works
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
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.
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
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).
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|
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.