Software stack

Every simulator runs on the same physics engine, the same 3D environment and the same integration layer.

Stack

Simulation core

Java

Runs the physics, control systems, scene logic and hardware I/O.

I/O core

Java

The same core without physics, used as a hardware proxy for joysticks, audio and other devices.

Physics engine

Algoryx

Real-time rigid bodies, constraints, contacts and hydrostatics, through AGX's Java interface.

Hydrodynamics

OSC models

Imported vessel hydrodynamic data replaces AGX hydrodynamics where a vessel needs it.

Visualisation and UI

Unity

Scene view, instructor tools, VR, and rendering for multi-screen stations and domes.

Scene authoring

Unity and Java

Scenes and reusable group actors are built in the visual editor and in our Java scene composer.

Operator HMIs

React

2D control panels for cranes, DP, ROV and other systems.

Messaging

NATS

Message bus between the core, HMIs and applications.

Terrain server

Python, GDAL, PostGIS

Elevation, 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

DisplayHow it is rendered
Monitors and video wallsStandard perspective rendering from Unity, one view per screen.
VRHeadsets with hand tracking.
Projector domesIn-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 domesThe 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.

Contact Us