Document toolboxDocument toolbox

What is 'Discrete Event Simulation' (DES)?

This is the primary Component for all DES related activities. please only log issues here on Jira that affect the workings of DES as a whole.

Discrete- and Continuous event Simulations

Describing the exact difference between Discrete and Continuous event simulations is not very easy; this is particularly true because the scientific community does not seem to hold to a clear definition for either.

As such we will hold to the definitions held on Wikipedia. Arguably that; a Discrete system uses Consecutive Discrete Events to trigger a change in the system; as event occurrence is calculated in advance, most Discrete Event Systems allow you to jump directly to the next event time, and thus save processing by being able to make steps in the simulation. In Contrast, a Continuous Event System makes use of differential equations that define the rate of change, in such a system state change is ‘eased in-to'.

Is DES just Discrete Event Simulation?

Taking this definition, DES is actually both a Discrete- and Continuous Event Simulation tool - Depending on where you look - at a most basic level, DES splits the simulation in discrete simulation frames (at 1x real-time speed these segments are approximately 0.02sec (dependent on your Fixed Delta Time), to match the framerate of Unity3D) but it creates continuity by continuing on the calculations in a following simulation frame.

The most eloquent example is probably the Motion Tensor Activity. Transformation of an Actor over a spline is calculated using a differential equation (in our case a parametric description of a 2D NURBS Curve), but once the Actor intersects with a cue on the spline it turns those into discrete events (On Actor Enters Cue, On Actor and Cue Pass Centerpoints and On Actor Exits Cue) that are emitted into the simulation

 

Current Limitations to DES

Currently that’s performance - more specifically the ability to process more DES calculations at the same time. At this time (Alpha Feature State) DES is single-threaded, which makes it easier to find bugs, and have the simulation interact with the scene - it is however planned that DES will function fully multi-threaded in the near future