Re-identifying vessels from radiated noise
How an acoustic re-identification system decides which vessel it is hearing, or that it has never heard it: embeddings from the raw waveform, a gallery of enrolled recordings compared by cosine similarity, enrolling a new vessel without retraining the model, and the threshold behind an “unknown”.
It closes on evaluation done honestly, split by vessel and by recording, and on offline operation with fixed signal settings. A worked example in NumPy, with synthetic embeddings, runs the gallery logic and is shown with its real output.

Underwater acoustics for machine-learning engineers
A beginner’s tutorial on the physical quantities behind underwater audio data: acoustic pressure in pascals, RMS pressure and intensity, sound pressure level in dB re 1 µPa and why it cannot be compared with decibels in air, the power spectral density, band levels and the level in a 1 Hz band, and transmission loss for spherical spreading.
It closes on synthesis: why you generate the pressure waveform p(t) from a target spectrum, with random phases and an inverse FFT, and never model p²(t). Eight runnable Python examples at the 16 kHz rate of the synthetic dataset are shown with their real outputs, and every figure is computed from the same formulas and signals.

What an echo can tell a sonar
The first article of a series on submarine target strength, written from the designer’s side of the problem: what an active-sonar echo carries, why the exact problem is rarely solved inside a design loop, and the three assumptions that make the echo computable. The one most often under-checked is the far field: at 5 kHz a 40 m hull is still in its near field out to 2.7 km.

SSR-Sim: what a submarine’s sonar echo is made of
SSR-Sim estimates how strongly a submarine returns active sonar, and says which part of the boat the echo comes from. On a generic 66 m double-hull boat with bare steel plating, it puts the target strength at 43 dB on the beam at 5 kHz, and more than half of that echo comes from the flat sides of the sail. Bow-on, the echo is 33 dB weaker and mostly diffuse scattering from the structure between the hulls.
The note explains target strength through the equivalent sphere, splits the echo into specular reflection, diffuse scattering and non-specular re-radiation, and reports five results on an invented 66 m double hull: target strength against aspect and against frequency, where the echo comes from, what changes with range (including the near-field effect a far-field estimate misses on a long hull), and what an illustrative coating buys. It closes on the method’s limits and the next step, a comparison on the public BeTSSi benchmark submarine.

SSR-Sim is target-strength software developed in-house at Oravont Systems LLP by Sunil Tyagi, and used in Oravont’s acoustic stealth engineering services.
DEMON Analysis: Reading a Vessel’s Propulsion from Its Own Noise
A working note on a classical technique that still earns its place alongside deep learning — and one way it caught a bug that spectrograms missed.
DEMON — Detection of Envelope Modulation on Noise — reads a vessel’s propulsion from its own radiated noise. A cavitating propeller produces broadband noise that is amplitude-modulated at the blade-passage rhythm; demodulating that noise recovers the shaft rate and blade rate, and from them the blade count, without ever seeing the vessel. The note walks through the physics, the four-step pipeline (bandpass, Hilbert envelope, AC-coupling, envelope FFT) and the maths behind the Hilbert envelope, then shows how to read the harmonic comb on a real DEMON spectrum — including a case where naive peak-picking reports the wrong fundamental.
It also covers the decision most tutorials skip: choosing the cavitation band and display range by vessel class, since a fast small craft can put its blade rate well off the conventional 0–50 Hz window. The case study shows DEMON catching a sea-swell artefact in a synthetic training dataset that conventional spectrograms had hidden, and the note closes on where DEMON sits in an AI workflow for underwater domain awareness: validating training data, explaining what an embedding model has learned, and supplying compact physics-grounded features.

A Physics-Grounded Synthetic Underwater Acoustic Dataset
Full-factorial waveform generation from first-principle acoustic models — 12,000 physics-grounded clips across four vessel classes and ambient ocean noise, with corrected ambient-noise modelling, physics-based cavitation, and worked verification calculations. Openly released for self-supervised pretraining.
Real hydrophone recordings are voluminous, unlabelled and expensive to annotate, which is the bottleneck for machine learning in underwater acoustics. This note describes a synthetic passive-sonar dataset built to address that gap. Ambient sea noise follows a piecewise model fitted to digitised Knudsen curves for sea states 0 to 6, with all quantities kept in physical units (pascals, dB re 1 µPa). Ship-radiated noise combines spectral synthesis for shaft-rate and blade-rate tonals, structural resonances and generator harmonics with a physical burst model for propeller cavitation.
Tanker, cargo ship, fishing vessel and small craft are given non-overlapping shaft-rate ranges, a design choice the note explains after overlapping ranges caused downstream representation learning to fail. Sea state, vessel class, blade count, generator frequency and cavitation intensity are varied full-factorially. Each clip is verified with the same classical techniques used on real recordings — spectrogram and DEMON analysis — and, used to pre-train an encoder with the Barlow Twins self-supervised objective, with training pairs drawn within each class, the dataset produced embeddings with a silhouette score of 0.97 and 100% k-NN accuracy across five classes, measured on the same clips used for training.
