Skip to main content

Blue Pebble

PyPI version Python versions

License: MIT

Blue Pebble is a research-oriented simulation framework for underwater acoustic sensing, currently focused on passive sonar signal processing, acoustic propagation modelling, beamforming, detection, and multi-target tracking.

Designed as a plugin for Stone Soup, Blue Pebble supports research in:

  • Underwater acoustics
  • Passive sonar signal processing
  • Towed array modelling
  • Acoustic propagation modelling
  • Beamforming and detection theory
  • Target tracking and data association

Blue Pebble provides modular acoustic propagation backends, ranging from analytical spreading laws to external ray-tracing solvers (e.g., rtrs), enabling trade-offs between physical fidelity and computational efficiency.

Naming conventions: The project is referred to as Blue Pebble throughout documentation. The repository and PyPI package use the hyphenated form blue-pebble (e.g., pip install blue-pebble). Within Python code, the package is imported as bluepebble (e.g., import bluepebble).

Research Applications

Blue Pebble is intended for controlled, simulation-based studies, including:

  • Evaluation of tracking and data association algorithms
  • End-to-end sonar performance analysis
  • Synthetic dataset generation for validation
  • Sensitivity analysis of propagation effects on detection and estimation

Although current functionality centres on passive sonar, the architecture supports extension to additional modalities (e.g., active or multistatic configurations).

Architecture

Blue Pebble follows a modular design that separates physical modelling from signal processing and tracking logic. Core components include:

  • Platform dynamics - Kinematic modelling of ownship, targets, and arrays
  • Acoustic propagation - Pluggable propagation backends (analytical or external solvers)
  • Signal generation - Source modelling and noise synthesis
  • Beamforming - Array processing algorithms
  • Detection - Measurement formation and statistical thresholding
  • Tracking - Integration with Stone Soup estimators and data association

This separation enables systematic experimentation across modelling assumptions and algorithmic choices without tightly coupling components.

Features

Implemented capabilities include:

  • Multi-body kinematic modelling for flexible towed arrays
  • Analytical spreading models and external ray-tracing integration (e.g., rtrs)
  • Configurable source signature synthesis
  • Ambient, biological, and ownship noise modelling
  • Multiple beamforming algorithms
  • Detection algorithms with performance metrics
  • Passive sonar simulation pipelines
  • Integration of real environmental datasets (bathymetry, range-dependent sound speed profiles)
  • Incorporation of measured source signatures
  • Native integration with Stone Soup tracking workflows
  • Plotting utilities for bearings and Cartesian tracks
  • Notebook-based tutorials and worked examples

Installation

pip install blue-pebble

Development

Recommended: Dev Container (Easiest Setup)

For a fully configured development environment, use the included Dev Container.

Requirements

  • Docker Engine (Docker Desktop on Windows/macOS, or Docker on Linux)

Optional:

  • Visual Studio Code
  • VS Code Dev Containers extension

Clone the repository:

git clone https://github.com/UoL-SignalProcessingGroup/blue-pebble.git

Using the Dev Container (VS Code Workflow)

If using Visual Studio Code with the Dev Containers extension:

cd blue-pebble
code .

When prompted, select "Reopen in Container."

VS Code will:

  • Build the Docker image
  • Start the container
  • Mount the repository
  • Configure the Python interpreter automatically

This provides a fully configured development environment including:

  • Python
  • All required build dependencies including rtrs

Using the Container Without VS Code (CLI Workflow)

You can build and run the container manually:

docker build -t blue-pebble-dev .
docker run -it --rm -v $(pwd):/workspace blue-pebble-dev

On Windows PowerShell:

docker run -it --rm -v ${PWD}:/workspace blue-pebble-dev

This starts an interactive shell inside the container.

Citation

If you use Blue Pebble in academic work, please cite the associated conference paper and the software release (via DOI when available).

@inproceedings{wakefield2026sonar,
  title={A Sonar Signal Processing Plugin for Stone Soup},
  author={Wakefield, Joshua J and Boulton, Finley and Colquitt, Daniel J. and Ralph, Jason F. and Williams, Duncan P.},
  booktitle={2026 29th International Conference on Information Fusion (FUSION)},
  pages={1--8},
  year={2026},
  organization={IEEE}
}

License

Blue Pebble is licensed under the MIT license.

See LICENSE and NOTICE.md for details.

Third-Party Components

Software: Blue Pebble depends on rtrs, which is licensed under the MIT licence and installed automatically as a dependency.

Data: Blue Pebble does not distribute external data in its PyPI package. Users are responsible for complying with the licences of any external data they utilise.

Future Enhancements

Planned and potential extensions include:

Environmental Modelling

  • Coherent ambient noise modelling (wind, rain, wave-induced noise)
  • Systematic environmental uncertainty modelling (sound speed and sensor position errors)

Signal and Source Modelling

  • Expanded source directivity modelling

Detection and Performance Analysis

  • Alternative SNR and beam power outputs (e.g., angle-dependent CFAR variants)
  • Bearing × time × frequency output volume to support multi-band downstream processing
  • Multi-band detector operating across frequency bands simultaneously
  • 2D CFAR with training cells spanning both bearing and time, giving the detector access to a limited time history

Sensing Modalities

  • Active sonar modelling
  • Multistatic and bistatic configurations
  • Additional sensing geometries (hull-mounted arrays, sonobuoys, distributed arrays)
  • Explicit hydrophone modelling

Release files for blue-pebble 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for blue-pebble 0.2.0
File Size Uploaded
blue_pebble-0.2.0.tar.gz 236.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for blue-pebble 0.2.0
File Interpreter ABI Platform
blue_pebble-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 359.5 kB

Release files / blue_pebble-0.2.0.tar.gz

Download URL blue_pebble-0.2.0.tar.gz
Size 236.3 kB
Tags Source
SHA-256 checksum
How to use checksums
358e2fefa7fbe03b648d4d8eb49e5a2b02aaf5d9421ee4e5fc6f65a0be027963
BLAKE2b-256 checksum
How to use checksums
4d02aece4a4ef13cf751516c632db5a714b524d80ee64b31905d8ecb85550d4f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 27, 2026.

Transparency log

Release files / blue_pebble-0.2.0-py3-none-any.whl

Download URL blue_pebble-0.2.0-py3-none-any.whl
Size 123.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7c50ed3cdd6d8f6a165459916476120b5684f293041891c566df42e61f1f51e0
BLAKE2b-256 checksum
How to use checksums
dbf65afb1bc1c3744dac7a599039badcc63315b03739b0013f362dd47d1e7423
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 27, 2026.

Transparency log

Release history Release notifications | RSS feed

0.4.0

2 release files

0.3.0

2 release files

This release

0.2.0 This release

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page