Core Features
Shapes and meshes

Shapes and meshes

The engine enables:






  • Creating shapes and continuous collision detection between them.
    • Each shape can contain:
      • Shape primitives like sphere, hemisphere, cube, cuboid, cylinder, two radius cylinder (truncated cone), cone, capsule, tetrahedron, convex hull, convex triangle mesh, non-convex triangle mesh, heightmap, fluid, triangle, point, segment, plain.
      • Additional shapes between which there are operations: Minkowski sum and convex hull.
    • Each shape can be:
      • Moved
      • Rotated
      • Scaled independently on the X, Y, Z axes (geometric scaling of the shape changes its physical properties such as mass and moments of inertia).
    • For each shape can be obtained a convex set of triangles.
  • Handling simple concave triangle meshes as non-static objects through the convex decomposition. The engine has a built-in functions to transform such meshes into a set of convex objects (physics objects and/or shapes and/or shape primitives).
  • Handling complex concave triangle meshes directly for both static, non-moving and dynamic, moving objects.
  • Performing advanced operations on arbitrary set of triangles through the triangle mesh controller.
  • Creating triangle meshes.
    • Meshes can be created for:
      • Predefined shapes like sphere, hemisphere, cube, cuboid, cylinder, two radius cylinder (truncated cone), cone, capsule, torus, tube, triangle, plain.
      • Any user shapes.
    • Meshes are built by managers: the regions, vertices and triangles.
    • Meshes of predefined shapes have an adjustable number of stacks and slices.
    • Meshes can be read as arrays of indexed or non-indexed polygons.
  • Loading arbitrary sets of triangles and using them as a convex shapes.
Ccd

Continuous collision detection

The engine enables:






  • Continuous collision detection between different types of shapes.
Materials

Materials

The engine enables:






  • Creating materials. Any material defines (among others):
    • Static and dynamic friction and coefficient of restitution between objects.
    • Parameters determining appearance of objects (color and transparency).
    • Parameters determining destruction of objects.
Constraints

Constraints

The engine enables:






  • Creating constraints. Any constraint contain (among others):
    • Distance limits for X, Y, Z axes.
    • Angle limits for X, Y, Z axes, defined as Euler angles or quaternions.
    • Spring mode for distance and angle limits.
    • Parameters determining the destruction of the constraint.
  • Modeling constraints through the additional deformation mode. Possible applications include special effects, keyframes modeling for animation, etc.
  • Creating animations through the constraints control (distance and angles).
Scene/objects management

Scene and objects management

The engine enables:






  • Creating fully dynamic scenes. All scenes can be constructed from a composite of destructible objects.
    • Each scene object can include (among others):
      • Shape
      • Constraints
      • Material
      • Sound
      • Light
      • Camera
      • Controllers
    • Each scene object has the following collision detection functions:
      • Object-object
      • Object-ray
      • Object-segment
    • Each scene object in conjunction with other scene objects can create a group of objects.
    • Each scene object or groups of objects with constraints can be during initialization, rotated, moved and scaled.
    • Each scene is processed in multiple threads.
  • Concurrent sequential processing of multiple scenes. Possible applications include physical controls, menus and special effects.
  • Establishing the order and the way of drawing objects.
  • Supporting for transparent objects (including supporting for variable transparency objects).
  • Managing of the objects through the object managers. Object managers allows (among others):
    • Reading object
    • Adding object
    • Removing object
    • Searching object
    • Checking the count of objects
  • Using the many cores of multi-core processors through the multi-threaded core of the engine.
Camera and objects control

Camera and objects control

The engine enables:






  • Creating cameras. Any camera contain (among others):
    • Frustum
    • View matrix
    • Projection matrix
  • Creating own controllers. The controllers allows (among others):
    • Changing parameters of objects
    • Animating objects
    • Collision reaction
    • Drawing objects
  • Using internal controllers such as:
    • Cursor controller (provides functions to handle the cursor)
    • ScreenToRay controller (allows to throw the ray in 3D space for given screen coordinates)
    • Fluid surface controller (allows to create sinusoidal or cosinusoidal fluid surface perturbation in real-time)
    • Heightmap controller (allows to deform the heightmap in real-time)
    • Triangle mesh controller (allows to add triangles to the arbitrary set of triangles)
    • Destruction controller of complex objects (allows the destruction of group of objects unconnected constraints)
  • Establishing priorities for the simulation to determining the order of user controllers.
  • Supporting for force-feedback.
  • Supporting for local and global gravity.
  • Supporting for switches.
  • Supporting for lifetime physical objects through the counters of frames.
Character controller

Character controller

The engine enables:






  • Creating character controller. The character controller is provided in source code.
Vehicle dynamics

Vehicle dynamics

The engine enables:






  • Simulating imaginary or real-life vehicles. Simulated vehicles may have a steering (through the controllers and/or the switches) and are created as a complex group of objects connected constraints. All sample objects are provided in source code.
Terrain and fluid surfaces

Terrain and fluid surfaces

The engine enables:






  • Handling symmetrical and asymmetrical heightmap both static and non-static.
    • Each heightmap can be modified in real-time through the heightmap controller. The heightmap controller also allows copying data blocks to the heightmap.
    • Value of friction and coefficient of restitution for any heightmap point can be changed in real-time.
    • Each static heightmap shape can be subject to transformations such as rotation, translation and scaling.
    • Values of height, friction and coefficient of restitution for heightmap are fully interpolated.
    • Heightmap normalization can be turned on or off.
    • Single physics scene can contain multiple heightmaps (static and/or non-static).
  • Handling fluid surface. Fluid surface is a surface of fluid shape both static and non-static.
    • Each fluid surface can be modified in real-time through the fluid surface controller.
    • Each static fluid shape can be subject to transformations such as rotation, translation and scaling.
    • Single physics scene can contain multiple fluid shapes (static and/or non-static) with different fluid surface controllers.
  • Scalling buoyancy for each physics object.
Force fields

Force fields

The engine enables:






  • Supporting for force fields. The force field range can be defined by any shape primitive.
Point cloth dynamics

Point cloth dynamics

The engine enables:






  • Supporting for point clothes. The point cloth is fully destructible.