Fathom

A browser-based viewer for fish-finder sonar. Fathom reads the recordings on a fish finder’s SD card, merges the depth passes into a 3D map and renders the side-scan imagery, all in the browser.

Visit site ↗
The Fathom control panel and a tilted satellite map with a speed-colored boat track on the left, and a docked side-scan viewer showing port and starboard sonar imagery on the right
Map and side-scan, together
Role
Founder, design, development
Skills
Core Dev
Year
2026, pre-release
Status
In development, demo only
Tech stack
Python, CI4, deck.gl, MapLibre, Vite

Built on the Detroit River

Fathom started on the Detroit River, a narrow strait that pushes two Great Lakes past each other, with bottom structure that shifts every season. Years of sonar passes had piled up with no good way to map them, so a viewer was built to do it. The demo is a compilation of those years of mapping.

Where the fish are is a closely kept secret for most anglers, so the design starts from privacy: recordings are meant to stay with the person who made them.

A lake freighter silhouetted against moonlit clouds on the Detroit River at night

Bottom contours, in three dimensions

Fathom builds a 3D depth map from sonar passes. The map can be orbited and tilted, or flattened to a heat map with adjustable contrast to bring out structure. Selecting a route shows which recordings made which cells.

Passes are merged onto a regular grid. Every cell keeps a record of the recordings behind it and is marked measured or estimated, so the map shows how far it can be trusted.

The map is drawn in the browser with WebGL over a satellite basemap. A compact map format built for the job keeps the download small, and only the cells in view are drawn, which keeps large maps manageable.

A reading far out of line with its surroundings, such as a log passing under the hull, is checked across space and time, then flagged and removed with the reason shown. Each removed reading can be stepped through. Every pass is corrected to chart datum from the nearest NOAA water-level gauge, and the correction can be adjusted by hand, so recordings from different days and lake levels line up.

An oblique view of a river as a yellow, orange and purple depth map laid over satellite imagery of the surrounding city
Depth heat map
Amber and orange three-dimensional depth columns over satellite imagery of a river bend
3D depth columns

Side scanning, rendered

There is far more in those files than depth. Fathom reads the raw side-scan too and renders it as a fast, scrollable image in the browser, synced to a live map of the track.

Scrolling the sonar moves the boat along the track, and clicking the track jumps the sonar there. Drawing a box on a feature pins it on the map, so weed beds, wrecks and structure are easy to find again on the water.

The side-scan viewer with two labeled boxes drawn over a structure, beside a satellite map with the boat track and a list of annotations
Marking a feature

Smaller details

  • Speed legs

    Slow, medium and fast legs are colored like a traffic map, showing which stretches to trust.

  • Boat heading

    The map turns with the boat: north up, nav up or course up.

  • Saved findings

    Any side-scan finding can be saved as a JPEG and downloaded.

Design decisions

  • Every cell records which recordings fed it, and measured and interpolated cells are shown separately.
  • Outliers are removed with a reason, and every removal can be inspected.
  • Routes are drawn from exact GPS positions.
  • Depths are shown as the unit recorded them. Corrections like water level are applied in the open, with the raw reading beside them.
The Fathom control panel beside a 3D depth map of a river, with one selected sounding, its route traced in green, and a list of three contributing routes
Every sounding shows its source

Status and next

Fathom is a pre-release demo. It runs on recordings from the Detroit River, and uploading recordings is not available yet. Still to come: importing and exporting recordings, kept private to the person who made them, and integrating down imaging and points of interest.