Changelog
[Unreleased]
Fixed
- Spectrogram measurements can now be placed over visible annotations without selecting or moving the annotation.
[0.1.56] - 2026-07-25
Changed
- Spectrogram rendering now uses the responsive viewport engine for all signals; the former beta toggle and legacy renderer have been removed.
Fixed
- Saved projects now reliably include loaded input-file and recorder samples, restore them into the desktop runtime after import, and report incomplete project data instead of silently generating an empty spectrogram.
- Repeated spectrogram generation now keeps each run's stored sensor output separate, preventing an earlier cleanup from deleting newly generated chunks.
- Spectrogram window size now controls the number of analyzed samples independently of FFT size, while preserving signal power when shorter windows are zero-padded.
- Moving Average now smooths neighboring spectrogram frames consistently during generation, viewport navigation, recording trim previews, and local-agent previews.
[0.1.55] - 2026-07-25
Changed
- SigMF exports now default to matching `.sigmf-data` and `.sigmf-meta` files on both web and desktop. Web exports wait for generation to finish and use ordinary browser downloads, without requesting folder access. A remembered option can package each recording as its own `.sigmf` archive, while multi-recording Collection exports continue to produce one collection archive.
Fixed
- Web raw-binary IQ downloads can now start while signal generation is still running, writing completed chunks directly to the selected file in supported browsers.
- Large web SigMF data/metadata pair exports now convert completed IQ chunks directly into the selected format instead of assembling the full floating-point recording in memory.
- SigMF archives exported without optional TAR end blocks can now be loaded, and new exports include standards-compatible end blocks.
- macOS builds without a Developer ID certificate now use a complete ad-hoc signature, allowing the standard unidentified-developer approval flow instead of being reported as damaged.
[0.1.54] - 2026-07-25
Added
- The Map now shows height-styled Hybrid AOI building footprints by default and can display the strongest propagation rays for a selected Sionna-linked emitter or sensor.
Changed
- Local Topography now uses frequency-dependent terrain and building-profile diffraction from 30 MHz through 6 GHz, honors the LoS and Diffraction path switches, and rejects endpoints outside or below the loaded terrain.
- 3D emitter and sensor beam patterns are now evaluated for each propagation path before multipath is combined. Map rays show antenna attenuation and mark dominant terrain obstructions.
- Desktop releases now use an updated Electron runtime and refreshed cloud and routing dependencies with current security fixes.
Fixed
- Hosted project launches no longer repeat session activation while navigating into an opened project.
[0.1.53] - 2026-07-25
Added
- RFSim Coverage can optionally calculate outdoor heatmaps, point inspections, relative comparisons, and GNSS jammer paths with GPU-backed Sionna ray tracing over terrain and uploaded structure geometry.
Changed
- Outdoor structure uploads accept normalized RFSim and common OpenStreetMap building properties, can be read back as WGS84 GeoJSON, and can be outlined on heatmap and GNSS PNGs.
- Sionna receiver surfaces are clipped around buildings, indoor transmitter and point-receiver positions are rejected, and run diagnostics report geometry and ray-interaction details.
- Added optional Windows NVIDIA Sionna runtime installation without bundling a second Python runtime or increasing the normal desktop download with ray-tracing dependencies.
- Sionna ray-traced channels now apply endpoint polarization, path-specific Doppler from moving endpoints, and atmospheric attenuation along each reflected or diffracted path segment, with richer path diagnostics and faster reusable scene solves.
Fixed
- SigMF annotations imported through an input-file node now appear immediately in the annotations panel.
- Loose SigMF pair pickers now show both loaded filenames instead of a misleading native “no file chosen” status.
- Desktop spectrogram regeneration now cancels superseded file-backed jobs and starts the latest graph immediately without active-job errors.
- Fixed Input File generation failures for single-channel real imports in web and desktop.
- Made a single Undo unload a newly imported IQ file while keeping its Input IQ File node in the graph.
- Fixed automatic spectrogram annotations in the web demo.
- Fixed web generation exhausting its Pyodide memory during long, complex simulations.
- Fixed large progressive web spectrograms stalling or losing regions while chunks were still being saved.
- Input IQ File now loads matching SigMF metadata, including the sample rate, datatype, and annotations. Desktop discovers same-folder sidecars automatically, while web imports can select both files together.
- Fixed Sionna runtime packs hanging while the desktop waited for their startup handshake.
- Fixed Sionna ray tracing for imported terrain and building scenes by emitting compatible RF material identifiers.
- Kept spectrogram annotation labels visible when their boxes extend beyond the current zoomed or rotated view, with the full name shown when hovering over shortened labels.
[0.1.52] - 2026-07-19
Added
- RF coverage requests can use NTIA ITM and P.528, ITU-R P.452, P.530, P.1812, P.1411, P.2001, and P.2108 clutter procedures, with explicit capability and conformance diagnostics.
- Dedicated GNSS runs calculate satellite visibility, C/N0 degradation, DOP, and acquisition or tracking denial from inline or SP3 ephemerides and intentional or adjacent-band interferers.
- GNSS denial runs can render selected denial, tracked-satellite, minimum-C/N0, and PDOP maps as standalone or terrain-overlay PNG artifacts.
Changed
- NXDN, DMR Tier 2, P25 Phase 1 and 2, Analog PMR, and GPS L1 C/A blocks are now available without enabling Beta Blocks.
- Propagation requests now present one model-specific parameter block, typed application and clutter choices, and clearer OpenAPI examples while continuing to accept saved requests that use the earlier model-block format.
- Scene-layer routes now expose clutter and radio-climate layer kinds as typed OpenAPI choices.
- Propagation parameters now include clearer units, statistical meanings, model limitations, and examples, with stricter validation for refractivity, P.1812 location percentages, P.530 rain percentages, and categorical raster codes.
Fixed
- Fixed the Into Sight Help easter egg failing to load after an earlier production cache miss.
- Fixed Windows desktop builds failing to start when the packaged Python backend retained a path from the release build machine.
[0.1.51] - 2026-07-17
Added
- Added a synchronized musical surprise to desktop Easter Egg mode.
- Added static roll controls to 3D emitters and sensors so asymmetric antenna patterns can rotate about boresight while motion waypoints remain position-only.
Fixed
- Prevented the spectrogram page from repeatedly regenerating annotations when renderer state changes without a graph change.
- Fixed annotation resize cursors getting stuck after leaving an annotation box.
- Made the spectrogram action tool use the regular cursor over plain spectrogram areas.
- Added visible download progress and aligned update controls when fetching a macOS update installer from the desktop app.
- Fixed a spectrogram freeze where changing FFT settings and then zooming could leave the recompute indicator stuck.
- Unified spectrogram Undo and Redo across zooming, panning, and manual annotation edits, while reliably restoring both axes without delayed plot updates creating duplicate history steps.
[0.1.50] - 2026-07-15
Added
- Added a What's New section to Help with a direct link to the full changelog.
Changed
- Moved annotation opacity into the color picker and limited it to the box fill, keeping annotation borders and labels opaque.
[0.1.49] - 2026-07-14
Added
- Added per-annotation opacity controls, preserved in SigMF appearance colors as an optional alpha byte.
- Added automatic and wideband channel response controls for 3D ITU and Sionna channel nodes, including frequency-dependent ITU loss correction for wideband signals and cached sparse path responses for Sionna-based channels.
- Added crawlable, source-backed product comparison pages and improved public page metadata for search engines and AI-assisted discovery.
Changed
- Expanded product comparisons with a clearer view of RFix workflow advantages, an at-a-glance capability matrix, concrete workflows, claim-level sources, and links into relevant RFix features and examples.
- SigMF recording and annotation-table exports of an unchanged, single Input File recording now default to the original recording's filename.
Fixed
- Stopped the macOS desktop app from repeatedly showing the same ready-to-install update after choosing Later.
- Unsigned macOS builds now offer an authenticated manual installer download instead of attempting an unsupported automatic installation, while keeping the signed update path ready for future use.
- Updater failures now show their underlying reason.
- Preserved and rescaled manual spectrogram annotations across sample-rate changes while regenerating automatic annotations without waiting for long IQ generations to finish.
[0.1.46] - 2026-07-10
Added
- Added a Firebase-gated LocalAPI Docker download portal for authorized client accounts.
Changed
- Desktop installer downloads from the website now start through the browser download manager instead of buffering the installer in the page first.
Fixed
- Fixed macOS desktop updates getting stuck after clicking restart to install.
[0.1.45] - 2026-07-09
Changed
- The desktop "What's New" popup now shows the full changelog with the newest entries first.
[0.1.44] - 2026-07-09
Fixed
- Input File node now shortens the project's global sample duration to match a shorter loaded file when it is the only node in the graph, instead of only ever extending the duration to fit longer files.
[0.1.43] - 2026-07-08
Added
- In-app "What's New" popup and changelog page for the desktop and web apps.
- Opt-in "Local MCP Connector" beta for the desktop app, letting local agent clients (Codex, Claude, Cursor, and others) read and edit the current project.
- Offline Docker bundle for running the RFIX API locally without pulling from a registry, activated with a license file, plus a one-command helper to register its MCP endpoint with common agent clients.
- Setting to disable automatic desktop app updates (manual update checks remain available).
- SigMF Collection archive export (bundled `.zip`/`.tar.gz`) from the IQ download dialog, with streaming export for large recordings on desktop.
- SigMF output format for the local generate-to-file and spooled-generation API/SDK methods.
- Color-coded spectrogram annotations that can be copied and pasted between rows.
- Input File node now shows file details (duration, sample count, sample rate) and prompts to reconcile mismatched sample rates against the project.
Changed
- Faster signal generation for larger, multi-emitter scenes through accelerated protocol encoding, resampling, and channel/motion math.
- Redesigned the Overview page hero section with an animated multi-scenario carousel.
- Upgraded the in-browser web runtime to Python 3.14 with refreshed scientific computing libraries.
Fixed
- Corrected the IQ Mismatch channel effect block, which rotated quadrature phase error in the wrong direction.
- Corrected the Phase Noise block's power conversion, which applied roughly half the intended noise power, and fixed its mislabeled units.
- Fixed the visibility checkbox in measurement/annotation tables not always registering a click.
- Fixed Keysight N9000B instrument capture failing when the analyzer was left in the wrong mode.
- SigMF exports now include correct SHA-512 data-file hashes.