DOC 04PERCEPTION
Imaging sonar and acoustics
LEVIATHAN's canonical forward-looking imaging sonar produces a range × azimuth image of relative acoustic return. Every cell records which surfaces contributed to it and how valid its value is. It has a CPU scientific reference and a GPU backend that reproduces it bit for bit.
Two sonar paths
| Canonical imaging sonar | Analytic sonar tools | |
|---|---|---|
| Where | Simulation service: World captures and capture-group datasets | Viewport sonar fan; Dashboard Imaging sonar, side-scan and multibeam panels |
| Scene | The frozen canonical scene: seabed triangles, structure meshes, moving rigid bodies | Seabed function and simplified obstacles |
| Output | Relative return with per-cell contributors, validity and identity | Intensity images, waterfalls and depth strips for analysis |
| Character | Canonical Reference-checked | Analytic |
Beam geometry
All geometry comes from the sensor snapshot. Bearings span the azimuth field of view and elevations span the vertical aperture, both on inclusive grids centred on the sensor's +x boresight. A mount tilt lives only in the sensor's mount transform. Each (bearing, elevation) ray is cast from the sensor origin against the frozen canonical scene. The nearest surface wins, so nearer geometry shadows what lies behind it along that ray.
Return model
Each ray is one quadrature sample of solid angle dΩ = cos(e) Δb we. The trapezoid weights we of the elevation grid sum exactly to the aperture. A ray that hits a surface at slant range R and incidence θ contributes
- G
- one-way intensity beam pattern, uniform or Gaussian with stated −3 dB full widths; two-way is G²
- σb(θ)
- the surface's acoustic response; the implemented model is Lambert, μ cos²θ
- R² dΩ / cos θ
- the area of surface the ray sample represents
- α
- absorption by Francois and Garrison (1982) at the hardware frequency, for the declared water temperature, salinity and pH, at the sensor's depth
- 1/R⁴
- two-way spherical spreading in intensity
Every ray whose range falls in a cell adds its contribution to that cell, so returns are summed incoherently over the elevation aperture. The sum is the cell's linear_return. An optional fully developed speckle multiplies it by an exponential random variable with unit mean, drawn from keyed randomness, and is reported as a separate channel.
linear_return is a dimensionless relative return: received intensity divided by the source intensity at 1 m on the beam axis. It is physically modelled, but it is not a calibrated received level. Source level, transducer and receiver sensitivity, pulse length, bandwidth, directivity index, gain and time-varied gain are not included. Display normalisation is a separate product with its own identity.
Per-cell ground truth
A sonar cell can contain contributions from several surfaces, at different elevations and ranges within the bin. LEVIATHAN keeps that information.
- Primary contributor. The dominant sample in the cell, with its instance, object, triangle, exact slant range, elevation, incidence, world hit point, normal, semantic label, acoustic status and whether it belongs to a moving body.
- Top-K contributors. Up to K contributors per cell in a deterministic order: dominance, then range, elevation, instance and triangle. Each carries its contribution, geometric weight and energy fraction.
- Counts and truncation. The number of samples integrated into the cell, and the share of its return that falls outside the top-K list.
Dominance is the contribution itself when the cell's radiometry is fully known. When radiometry is unknown, it is the geometric weight, which is everything except the surface response. When the medium is unsupported, it is the geometric weight without absorption. The primary_basis channel records which rule was used. Only samples the model actually integrated are contributors.
| Channel | Units | Meaning |
|---|---|---|
linear_return | — | Relative return; NaN where the cell is not valid |
validity | code | Per-cell validity (below) |
contributor_count | count | Elevation samples integrated into the cell |
truncated_fraction | fraction | Share of return outside the top-K list |
primary_range, primary_elevation, primary_incidence | m, rad, rad | Geometry of the dominant sample (elevation positive downward) |
primary_point, primary_normal | m, unit · NED | World hit point and normal oriented toward the sonar |
primary_instance, primary_triangle, primary_semantic | index, id | Identity of the dominant surface |
contrib_* | as above | Top-K instance, triangle, range, elevation, incidence, return, geometric weight, energy fraction, semantic, acoustic status |
linear_return_speckled | — | Return with speckle, only when speckle is enabled |
Validity
| Code | Status | Meaning |
|---|---|---|
| 5 | unsupported_medium | Absorption cannot be evaluated for the declared water and frequency (for example above 1 MHz) |
| 6 | interface_not_modeled | A ray reached the sea surface inside this cell; surface returns are not modelled |
| 2 | acoustic_property_unknown | A contributing surface has no declared acoustic material |
| 4 | unsupported_surface_response | The material declares a response model the sonar does not implement |
| 3 | acoustic_property_out_of_range | The material's declared validity does not cover the hardware frequency |
| 0 | valid | Return fully modelled |
| 1 | no_return | No surface in the cell |
Acoustic materials
Acoustic materials are kept separate from optical reflectance and are never derived from it. Each parameter carries its meaning, units, source and evidence class. The library contains only clearly labelled test and reference surfaces, such as Lambert surfaces with stated μ values. No published high-frequency backscatter parameter for seabed or structure materials could be verified from a primary source, so no physical material is claimed.
In practice, real scene content without a declared acoustic material is reported as acoustic property unknown. Its geometry ground truth, including range, point, normal and identity, is still valid and usable, but its return is not given a value.
Configuration
| Parameter | Where | Units · range |
|---|---|---|
| Frequency | Hardware | Hz, > 0 (absorption up to 1 MHz) |
| Azimuth field of view | Hardware | deg, (0, 180) |
| Elevation aperture | Hardware | deg |
| Beam pattern | Hardware | uniform, or Gaussian with azimuth and elevation −3 dB widths |
| Mount | Hardware | transform from the link, sensor FRD |
| Range window | Configuration | m, minimum and maximum (≤ 10 km) |
| Range bins, azimuth bins | Configuration | 1–4096, 1–1024; product ≤ 220 |
| Elevation samples | Configuration | 1–512; azimuth bins × samples ≤ 218 rays |
| Contributors K | Configuration | top-K list length, 1–16 |
| Water | Configuration | temperature °C, salinity ppt, pH, with its source |
| Speckle | Configuration | exponential intensity, keyed by seed |
| Display | Configuration | dynamic range dB (display product only) |
A canonical sonar is declared on a vehicle in the canonical vehicle catalogue, with its hardware and sampling schedule. In the current release, the built-in production vehicles declare a front camera only. The catalogue's reference survey vehicle is explicitly labelled as a test and reference model. It declares a 900 kHz imaging sonar with a 90° azimuth field of view, a 20° elevation aperture and a Gaussian beam, sampled at 5 Hz, alongside a DVL and an IMU. Its rates and hardware are declared test values, not a device specification.
CPU reference and GPU backend
The CPU implementation is the scientific authority. Before any GPU code existed, its output was frozen for 28 canonical scenes. The fixture covers flat and tilted surfaces, known, unknown and unsupported materials, an unsupported medium, static and moving targets, three kinds of occlusion, shadowing, an exact coincident-surface tie, K = 1, 2, 4 and 16, near and far range windows, the sea-surface interface, 1 to 8 elevation samples, and speckle. It has never been regenerated.
The GPU backend shares the CPU path's preparation and output stages. It accelerates instance culling and bounding-volume traversal on the device in float64, with the same operation order, and evaluates the per-sample physics on the host with the reference's own expressions.
| Quantity | Result |
|---|---|
| Range, elevation, incidence, point, normal | Maximum absolute error 0 (bit-identical) |
| Validity, identity, contributor counts, basis | 0 mismatches |
| Raw hits on rotated instances | 8,929 of 8,929 identical |
| Speckle | Identical (same keyed generator and counters) |
| Frozen 28-scene oracle | Passes |
| Rays (azimuth × elevation) | CPU | GPU | Speed-up |
|---|---|---|---|
| 24 × 8 (192) | 10.4 ms | 14.3 ms | 0.72× |
| 128 × 32 (4,096) | 104.5 ms | 29.4 ms | 3.6× |
| 256 × 64 (16,384) | 424.7 ms | 96.9 ms | 4.4× |
| 512 × 128 (65,536), K = 4 | 1.739 s | 0.384 s | 4.5× |
Single-precision traversal was evaluated and rejected. It is not bit-identical, so it would break exact dominance ties and make triangle selection at edges depend on the platform.
Analytic sonar tools
For interactive work, the Dashboard's Imaging sonar panel renders an analytic range × bearing image from a pose, as a B-scan or a fan. It reports the image grid, range window, field of view, dynamic range, empty and saturated cells, a measured range-falloff fit, range and cross-range resolution, sound speed, absorption at the operating frequency and the maximum ping rate.


The panel is candid about what an image can support. In the capture above it reports that the falloff fit explains only 17 % of the variance, because an image of discrete targets in open water has no reverberation floor to measure.
- The canonical model is direct, single-scatter and incoherent. Multipath, volume and surface reverberation, and coherent effects are not part of it.
- The beam is sampled on a ray grid, not integrated continuously. Small features between sample rays can be missed, and the observability queries report this as between sample rays.
- Returns from the sea surface are not modelled; affected cells are flagged.
- Absorption is evaluated only inside the Francois–Garrison validity and up to 1 MHz.
- LEVIATHAN does not claim validation of this model against real sonar recordings.