Skip to content

Version 0.8.0 (17 April 2026)

Breaking changes

  • The Distortion plugins used by the simple points controller have been split into two lists. The emitted_distortion list is applied to the signal after transmission and before it reaches the target, while the echo_distortion list is applied to it after it scatters from the target and before it reaches the receiver. Simulation configurations must be updated to take this into account. For the same behaviour as earlier versions, put the contents of the old distortion list into the emitted_distortion list.

  • The Signal plugin interface was updated to require a one-dimensional t vector when sampling the signal. It is anticipated that most existing uses of the plugin will have met this requirement anyway.

  • The PointTargets plugin interface was updated to require the get_chunk indexing to remain within the bounds of the number of points in the object. It is anticipated that most existing uses of the plugin will have met this requirement anyway.

New features

  • A PointLine point target plugin (registered as point_line) was added. This creates a line of point targets with equal reflectivity. It is parametrised by the position of the first point, the number of points and either the spacing between points or the position of the end point.

  • A HFMChirp signal plugin (registered as hfm_chirp) was added. This implements a hyperbolic frequency modulated chirp, also known as a linear period modulated (LPM) chirp.

Improvements

  • The AnslieMcColmAttenuation and GeometricSpreading plugins now allow the user to specify whether the transmit and/or receive path lengths should be used when scaling the signal.

  • The LFM chirp forces the rms_after_window parameter to False if no window is specified. This allows a more accurate scaling as it can be calculated from the signal definition instead of having to numerically estimate it from the samples, in which case the accuracy depends on the sample rate.

Fixes

  • The LFM chirp was being scaled incorrectly. When calculating the existing RMS value (if the rms_after_window option was set) it was including samples outside the duration of the chirp. It now only uses the samples within the chirp.

  • Similarly, the LFM chirp was assuming the sample spacing was constant when calculating the existing RMS value. Although it is expected this will typically be a valid assumption, it now weights the mean by the sample spacing to account for this.

  • The simple points controller now scales the forward FFT when changing domains. This means that the current signal passed to distortion plugins is now physically-relatable.

  • The DaskLocalCluster now correctly reports the port for the Dask dashboard. Previously, if the port in the input parameter was set to :0 (pick a free port) then :0 was reported in the log instead of the actual port in use.