Next-generation marine data, on one map.
SoundCharts opens IHO S-100 charts and the layers that come with them, including depths, tides, currents, warnings and sea ice. It draws them together, aligned in time, on your desktop. Under the hood is an open .NET SDK that you can use too.
v0.23.0 · All platforms · MIT licensed · Not for navigation



One map, many layers of the sea.
S-100 is the IHO's framework for the next generation of marine data. A chart is the base layer. Depth surfaces, water levels, currents, warnings, ice, routes and harbour data each come as their own product, and SoundCharts reads and draws more than fifteen of them, along with today's S-57 charts.











Built for exploring the data.
SoundCharts is a desktop app for anyone who wants to see what S-100 data actually contains: hydrographers, developers, sailors and anyone curious.
Layers that know their place.
Products stack by the S-98 interoperability rules (display planes, priorities and inter-product rules), not by the order you loaded them. Add depths and currents to a chart and they stay readable.



Tides and currents on one timeline.
Time-varying products share one clock. Follow Live, pin a moment, or step through a forecast run, and every layer shows which sample it's drawing.
- Forecast runs with a Now marker and expiry
- Zoom, presets and jump-to-data
- Local or UTC, your choice

Click anything.
Object Information decodes every attribute into plain names and follows links between features. For tide and current stations it charts the time series right in the panel.

Sketch a passage.
Drop waypoints on the chart and drag them around. Each leg can be great-circle or rhumb-line, distance and bearing update as you edit, and routes are stored in the S-421 route model.

Find data, not files.
The Library indexes local folders, collection manifests and online catalogues, including NOAA's S-100 feeds on AWS. You can browse coverage on the map before you download anything, and keep it up to date afterwards.


Validation built in
Normative rule packs for every S-100 product. Click a finding to jump to it on the map.

ECDIS-style controls
Display categories, viewing groups, safety contour, four-shade depths and simplified symbols.
Day, Dusk and Night.
All three IHO colour palettes, with the app's chrome following along, from a bright afternoon to a dark wheelhouse.



Built on an SDK you can use.
Everything SoundCharts does is in EncDotNet.S100, a managed .NET library for reading, portraying, rendering and validating S-100 data. It has no native dependencies and no commercial S-52 assets.
Three lines to a PNG.
Open any supported dataset, and the bundled feature and portrayal catalogues take care of the rest.
using var ds = S100Dataset.Open("chart.000"); using var r = new PngS100DatasetRenderer(); byte[] png = await r.RenderAsync(ds);
Render from the shell.
The self-contained s100 tool renders, inspects and validates data, and serves S-100 feeds. It's handy for batch jobs and CI, and needs no .NET install.
# any product, any palette
s100 render currents.h5 out.png \
--palette night --time-step 6Let agents read the chart.
An optional MCP server lets AI agents query features, sample depths and currents, plan routes and drive the viewer.
Supported standards
Each standard comes with a reader and portrayal, and validation rule packs where the spec defines them.Full details →
