Discrete event simulation integrated with a virtual 3D environment

The feature that make Simulator stand out from other discrete event simulation tools is the integration with the 3D virtual environment: the availability of a large library of commands allows to animate all the elements. When necessary, you can still run the simulation without the graphical display, at the maximum execution speed, to quickly asset different scenarios. The same control logic automatically supports the two types of execution, with or without the virtual environment animation.

See for example how it is used for plant simulation.

Simulator is part of the 3D product family and can share and re-use the 3D virtual environment definition with all the other tools.

How it works

The process to setup a 3D simulation of a multi-body discrete manufacturing system can be divided into two phases:

  1. creating the virtual environment
  2. programming the simulation logics.

The definition of the virtual environment is based on a XML representation of the scene graph, a hierarchical set of entities with an optional geometry and joints.

Simulation logics controls the time evolution of your 3D environment. The logics is split into modules which have full access to the environment and which are synchronized on the simulation timeline.

Each module acts independently, generates and publishes events on the timeline and communicates with the other modules through signals. Logics modules work on a different layer respect to the virtual environment, they are not bound to any 3D resource, but can read and write the state of any (or even none) simulation entity.

Programming a simulation with Simulator’s modular system is a two steps process requiring:

  1. Definition of logics module template classes: each module template is a Java class that defines the behaviour of a class of modules.
  2. Definition of the simulation logics model: module templates classes are instantiated and, if needed, configured and connected among each other.

A simulation model is represented by an XML file containing the definition of the module instances, thei properties and the connections among module instances.