Software stack
Every simulator runs on the same physics engine, the same 3D environment and the same integration layer.
Stack
Simulation core
JavaRuns the physics, control systems, scene logic and hardware I/O.
I/O core
JavaThe same core without physics, used as a hardware proxy for joysticks, audio and other devices.
Physics engine
AlgoryxReal-time rigid bodies, constraints, contacts and hydrostatics, through AGX's Java interface.
Hydrodynamics
OSC modelsImported vessel hydrodynamic data replaces AGX hydrodynamics where a vessel needs it.
Visualisation and UI
UnityScene view, instructor tools, VR, and rendering for multi-screen stations and domes.
Scene authoring
Unity and JavaScenes and reusable group actors are built in the visual editor and in our Java scene composer.
Operator HMIs
React2D control panels for cranes, DP, ROV and other systems.
Messaging
NATSMessage bus between the core, HMIs and applications.
Terrain server
Python, GDAL, PostGISElevation, imagery and building data for scenes.
Physics
- Scenes are built from actors. An actor holds data and tells the physics how it interacts with other actors.
- Actors can be grouped and saved as a group actor, a reusable sub-scene.
- AGX Dynamics is the general-purpose physics engine. It also provides hydrostatics.
- For vessels, imported hydrodynamic data can replace AGX hydrodynamics. Collision forces still act on the body.
Visualisation
| Display | How it is rendered |
|---|---|
| Monitors and video walls | Standard perspective rendering from Unity, one view per screen. |
| VR | Headsets with hand tracking. |
| Projector domes | In-house tools plan and calibrate multi-projector systems. Unity renders to texture, and the tools warp and blend the images across overlapping projectors onto the curved screen. |
| LED domes | The LED screen's shape is known and fixed, so no blending is needed. Unity renders to a cubemap, and a shader extracts the section of an equirectangular image that the LED controller expects. Up to 360 by 180 degrees field of view. |
Building a scene
HMIs and messaging
- HMIs are written in React and talk over NATS messaging, with a single source of truth for state.
- Hardware inputs such as USB gamepads can be read on a separate PC and forwarded to the core.
Deployment
- A site is a set of networked PCs: simulation core, I/O cores, Unity visualisers and HMI stations.
- Software is delivered as versioned bundles, and a site can switch between projects and software versions.
- The whole simulator can also run on a single PC or laptop.
Delivered before
Projector domes
Multi-projector domes in a range of sizes.
LED dome rendering
Cubemap-based rendering for a customer's LED dome.
