ManxChartPlotter

Manx

Manx

A fast, light chart plotter for the Raspberry Pi, Linux, macOS, Windows and Android.

Beta. Not for navigation. Download · Features · Screenshots · Performance

Manx on the approach to Copenhagen

Why Manx

I’m Denis. I own a boat, and I couldn’t stop myself geeking around with AI to see if I could build a brand-new chart plotter that runs smoothly on computers like the Raspberry Pi and Odroid.

OpenCPN was too slow for me, and fixing it looked harder than starting over. Raspberry Pis are on more and more boats, and they deserve a plotter built for them. So Manx is written in Rust and draws with Vulkan: fast, light, modern, built to last.

This is the result of about ten months of trial and error. It wouldn’t have been possible without projects like OpenCPN.

A chart plotter can be blazing fast. Manx proves it.

Features

Screenshots

Dusk palette Night palette
Dusk Night
Wind and gusts over the Kattegat Forecast for where you are
Wind barbs with gusts The weather sheet

Performance

Raspberry Pi 5 (4 GB) at 1920 × 1080, NOAA charts of San Diego.

  Panning and zooming every frame View held still
Frame rate 60 fps (display limit) —
Frame time, 95th percentile 16.8 ms —
CPU 28 % of one core 0 %
GPU 19 % busy 0 %
Memory 242 MB (263 MB peak) 229 MB

Measured with MANX_PROFILE=1 MANX_STRESS=coast and the rig’s sampler (doc/pi5-test-rig.md).

ODROID-C5 (Android 14, 4 GB) at 1920 × 1080, the same charts and tour, with Signal K connected.

  Panning and zooming every frame View held still
Frame rate 55 fps on average; 60 fps in 31 of 45 five-second windows —
Frame time, 95th percentile 18.0 ms (median window); up to 90 ms while new tiles are built —
CPU 72 % of one core 3 %
Memory (app’s own heap) 290 MB —
GPU memory ~320 MB —
Chip temperature 51 °C (53 °C peak) 46 °C

The C5’s four Cortex-A55 cores build new tiles more slowly than the Pi 5’s A76 cores, so frames stretch while the tour reaches fresh chart areas. Measured 2026-10-01 with manx.env (see deploy/ANDROID.md), dumpsys meminfo and a 1 s sampler over adb.

Memory is not comparable between the two tables. The Pi’s figure is the process’s resident memory; Android’s Mali driver also counts the GPU’s buffers to the app, so the C5’s GPU memory is listed on its own line. And memory depends on what has been viewed rather than on the platform: every chart cell Manx parses stays in memory until it quits. Zoomed out to the whole world with the 443 California cells installed, a fresh start holds 795 MB of heap (plus 230 MB of GPU memory) within 15 seconds, against 290 MB for the San Diego tour. Both are fixed now: zoomed out, Manx no longer parses cells too detailed to draw (87 MB at world view), and parsed charts are kept within a budget of a quarter of the memory, dropping the least recently used ones but never those on screen or under the boat.

Download

Latest release:

Unpack and run manx. Setup and o-charts: deploy/INSTALL.md.

To build it yourself: cargo run --release -- /path/to/charts. Raspberry Pi: deploy/README.md. Android: deploy/ANDROID.md.

o-charts terms

o-charts licenses its charts for OpenCPN and for programs derived from OpenCPN’s presentation and encryption code. Manx is one of those. Their terms apply as for OpenCPN, with three points to know:

The name

In the 1950s a Manx shearwater was flown from Wales to Boston and released. Twelve days later it was back in its burrow, 5,000 km across unfamiliar ocean.

Thanks

License

GPL-3.0-or-later. Parts are derived from OpenCPN (GPLv2 or later), © David S. Register and the OpenCPN contributors.

Not for navigation. Always carry official charts.