A collision- and interaction-control library
Every R&D software developer who deals with 3D objects sooner or later faces the task of calculating the collision and interaction of these objects geometrically and physically in order to continuously derive the physical impact forces, the spatial impact vectors, the energy absorption, friction, etc. The sonar-3D-DLL (Dynamic Link Library) makes up the central ‘kernel’ of sonar-3D software.

Fig. some of 18 possible primitive objects
sonar 3D-DLL continually and accurately calculates the current geometric and physical interaction state of every possible collision between so-called primitive bodies. The library currently knows 18 objects – from simple primitives to arbitrary shapes of revolution and free-form surfaces – and calculates every possible spatial collision of any combination of primitive bodies. There are (n * (n + 1) / 2) = 171 object combinations possible with the current 18 primitives. Each object combination is further broken down into a larger number of possible spatial object encounters, which of course changes continuously in a running simulation.
Abb. Examples of some cylinder-cylinder interactions computed by the sonar DLL. The software systematically covers every type of encounter.
The primitive bodies themselves are combined into more complex components much like the so-called CSG (constructive solid geometry) method in the area of CAD (Boolean combination of basic bodies).
The sonar-3D DLL does the following
- It is connected as a DLL (Dynamic Link Library) to customer-specific software
- It calculates all object interactions. In detail:
- It determines if an object ‘A’ has collided with one of the other objects ‘B’
- If yes, then information about the object pairing, the exact collision location, a 3D impact vector, and the depth of interaction are returned.
- Each object can collide with several objects at the same time
- With this information, the user of the sonar-3D DLL is able to calculate the resulting collision forces and accelerations on the objects according to elementary Newtonian equations of motion.
- The last version of the library contains 18 primitive and basic bodies
- The 3D DLL provides an interface that allows the user to translate his own data structure to the structure of the DLL (mapping)
- The latest version of the sonar 3D DLL is designed to manage up to 60,000 objects, with each object interacting with any other object. however, there is no software-related upper limit of the number of objects.
Example: Tobacco Simulation with some 12’000 objects