Skip to content

[GSoC Project Proposal]: Echoshader: a package for interactive visualisation and dashboarding of ocean sonar data #110

Description

@LOCEANlloydizard

Project Description

Ocean sonar systems, such as echosounders, are a core tool for observing marine life, providing unprecedented spatial, temporal, and vertical resolution of animal distributions and behaviour. These systems are now widely deployed on ships, autonomous vehicles, and moorings, generating large and complex multivariate datasets that require advanced processing before they can be scientifically interpreted.

This project builds on Echopype, which standardises and processes sonar data from a wide range of platforms. The goal of this GSoC project is to further develop Echoshader, an open-source companion visualisation tool written in Python, originally developed by a GSoC’22 contributor to facilitate ocean sonar data visualisation; it already provides building blocks such as echogram plots, ship-track maps, and 3D curtain views. Building on these existing components, this project aims to evolve Echoshader into a modular application for interactive exploration of ocean sonar data.

The core of the app will provide a general-purpose viewer, with additional functionalities implemented as independent modules accessible via a tab-based interface, allowing new features to be added with minimal changes to the core while keeping a clear separation between core and optional components. In doing so, we aim to integrate recent developments from engine_echo_data_viz into echoshader. An example of a prototype application can be seen here. This visualisation illustrates one possible representation of the app, intended as inspiration rather than a fixed template. Existing tools in other languages can also inform interface and feature design (e.g., Matecho, ParaView).

This design will enable contributors to extend the application through a simple configuration-driven approach (e.g., YAML-based), where new visualisation modules, overlays, or data variables can be declared and integrated with minimal changes to the core. At present, the application is built on the HoloViz ecosystem (particularly Panel), but we welcome alternative ideas and implementations from contributors.

The application will be demonstrated across multiple types of datasets (from ships, moorings, and autonomous vehicles), including via robust cloud-based deployment.

Expected Outcomes

Software architecture enhancement:

  • Development of a core viewer and module dispatcher, enabling new features to be added with minimal changes to the core codebase.
  • Implementation of a tab-based application structure, where each functionality is exposed as an independent module within the interface.
  • Design and implementation of a configuration-driven system (e.g., YAML-based) to control loaded data variables, overlays, and enabled modules.
  • An updated codebase compatible with the latest dependency versions.
  • A unified widget system, enabling visualisation components to be used both in notebooks and within the application interface.

New functionalities:

  • Incorporate new features prototyped in Jupyter notebooks into Echoshader, including interactive annotation modification and 3D echogram visualization.
  • Implementation of overlay systems supporting multiple geometry types (e.g., lines, polygons, points) for detections and annotations.
  • Prototype and implement new visualisation features in Echoshader, including support for mooring data and broadband acoustic data.

Demonstration and deployment:

  • Demonstrations of Echoshader functionalities on several real-world datasets spanning different platforms.
  • A deployable application to enable straightforward installation and cloud or local deployment for the acoustics and broader ocean sciences community.

Skills Required

A keen interest in environmental data, including oceanographic, acoustic, and geospatial data; Fluency in Python programming ; Experience or strong interest in working with large, multi-dimensional datasets and knowledge of xarray, dask, HoloViz, Plotly

Expected Project Size

175 hours

Project Difficulty

Intermediate

Mentor Name(s)

Lloyd Izard, Wu-Jung Lee, Valentina Staneva

Mentor GitHub Handle(s)

@LOCEANlloydizard, @leewujung, @valentina-s

Mentor Contact Email(s)

lloyd.izard@gmail.com, leewj@uw.edu, vms16@uw.edu

Contributor Evaluation/GSoC GitHub Issue Links

We invite contributors to take a look at the echoshader app issue. We also encourage you to introduce yourself by opening a new dedicated issue and selecting "GSoC 2026 discussion". You can use it to communicate with us or to raise any questions or concerns regarding your contribution. Cheers!

Additional Project Background/Links

Previous Project Idea Link(s)

#35

Metadata

Metadata

Assignees

No one assigned

    Labels

    GSoC26Project ideas for GSoC 2026project ideaDesignates a proposed project idea

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions