Project ยท Marine

Real-world ship traffic in X-Plane 12

A native C++ plugin that puts live AIS vessel positions into the flight simulator as 3D ships.

A P&O ferry seen from the cockpit of an S-76C helicopter in X-Plane 12

Flying low along the coast in X-Plane, the sea is empty. This plugin fills it with real ships, taken from live AIS (Automatic Identification System) data.

On approach in a King Air, with a P&O ferry in its real-world position ahead
On approach in a King Air, with a P&O ferry in its real-world position ahead

What it does

  • Draws vessels near the aircraft as 3D models using X-Plane's instancing API.
  • Smoothly animates ships between AIS updates with dead reckoning, and removes them when their data goes stale.
  • Adds navigation lights on vessels for night flying.
Following a ferry out to sea in the S-76C, with other live traffic on the horizon
Following a ferry out to sea in the S-76C, with other live traffic on the horizon

How it's built

C++17 against the official X-Plane SDK. There are no legacy OpenGL callbacks, no per-frame allocation, and all simulator access stays on the main thread. The logic is tested outside the simulator under AddressSanitizer and UBSan, and builds as a universal macOS binary with CMake for Windows and Linux. Ship data comes from my own AIS backend running on Lightsail.

Working on something in fintech, AI or climate?

I help founders and teams shape products, untangle architecture and get to market. Short advisory calls or hands-on engagements.

Talk to me about a project