Release notes

What changed in each witwin-radar release, newest first, including the breaking changes in 0.4.0 and how to migrate.

Releases are tagged witwin-radar-v<version> on GitHub and published to PyPI as witwin-radar.

0.4.1#

Released 2026-09-20.

Adaptive FMCW simulations compute complete dynamic ADC data with much less intermediate memory. Motion-probe interpolation and ADC synthesis now run as one fused CUDA step, and SMPL evaluation and observation routing avoid repeated work. Public defaults and the constant-delay spectrum route are unchanged.

  • Native first-order VJP and JVP for the fused adaptive synthesis. Phase conventions, float32 rounding and echo(trace(...)) identity are preserved.
  • A reproducible full-SMPL walking fixture and motion-to-ADC benchmark (tools/benchmark_smpl_walk.py).
  • On a 300-frame RTX 5080 benchmark the fused pass takes 14.275 s instead of 39.143 s (2.74x faster), with zero ADC difference on every frame. Peak extra memory per frame falls from 151.33 MiB to 34.33 MiB. The numbers are specific to that workload.
  • The wheel source-fingerprint audit now includes the shared CUDA headers.

Native interface ABI 10. Wheels for Windows x86-64 and manylinux_2_28 x86-64, Python 3.10 to 3.14, built against exactly PyTorch 2.10.0 and CUDA 12.8.

pip install -U "witwin-radar[channel]==0.4.1"

0.4.0#

Released 2026-09-18. Breaking release: a hygiene audit removed public surface.

Removed#

RemovedUse instead
witwin.radar.capabilitieswitwin.radar.deployment.build_info() and the Differentiability matrix
synthesize_fmcw, synthesize_ofdm, synthesize_pulsedRadar.echo(paths)
ca_cfar_fastca_cfar, which is now the pooled implementation
The wideband band (frequency_offsets_hz), the direct join mode, and the velocity half of the propagation kinematicsNothing. No public call could reach them

Changed signatures#

  • Result has no default values for its trailing fields. The verbs that build it supply every field.
  • point_cloud reads the processing axes from the range-Doppler map instead of taking them as a second argument.
  • matched_filter no longer takes a working-precision argument.
  • music_image requires range_bins.

Fixed#

  • The SMPL default model root resolved outside the checkout.
  • The receiver keeps its phase-noise guard on both entry points, and a chain without noise allocates no timestamps per frame.
  • Three test and packaging defects that weakened coverage: one FMCW output domain was not exercised twice, one CUDA translation unit was not hashed, and the wheel smoke test's path isolation was disabled.

Verified with 1444 GPU tests with the Channel extra, 644 CPU tests and 16 static checks.

0.3.0#

Released 2026-07-31.

  • Requires WiTwin Core >=0.4.0,<0.5. The optional Channel integration requires >=0.5.0,<0.6.
  • Finishes the internal reorganization of the package by concept.
  • Release wheels carry an exact PyTorch, CUDA and ABI identity, checked when the library loads. See Backends and devices.

0.2.0#

Released 2026-07-09.

  • TDM-MIMO Doppler fix. A MIMO frame now samples the scene once per TDM chirp slot (chirps_per_frame * num_tx evaluations), so the per-transmitter phase of a moving target is present and TDM compensation removes it correctly. Before the fix, a target receding at 1.5 m/s at 3 m showed about 0.8 m of false elevation.
  • MIMO gradient fix. The amplitude broadcast crashed for more than one target and mixed per-pair gradients for one target.
  • Dynamic frames are generated in grouped native launches, about 8 to 16 times faster.
  • 248 GPU tests.

0.1.0#

Released 2026-06-08.

  • License metadata set to BSD-3-Clause. Later releases use the WiTwin research and commercial licenses; see the repository LICENSE.
  • Depends on rayd>=0.4.1 and witwin>=0.0.1.
  • 254 GPU tests.

0.0.2 and 0.0.1#

Released 2026-04-23 and 2026-03-23. Early previews without release notes.