winga-chart-plotter-signalk
v0.14.1
Published
[Experimental] Sea chart plotting featuring WebGL
Maintainers
Readme
Winga Chart Plotter
A fast and reliable sea chart plotting application for Signal K.


Why another chart plotter for SignalK
Winga Chart Plotter is an experiment playing with WebGL technologies with the intention of building a snappy and solid chart plotter. I owe much inspiration to Freeboard-sk.
Unfortunately, my sailing tablet gets laggy as soon as Freeboard has more than 30 AIS target, chart layers, waypoints or routes to show. Thus, Winga Chart Plotter is written with speed in mind, uses WASM for heavy computation and WebGL for rendering. It is projection-agnostic. Currently, there are two projection modes: mercator and globe and as soon as support for more projections lands in MapLibre, those will be integrated here as well. Eventually, I'd like Winga Chart Plotter not only to be a SignalK webapp, but also a mobile app with native speed.
Getting started
Install via SignalK's app store. The page is installable as PWA.
Widget can be added in the Settings menu.
Raster (XYZ, WTS, WMTS) and vector (MLT, MVT) chart tiles are supported. Vector tiles need to bring a their styling via json.
S57-ish charts are supported after conversion into tiles (e.g. via quilt-tiler, s57-tiler, tippecanoe or versatiles).
Building
Prerequisites
- Rust +
wasm32-unknown-unknowntarget - wasm-pack
- Node.js 18+
- A running Signal K server
rustup target add wasm32-unknown-unknown
cargo install wasm-packRun
make install
make devOpen http://localhost:5173.
Run Rust tests
cargo testDesign
Do one job, do it good. This means that some features might be left to other layers. E.g. notification and alarm management as well as instrument might be left to KIP. Being a tool for marine navigation, Winga Chart Plotter will prioritize correctness and stability over features. WingaCP supports the very young plotter-extensions for widgets.
Known limitation
Chrome on Android doesn't seem to like the shaders by deck.gl. After closing the warnings, the map works, but no AIS targets are drawn.
Additional features compared to Freeboard
Game changers
- Highly customizable appearance
- WebGL rendering
- Pin vessel position on screen
- Multiple, permanent and sticky rulers. Like the one in Navionics, but more.
Quality of life
- 3D mode
- WMTS layer discovery
- AIS: targets to scale, dead reckoning (honoring rate-of-turn and at 60fps, whoever needs this)
- Great-circle lines for measurements, tracks and routes
- Globe projection
- Process SignalK deltas as they arrive
Missing features compared to Freeboard
- Alarm management
- Anchor
- Radar
- Many many more
Roadmap
- [ ] Tauri packaging (Android)
- [ ] Wind particle overlay
- [ ] Maybe Grib support
