We built a full radar/ARPA trainer in the browser — WebGL, no install
John C. Thomas
Founder, BlueWave Projects
Every mariner working toward a radar endorsement has to learn to read a radar display — to take the blips on a Plan Position Indicator, plot their motion, and work out whether the ship three miles off the bow is going to pass safely or put you on a collision course. Traditionally you learn this in a classroom simulator or on a real bridge. We built one that runs in a browser tab.
No install, no license dongle, no scheduled lab time. Open a URL and you are looking at a live radar scope. Here is what went into it and why the browser was the right call.
What it actually is
It is a WebGL radar and ARPA (Automatic Radar Plotting Aid) training simulator. On screen: a Plan Position Indicator with a rotating sweep, your own ship at center, and traffic moving around you in real time. You can place targets, set their course and speed, and then practice the actual skills the exam tests:
It is not a toy animation of a radar. The geometry is real: the relative-motion vectors, the CPA math, the way a target's trail behaves under true versus relative motion are all computed the way an actual ARPA computes them.
Why the browser
The obvious objection is that serious simulators are native applications. For training, the browser wins for one specific reason: access. A mariner studying for an endorsement does not want to install software, manage a license, or book lab time. They want to practice on a phone on a crew-change flight, or on a laptop at the galley table. The lowest-friction path to "practice the skill ten more times" is a URL.
The browser also means every update is instant — no app-store review, no version anyone has to update. We ship an improvement and the next person to open the scope has it.
The hard part: a radar scope in WebGL
A radar PPI is a genuinely demanding thing to render. The sweep rotates and paints returns that then fade; sea clutter and rain have to look and behave plausibly; targets leave trails whose shape encodes their motion; and all of it has to stay smooth while the simulation computes target geometry every frame.
We render the scope in WebGL with custom shaders — the sweep, the afterglow, the clutter are GPU work, not DOM elements. The simulation layer — target motion, CPA/TCPA solutions, the ARPA tracking, the collision-rules logic — runs alongside and drives what the shaders draw. Keeping the graphics on the GPU is what lets the whole thing hold a smooth frame rate on a phone, which is exactly where a studying mariner often is.
Depth is the moat
The easy 80 percent of a radar sim is a rotating line and some dots. The 20 percent that makes it a training tool is the domain depth: the IMO-spec instruments behaving correctly, the collision-rules logic giving the right guidance for a given encounter, the trial maneuver actually solving the geometry, the guard zones alarming when they should. That depth is where most "radar simulators" stop and where a real trainer has to keep going. It is also the part you cannot fake — a mariner will spot a wrong CPA instantly.
What I would tell another team
If you have a hard skill that people currently learn from a textbook and you suspect they would learn it faster by doing it, [that is the kind of thing we build](https://bluewaveprojects.com/booking).
More from BlueWave
RoomPlan vs Matterport vs Polycam: which one belongs in your contractor's toolkit?
8 min
Hawaii complianceHawaii GET tax for contractors: how the §237-13(3)(B) sub-deduction actually works
6 min
WorkflowHow to scope a renovation in 60 seconds (and why your hand-written estimate keeps losing jobs)
5 min