Determinism
Simulations created in ProtoTwin are deterministic. This means that you get the same result each time you run the simulation with the same initial conditions. For example, the position and rotation of an entity at any given timestep will be the same. The result of the simulation is identical every time you run it.
Determinism in the context of physics-based simulations is important because it enables reproducibility. Non-deterministic simulation makes the development and testing of control logic more difficult and erodes trust in the reliability of the results obtained. Determinism is guaranteed across different browsers and operating systems. You can share your simulation with a colleague and be confident that they will see the same results you produced.
PLC Connectivity
Unfortunately, Simulations made in ProtoTwin Connect when controlled by a PLC are non-determistic. This is because the PLC has its own clock, which is entirely separate from ProtoTwin’s clock. However, the SoftPLC integrated into the script editor in ProtoTwin is completely deterministic.
Hardware Determinism
ProtoTwin uses Single Instruction/Multiple Data (SIMD) instructions internally for improved performance. These instructions allow your processor to perform the same instruction on multiple pieces of data simultaneously. This provides a significant improvement in single-core and multi-core performance. However, not all SIMD instructions are available on every processor.
SIMD instructions are emulated when they are not available on a particular processor. The emulated instructions may produce slightly different results, which can result in different behavior across different processors. Fortunately, ProtoTwin is deterministic across most hardware. This is because almost all modern consumer Intel and AMD processors support all the SIMD instructions that are used. We’ve tested ProtoTwin for determinism on processors that are over a decade apart in terms of age.