Advanced rigid body simulation

Primitive shapes
Two radius cylinder (truncated cone)
Two radius capsule
Convex hull
Convex triangle mesh
Non-convex triangle mesh
Us - Uniform scaling
NUs - Non-uniform scaling
  • Rigid body dynamics with effective automatic activity management, control for linear and angular velocity, linear and angular damping, and other parameters
  • Fully multithreaded simulation, stable and robust, highly optimized solver
  • Extensive mass properties, local and global gravity, forces
  • Force fields with ranges defined by any primitive shapes
  • A rich set of primitive shapes on which operations of Minkowski sum and construction of convex hull are available, creating further unique shapes
  • Operations on arbitrary sets of triangles through the triangle mesh controllers
  • Real-time deformable triangle meshes
  • Real-time deformable large-scale heightmaps
  • Animated large-scale fluid surfaces
  • Heightmaps with holes and with non-rectangular shaped terrain
  • Multiple heightmaps and fluid surfaces on a single physics scene
  • Built-in functions to transform non-convex triangle meshes into a set of convex objects (physics objects and/or shapes and/or primitive shapes)
  • Materials defining values of static and dynamic friction, restitution, determining appearance and destruction of physics objects
  • Real-time changeable value of friction and restitution for every heightmap point
  • Fully interpolated values of height, friction and restitution for heightmap
  • Groups of physics objects with advanced modeling of destruction process. Each rigid body group can be breakable and the group destruction process is fully modeled by physics scene developers
  • Kinematic objects controlled by animation system
  • Scalable buoyancy of physics objects

Advanced collision detection and collision filtering

  • Continuous collision detection (CCD) between all primitive shapes and shapes derived therefrom
  • Contact reporting
  • Rigid body collisions allocation on different collision groups (maximum 64)
  • Trigger shapes

Unified constraints

  • One natural constraint
  • Distance limits for X, Y and Z axes
  • Angle limits for X, Y and Z axes (defined as Euler angles or quaternions)
  • Advanced control for distance and angle limits
  • Working in normal, spring or deformation mode
  • Parameters determining indestructibility of constraint

Built-in APIs: ray casting, volume query

  • Ray-surface intersection tests for all primitive shapes
  • Volume queries specified as a transformed "fat" segment
  • Volume queries specified as a transformed box
  • Volume queries specified as a transformed sphere

Advanced triangle meshes creation functionalities

Bezier and NURBS
  • Triangle meshes for predefined shapes (sphere, hemisphere, cube, cuboid, cylinder, two radius cylinder (truncated cone), cone, pyramid, capsule, two radius capsule, torus, tube, triangle, plain)
  • Triangle meshes for user shapes
  • Triangle meshes for procedural surfaces: Bezier and NURBS
  • Managers: regions, vertices and triangles
  • Adjustable numbers of stacks and slices
  • Meshes returned as arrays of indexed or non-indexed triangles

Advanced management of multiple physics scenes and physics objects

  • Fully dynamic physics scenes constructed as sets of physics objects and groups of physics objects
  • Managers: physics objects and physics scenes
  • Physics objects with constraints and groups of physics objects with constraints can be during initialization rotated, moved and scaled
  • Concurrent sequential processing of multiple physics scenes
  • Physics objects lifetime maintenance through the counters of frames
  • Full support for cameras (frustum, view matrix, projection matrix)
  • Support for instancing
  • Handling of transparent objects (including objects with variable transparency)
  • Determining when and how objects are drawn

Physics-based animations and physical AI

  • Total control of constraints (distances and angles)
  • Keyframes modeling based on constraints control
  • Support for force-feedback
  • All examples of physics-based animations provided with C++ source code
  • All examples of physical AI provided with C++ source code

Rigid particles simulation

Rigid particles
  • Generic particle system
  • Particle dynamics
  • Advanced particles management
  • Collision handling and filtering
  • Inter-particle interactions
  • Lifetime and other parameters maintenance

Vehicles simulation

Vehicle simulation
  • Simulation of real and imagined vehicles
  • Steering through the controllers and/or switches
  • Vehicles created as groups of physics objects connected constraints
  • All examples of vehicles provided with C++ source code

Physics-driven sound

  • Full support for selected motion characteristics of object
  • Sounds ranges defined by any primitive shapes

Advanced controllers

Internal controllersDescription
Cursor controllerProvides functions to handle cursor
Screen to ray controllerProvides functions to throw the ray in 3D space for given screen coordinates
Fluid surface controllerProvides functions to create sinusoidal or cosinusoidal fluid surface perturbation in real-time
Heightmap controllerProvides functions to deform heightmap in real-time
Triangle mesh controllerProvides functions to add triangles to arbitrary set of triangles
Destruction controllerProvides functions to destroy groups of objects unconnected constraints
  • A rich set of internal controllers
  • User-defined controllers
  • Scalable to your needs, full-featured character controllers
  • Priorities determining the order of user-defined controllers execution
  • All examples of user-defined controllers provided with C++ source code
  • All examples of character controllers provided with C++ source code

Serialization and deserialization

Serialized physics scene elements
Simulation parameters
Physics objects (with materials, cameras, controllers, fog, light and sound sources, contact points, etc)
Primitive shapes
  • Serialization of entire physics scenes to easily parsable XML data
  • Deserialization of entire physics scenes from easily parsable XML data
  • Serialization of entire physics scenes to a file, memory or stream
  • Deserialization of entire physics scenes from a file, memory or stream
  • Real-time snapshot creation. Such snapshots can be loaded and further processed from the point at which were taken
  • Serialization in two modes: optimized or complete
  • Serialization of user-defined controllers through the programmable Archive class

Debug visualization

  • Full support for user-defined debbugers
  • Built-in mechanisms required for custom debugging