Releases: FahrenheitResearch/bowecho
Release list
BowEcho v0.34.2
BowEcho v0.34.2
This release adds a full sounding-correction workflow, faster warning
inspection, broader European alert coverage, and substantial radar, satellite,
WoFS, and placefile improvements.
Sounding correction lab
- Added a separate, resizable, non-destructive correction lab for editable
model soundings. - Correct thermal, moisture, and wind profiles independently, with
variable-specific depth, domain, and blend shapes, including draggable custom
profiles. - Added visible QC for supersaturation, dry instability, invalid states, and
wind-seam kinks, plus an optional reversible dry convective adjustment. - Sounding plots, parcels, hodographs, and diagnostics update immediately from
the corrected profile; Reset original restores the untouched source. - Save fingerprint-bound projects, export CSV or SPC/SHARPpy RAW, import RAW
soundings, and run deterministic batch experiments over up to four correction
fields.
Warnings and Alerts
- Clicking warning polygons now opens compact geo-anchored cards with every
warning at that point, including wind, hail, tornado/damage tags, expiry,
issuing office, dismiss controls, and links to full details. - Added automatic warning-source selection: NWS for operational US radars and
official MeteoAlarm Atom/CAP feeds for supported European radar countries,
with manual source and country selection available. - MeteoAlarm warnings include severity-aware accents, full details, and
official CAP links. The anonymous public feeds do not provide polygon
geometry, so BowEcho presents them honestly as list/detail warnings without
inventing map placement; historical timeline sync remains NWS-only. - SPC mesoscale-discussion map clicks now open Alerts directly, and official MD
graphics can be opened in a larger scrollable viewer with Fit, 100%, and
10-400% zoom controls.
Satellite and WoFS
- Fixed cached GOES RGB composites bypassing the selected spacecraft or sector,
which could produce convincing previews but empty map coverage. - Fixed inverse-grid indexing on very wide and antimeridian-crossing satellite
domains so coverage remains reachable across the full frame. - Added Center on satellite coverage and clearer messages distinguishing an
out-of-sector view from a transparent visible-light frame at night. - WoFS drapes now continue loading and syncing when the WoFS window is closed.
- Added accurate ready/loading/unavailable/error states so stale or unvalidated
frames are never labeled active. - Added a high-visibility mode that lifts low-alpha WoFS guidance without
recoloring, repositioning, or filling transparent pixels.
Downloaded placefiles
- Added multi-file import for downloaded local placefiles, including
.txt,
uncommon extensions, and extensionless files. - Local sources persist in the Layers list and support the same enable, refresh,
reload, and remove workflow as URL feeds. - Relative local sprite-sheet references resolve beside the placefile, with
clearer load status and generation-safe refresh handling.
Radar products and quality of life
- Replaced abbreviation-heavy product chips with a categorized, full-name
product browser covering base moments, velocity, volume/hail, dual-pol,
precipitation, quality, texture, and simulation fields. - More products exposes the extended catalog; advanced sweep products
compute lazily when selected, while KDP remains automatic when its source
metadata are trustworthy. - Added one-click editing for the active radar product's color table under
Custom > Appearance. - Added a sidebar collapse handle, direct Undo for workflow presets, and
native-resolution sounding-board image capture. - Moved loop frame-count selection beside Load Loop for a clearer loading
workflow.
DWD radar
- DWD now prefers quality-controlled polarimetric reflectivity, falls back
through simpler filtered and raw variants when necessary, and enables
available ZDR, RhoHV, and PhiDP moments by default. - Missing optional dual-pol products no longer prevent the base
reflectivity/velocity volume from loading.
Source notice
European warnings are provided by EUMETNET members through the official
MeteoAlarm public feeds and are used under
CC BY 4.0.
BowEcho v0.34.1
BowEcho v0.34.1
BowEcho v0.34.1 turns the new SHARPpy-style sounding display into a fully
adaptable workspace, adds live Hurricane Hunters reconnaissance, improves
alerts and WoFS reliability, introduces safer disk-cache management, and
restores the normal application size by moving the optional P3 research tables
into a separate verified data pack.
A sounding workspace you can make your own
The SHARPpy-style board now follows the wider canonical sharppyrs layout and
responds properly to its dock:
- Stretch fills the available pane in both directions; Fit preserves
the desktop-board aspect ratio. - Cyan dividers resize the main rows, skew-T, hodograph, narrow strips, and
individual lower panels. Layout changes persist. - Parcels & thermo, Kinematics, SHIP, Severe indices, and Streamwiseness are
independently movable panels. - Sounding text can use Space Grotesk, proportional sans, or monospace, with an
independent persistent 50-200% scale. - The sounding header now exposes Box sounding and Obs adjust directly.
A box sounding's sampled footprint is also drawn on the location inset. - Observation-adjusted titles are shorter and retain useful source and
coordinate information.
RAOB selection now takes ownership of the pane immediately, even when a model,
box-mean, hail-environment, or observation-adjusted sounding is still
processing. Pending model work can no longer ignore the click or replace the
requested RAOB afterward.
Configurable diagnostic tables
Tables opens a persistent editor for the Parcels & thermo, Kinematics, and
Severe indices panels.
Every supported diagnostic can be replaced, duplicated, reordered, relabeled,
blanked, or removed. Advanced layouts can add or rename sections and rows, and
a compatible last-completed Formula Lab result can be sampled at the exact
model point or box-sounding footprint.
Opening the editor alone changes nothing. Ordinary value, label, and blank
substitutions patch only the selected native cell, preserving every untouched
row, column, order, and piece of geometry. Structural edits deliberately
switch only that panel to the freeform layout. Restore panel and Reset
all to default return to the exact native tables.
Manual model-sounding correction
Correct provides a display-only environmental correction workflow for
model soundings:
- Select one or more native model levels by height AGL.
- Override temperature, dewpoint, wind direction, or wind speed independently.
- Apply an optional cosine-smoothed vertical blend, or use a zero-depth
single-level correction. - Watch the skew-T, hodograph, parcels, and diagnostics recalculate immediately.
The source file and model store are never modified, and Reset original
restores the untouched column. Observed RAOBs remain observation-only and
cannot be manually rewritten.
Live Hurricane Hunters
An opt-in Hurricane Hunters (live HDOB) layer now follows active USAF and
NOAA reconnaissance from the four official NHC Atlantic and East/Central
Pacific feeds.
The map shows the session track, spaced flight-level wind barbs, and the latest
aircraft position, with pressure and temperature/dewpoint when the bulletin
quality flags allow them. Air Force and NOAA flights use distinct colors.
Feeds poll only while enabled, successive bulletins are deduplicated, and stale
missions are removed.
Tropical-cyclone satellite shortcuts now load up to ten recent visible or IR
frames instead of only the latest image.
Alerts, discussions, and WoFS
- Alerts-tab visibility, Active only, auto-refresh, family filters, and
watch filters now persist across restarts and upgrades. - Tornado, severe-thunderstorm, PDS, and other watches can be filtered
independently without counting PDS watches twice. - Observed tornado warnings have their own customizable border style.
- Duplicate SPC CIG switches were removed; CIG areas remain part of their
normal outlook products. - Selecting an SPC mesoscale discussion now displays its official SPC graphic
above the text when available. - WoFS now exposes only runs, cycles, and base products with verified posted
imagery. Live selections clamp to the actual published edge instead of
promising a future or expired frame that renders black.
CM1 radar fix
Moving-domain CM1 output can now build native simulated radar in Follow
domain mode when complete, unit-bearing umove and vmove records provide
the required wind-frame correction. It no longer incorrectly demands
accumulated domainlocx/domainlocy displacement for that workflow.
Fixed world still requires exact source positions, and incomplete
moving-frame metadata now reports the specific missing correction instead of a
generic warning.
Safer storage and a smaller application
Settings now includes a shared disk cap for BowEcho's rebuildable downloaded
radar and map-tile caches. It defaults to 32 GiB, recycles the oldest files
first, and can be set to zero for unlimited growth.
Repair/reset downloaded cache... safely clears only BowEcho-owned
rebuildable radar/map downloads after confirmation. Models, satellite data,
local source files, settings, palettes, annotations, screenshots, and
recordings are not touched.
The five P3/ISHMAEL property T-matrix lookup tables are no longer compiled into
every executable. Selecting that research mode for the first time downloads
the separate versioned BowEcho S-band research pack, verifies the release asset
and every member, installs it atomically, and fails closed if anything is
missing or mismatched. Release CI also guards against accidentally embedding
the tables again.
The property-aware route remains opt-in, research-only, and not an operational
calibration.
Sources and notices
Live aircraft reconnaissance comes from the official National Hurricane
Center reconnaissance feeds and follows
the NHC HDOB specification.
The optional S-band research pack contains lookup tables derived from
PyTMatrix 0.3.3, licensed under MIT;
its exact license notice ships inside the pack.
BowEcho v0.34.0
BowEcho v0.34.0 "Sounding Reimagined"
This release replaces the sounding window with a native SHARPpy-style SPC
display, adds historical obs-adjusted soundings, and gives theta-e maps a
dedicated banded color table.
SHARPpy-style sounding window
The sounding pane (native and model-dock paths alike) now renders the full
SPC-style display as a live egui widget backed by sharprs: skew-T with
CAPE/CIN shading and virtual-temperature traces, hodograph with a location
inset, storm slinky, theta-e, SR-wind, wind-speed and temperature-advection
strips, the full parameter index board with severity tier coloring, SHIP,
streamwiseness, and the Effective-Layer STP chart. A SHARPpy/Classic toggle
keeps the previous renderer one click away.
- Hover the skew-T for a readout line (height, pressure, T/Td) with a linked
marker riding the hodograph at the same height. - Scroll over the hodograph to zoom (default widened to 250 kt).
- The gear button opens a layout editor: every cell except the skew-T can be
reassigned to any panel or hidden; layouts persist with the saved sounding
view state. - The unverified "Psbl Haz. Type" watch box is replaced by a location map
panel by default.
Historical soundings
- RAOB soundings keyed off archived radar volumes already reached the
Wyoming/IEM archives; obs-adjusted soundings now do too: with a historic
scan displayed, the adjusting surface ob comes from the IEM ASOS archive
around the scan's valid time instead of the live feed. - Adjusted soundings are tagged with the station, distance, and observation
time (for example "KOUN obs-adj 12km @ 2020-05-16 21:53Z") so the source
ob is verifiable at a glance. - Fixed: opening a RAOB while a model sounding was displayed instantly
reverted to the model sounding.
Theta-e maps
2 m theta-e map products use a dedicated stepped color table with hard 10-K
tiers from 230 K to 360+ K (greens above 330, white near 320, greys below),
with a stepped colorbar to match.
Attribution
Added THIRD-PARTY-NOTICES.md covering SHARPpy (the sounding display is a
derivative port; Blumberg et al. 2017, BAMS), SHARPpy-Reimagined-vRust,
sharprs/rusty-weather, Space Grotesk, and Natural Earth.
BowEcho v0.33.3 "Repeating Of Course"
BowEcho v0.33.3 "Repeating Of Course"
This release makes native CM1 output a first-class workflow, adds ordered CM1
radar loops and box-mean model soundings, introduces the recommended audited
P3 Hybrid research preset, expands SimSat's geostationary viewpoints, and
tightens several everyday radar, satellite, WoFS, and WRF workflows.
First-class native CM1
Windows > CM1 now inventories CM1 directly instead of routing its files
through the WRF reader.
- Modern r20.3+, legacy r18/r19, and legacy COARDS NetCDF topologies are
recognized. Complete domains are accepted, one-file MPI tiles are identified
as requiring assembly, and unsupported dimensions are reported rather than
guessed. - Large NetCDF4/HDF5 output is inspected with targeted coordinate reads instead
of enumerating every root dataset. This path was exercised against a valid
14.1 GB, 21-recordcm1r21.1output that exceeds the reader's safe
full-array enumeration ceiling. - Native 2-D and 3-D scalar fields enter Models with provenance. Arakawa-C
u,
v, andware averaged from their documented faces onto the scalar grid,
and multi-record model fields retain the official elapsed-time order. - Placement remains explicit. Follow domain anchors a moving domain;
Fixed world is available only with exact source positions, including
matchingcm1out_diag_XXXXXX.ncrecords. BowEcho does not invent a map
projection or integrateumove/vmoveinto guessed geolocation. - Native columns and a stricter meteorological-readiness panel expose pressure,
temperature, dewpoint, height, and winds only when the required unit-bearing
fields are present. CM1's default thermodynamic constants are an explicit
opt-in, and model height is not silently relabeled as MSL.
A radar-ready complete domain can now build scalar native REF/VEL for one
record or All N records (ordered loop). Completed volumes are installed in
exact CM1 valid-time order, while BowEcho reads and releases one native scene
at a time. The selected record's first completed tilt can open before the rest
of the job finishes.
The CM1 radar adapter remains intentionally narrow: it is CPU-only, samples
native 3-D dbz and winds from one frozen record per radar frame, uses the
explicitly placed domain center and standard 4/3-Earth geometry, and does not
interpolate between records. It does not assemble MPI tiles, combine a folder
of one-record files, extrude 2-D cref, recompute reflectivity, run the WRF
bulk or P3/ISHMAEL operators, or synthesize dual-pol products.
See docs/cm1-guide.md for supported fields, placement rules, and a practical
walkthrough.
P3/ISHMAEL research radar
P3 Hybrid - recommended is the new practical property-aware preset. It
uses the native P3/ISHMAEL PSD T-matrix route where the complete cell, source
state, and exact tables are supported. Only explicitly classified table/shape
omissions and the typed WRF 2-micrometer source-state mass gap rebuild the
whole affected cell with versioned bulk Rayleigh v1. The selected policy and
native/fallback cell and population counts are retained in output provenance.
Full P3/ISHMAEL T-matrix (experimental) remains available as the strict
research mode. It fails closed on an unsupported scheme, source field,
particle state, frequency, geometry, or table coordinate and never silently
substitutes Rayleigh. Both modes remain research-only, are not independently
validated for operational use, and are not calibration claims.
The scheme-native path also closes a set of real-fixture edge cases involving
ISHMAEL source final checks, QNSMALL handling before geometry, density and
material-state projection, number/mass/fall-moment preservation, disjoint PSD
support, the exact small-sphere table floor, adaptive PSD integration, and rain
number normalization. A full MP55/ISHMAEL acceptance run passed. The completed
MP50/P3 full-run result was unavailable, so this release intentionally makes no
full MP50-pass claim.
CUDA request pipeline
Supported NVIDIA execution now prepares bounded gate groups on the CPU,
submits stable role sweeps, preserves source order, and reuses geometry,
role-sweep storage, and CUDA worker scratch. If a CUDA batch fails, the entire
prepared group replays on the scalar CPU path instead of publishing a mixture
of GPU and CPU answers. Cancellation remains bounded.
In one RTX 5090 request/LUT-kernel microbenchmark with 1,024 center gates,
three populations per gate, and 32 admitted nodes per population, service
requests fell from 3,072 to 32 (96x) and the measured interval fell from
47.979688 s to 0.505017 s (95.006x), with exact component-bit CPU/GPU parity.
This is not an end-to-end radar-volume speed claim: file I/O, interpolation,
admission and closure, rain/bridge work, ray sampling, propagation, and
rendering remain outside that measurement.
Area-mean box soundings
Models now includes a Box sounding field tool. Arm it, drag a rectangle on
the radar map, and BowEcho builds the result asynchronously in the existing
Sounding pane with a BOX-MEAN SOUNDING header and aggregation details.
The calculation selects native grid cells whose latitude/longitude centers
fall inside the box, takes an arithmetic mean of stored temperature, moisture,
wind, height, and surface primitives over a common finite-cell mask at each
pressure level, and derives sounding diagnostics afterward. It reports the
requested and sampled bounds, clipping, selected/surface/level cell counts,
usable levels, and any approximate-surface use. This is a grid-cell arithmetic
mean, not an area-weighted remap or a mean of already-derived parcel
diagnostics.
SimSat v0.2.1 and the MTG-I1 viewpoint
The embedded SimSat engine, including BowEcho's MTG-I1 camera integration, is
pinned exactly at
fd2b8f48e904342bc81bd003503ad0f4e27c5596.
- Surface illumination no longer applies a second unintended limb-darkening
factor. Recommended uses the reviewed 1.10 surface-only ground lift and
independently gated twilight terrain recovery; CPU output and GPU preview
use the same post-light formulas. - CIMSS Style is the recommended Band-13 presentation. Explicit IR/WV
product selection applies it without overwriting an explicitly saved palette
on later startup; NOAA-heritage grayscale remains available. - Existing v0.2.0 pane state migrates without changing its rendered appearance;
applying Recommended is the deliberate opt-in to the new calibration.
Geostationary rendering now offers MTG-I1 / Meteosat-12 (0 degrees) for
European and African domains. This is an honest camera/viewpoint preset using
SimSat's existing visible, generic 10.3-micrometer IR, and water-vapor physics.
It uses SimSat's model-sphere navigation; GOES-only Sensor QA, footprint, and
exact fixed-grid controls remain unavailable. It does not apply Flexible
Combined Imager spectral responses or point-spread functions and does not
claim FCI-equivalent radiometry.
Loop loading and export clarity
- The persisted control beside Load Loop is now labeled Frames to load
in the Site panel, Unified Player, archive controls, and Loop settings. It
controls how many recent radar scans the next load fetches and retains, up to
2,000 subject to the configured RAM budget. - Loop settings now separate Loop loading, Playback, and Video & GIF
export. Export settings record frames that are already loaded; they do not
change the radar fetch count. - Empty-loop help now points directly to Frames to load and Load Loop.
Satellite and WoFS reliability
- The Satellite pane reserves a practical preview area in short or docked
windows instead of collapsing a healthy full-resolution frame into a tiny
dark thumbnail. - A satellite map view with no visible source pixels now says whether the view
is outside coverage or transparent, rather than looking like a broken black
layer. - Live GOES follow selects the run that was just written, and saved runs are
ordered by their actual frame times so an old SimSat run cannot mask a
healthy live ingest. - WoFS preserves every initialization as its exact
YYYYMMDDHHMMtoken. An
initialization that crosses UTC midnight now uses its own date for imagery,
sounding, hierarchy, and georeference requests. - A WoFS map drape continues loading and following radar time after its control
window closes. The viewer also distinguishes a frame that is still loading
from one unavailable at the source.
WRF workflow fixes
Extract namelist... in Windows > WRF reconstructs the recoverable part
of one raw wrfout as namelist.reconstructed.input. Exact globals that map
safely back to the represented domain become active assignments; exact context
that is unsafe as namelist syntax and structure-derived dimensions remain
comments; unrecoverable settings are called out explicitly. The file identifies
its source and warns that it is partial, is not the original namelist.input,
and cannot reproduce the run.
Local WRF imports now include the dNN domain in their run identity. A folder
that mixes domains is rejected before writing, preventing same-time d02/d03
files from sharing one stored grid run.
BowEcho v0.33.2
BowEcho v0.33.2 — "The Synthetic Radar Reference Release"
BowEcho v0.33.2 turns the WRF synthetic-radar workspace into a deeper,
inspectable forward-modeling system, while updating the embedded SimSat engine
to v0.2.0. It also fixes the P3/ISHMAEL edge cases and temporal-memory regression
reported during the v0.33.1 field test cycle.
Start here
- Open Windows > WRF, choose Real radar (balanced) — recommended, and
build one or more raw wrfout times. The atmosphere is now Frozen by
default, so ordinary builds do not require a neighboring scene or the heavy
temporal cache. - Choose Maximum fidelity (slow) when you deliberately want adjacent-time
atmosphere interpolation during the scan. This changes the atmosphere sampled
by later rays; it does not create extra loop frames. - Choose P3/ISHMAEL T-matrix (research) only for native P3
mp_physics
50–53 or ISHMAEL 55 output with the required property fields. It now starts
Frozen as well. Temporal raw-state pre-closure remains an expert opt-in. - Refresh current frame(s) reruns the remembered WRF sources using the
controls currently shown. The first completed tilt appears as a preview, and
long jobs can be cancelled without installing a partial final loop. - Open Windows > SimSat for the embedded SimSat v0.2.0 renderer. Existing
WRF, cached/automatic HRRR, Satellite-window, native-plot and PNG workflows
remain available.
Scheme-native P3 and ISHMAEL radar
The research property T-matrix path no longer represents each native frozen
category with one characteristic particle. BowEcho reconstructs the supported
P3 or ISHMAEL particle-size distribution, integrates table-ready quadrature
nodes over that distribution, and reduces additive scattering and fall-speed
moments in a deterministic order.
The implementation preserves the source mass, number, rime, density, liquid
fraction and shape contracts; handles oblate/prolate and wet/dry branches;
keeps ZH, ZV, covariance, signed KDP, attenuation and fall-speed moments
additive through spatial sampling; and derives ratios only afterward. Exact
source/table applicability remains fail-closed. Unsupported physics, missing
properties, out-of-domain particles or a mismatched external table pack stop
the research run instead of silently substituting the bulk Rayleigh operator.
This release hardens the real WRF boundary conditions found during RC testing:
- tiny negative mass values caused by floating-point NetCDF output are cleaned
only within the audited roundoff tolerance; - native P3
qsmall, low-density, low-number and endpoint shapes are normalized
or omitted through bounded, mass-audited rules; - zero-ZH and subnormal fall-moment tails no longer produce impossible negative
variance or nonzero moments without reflectivity; - rain and mixed-phase closure uses the complete audited table domain and
consistent material density; and - a 0.1 K numerical tolerance handles temperatures immediately outside the
standalone-rain LUT edge without turning into general extrapolation.
P3/ISHMAEL property output remains explicitly research-only and not independently
validated as an operational radar simulator.
Optional NVIDIA CUDA execution
The WRF radar controls now expose Auto, CPU, and NVIDIA CUDA compute
preferences. Supported native dry P3/ISHMAEL table evaluation can use a qualified
NVIDIA device; immutable science tables stay resident, requests are adaptively
coalesced, and buffers are reused across batches. CPU replay remains the exact
fallback for unsupported work or an unavailable device.
Fixture comparisons require exact output float bits between the CUDA path and
the CPU reference. Provenance reports the requested and effective backend,
device, batches, nodes, fallbacks and timing. CUDA does not make every job
faster: the CPU still owns native PSD reconstruction, ordered reduction and
fallback, and small volumes may remain dominated by submission overhead.
Radar validation and inspection
The WRF workspace adds tools for determining why a synthetic product looks the
way it does instead of treating the renderer as a black box:
- exact observed-scan replay preserves cuts, rays, timing, moment availability,
Nyquist, PRT and missing sectors; - linked Observed, Simulated and Difference panes compare overlapping gates;
- Algorithm Truth Lab scores supported algorithms against known synthetic truth;
- the gate inspector explains retained source cells, weights, instrument stages
and unavailable evidence; and - Ideal, Measured and Presented stage products can be emitted explicitly for
controlled experiments.
Per-ray instrument metadata survives replay and export. Cancellation is checked
through inventory, scene reads, P3 preparation, cuts and CUDA work; cancelled
jobs do not replace the current completed radar loop.
Temporal memory and safer defaults
v0.33.1 introduced a separate 8 GiB temporal-build cap without migrating users
and allowed science presets to reset it. That made previously usable source sets
appear broken even when the normal playback-loop RAM setting was higher.
v0.33.2 fixes that regression:
- the temporal-build cap defaults to 64 GiB;
- the unmodified v0.33.1 8 GiB value migrates once to 64 GiB;
- deliberate custom values persist across updates and preset changes;
- the control is labeled Temporal build RAM cap in GiB and is explicitly
distinguished from playback-loop RAM; and - preflight failures identify the control and suggest fewer WRF frames or fewer
retained diagnostic products.
The cap is a safety ceiling, not a RAM reservation or proof that the machine has
that much memory available. Instantaneous + Frozen avoids adjacent-scene
temporal processing. Real Radar and P3 Research now default Frozen; only Maximum
Fidelity enables adjacent-time interpolation automatically.
SimSat v0.2.0
BowEcho now embeds SimSat v0.2.0 at its public release revision. The reviewed
display baseline adds deterministic two-subcolumn cloud closure, a bounded 4.0
low-sun land-normalization gain, direct top-down camera-to-cloud atmosphere,
transmittance-space ground-shadow anti-aliasing, exposed-edge feathering and a
4096-step sun optical-depth ceiling.
The optional post-light terrain toe remains a labeled, default-off CPU display
experiment. NOAA heritage Natural longwave-IR grayscale is available without
silently replacing an existing persisted CIMSS selection. Compact production
caches remain SSB v6, so this update does not force another compact-cache rebuild.
Other fixes
- WoFS sounding draping uses stricter calibration and georeference handling
instead of allowing a small successful subset to hide widespread failures. - SPC mesoscale discussions expire against their actual validity rather than
lingering as active products. - WPC mesoscale precipitation discussions are ingested and presented alongside
the existing discussion products. - The in-app simulated-radar and SimSat guides describe the new controls,
workflows, provenance and scientific boundaries.
BowEcho v0.33.1
BowEcho v0.33.1 — "The Forward Operator Release"
BowEcho v0.33.1 replaces the four principal simulated-radar limitations called
out in v0.33.0 with an opt-in, versioned research path: property-aware
T-matrix dual polarization, frozen-particle orientation, adjacent-scene WRF
sampling, and source-qualified numbered VCP base patterns.
Start here
- Open Windows > WRF > WRF simulated radar, select Real radar
(balanced), and build one or more compatible wrfout times. Change the
controls and use Refresh current frame(s) to iterate without reopening a
picker. - Under the advanced radar controls, Atmosphere time can evolve later rays
within each timed volume toward the next compatible WRF scene. It does not
add loop frames, create supplemental low-level scans, or watch a live model
directory. - Use P3/ISHMAEL T-matrix (research) only with native P3
mp_physics
50-53 or ISHMAEL 55 output that retains the required property variables.
Thompsonmp_physics=8and conventional WRF files should use the bulk
recipes. - Open Windows > SimSat, choose a WRF or HRRR-native source, start with
Recommended Display, and use Render to Satellite for a stored frame
or loop. High Quality Visible and Sensor QA remain explicit alternatives. - The in-app Guide now has dedicated WRF/simulated-radar, Formula Lab, and
SimSat chapters with exact workflows and scientific boundaries.
SimSat v0.1.9 integration
BowEcho now embeds the exact public SimSat v0.1.9 release commit. The existing
extensionless-wrfout picker, cached/automatic HRRR wrfnat acquisition,
source-qualified Satellite loops, native plotter, and PNG export bridge remain
in place, while the pane adopts upstream's reviewed control policy:
- Recommended Display, High Quality Visible, and Sensor QA quick
modes, with incompatible products/platforms refused instead of relabeled; - Display versus provenance-bearing Sensor Fast Gray intent;
- model-sphere versus exact GOES-R ABI navigation;
- CompactU8 v6 versus isolated CPU-only ScienceCloudF16 v7 storage;
- Effective OD and deterministic 4/8/16 fractional-cloud closures;
- fixed, NSSL MP18, and HRRR Thompson particle-optics choices;
- delta-flux v3 and the top-down cloud-radiance footprint; and
- official FM4/GOES-19 Band 13 response plus the opt-in experimental ABI MTF
footprint.
After each successful render, the SimSat pane reports the observation operator,
storage profile, automatic intent substitutions, thermal response, footprint,
and science limitations. These notices are not embedded into Satellite-store
frames or PNG metadata. SimSat render choices now persist with BowEcho settings,
while source paths, active jobs, progress, and output remain session-only. The
compact cache advances from SSB v5 to v6, so retained source-backed caches
rebuild once; cached-only old bricks still require their original WRF/HRRR
source.
The v0.1.9 engine also supplies its reviewed low-sun lighting correction:
surface assistance now ramps over 0–12 degrees, water direct light is no longer
artificially day-gated, the display cloud-shadow floor is 0.45, and finite-sun
shadow softening uses angular radius.
Property-aware P3 and ISHMAEL T-matrix radar
The WRF window now includes a sixth first-class recipe, P3/ISHMAEL T-matrix
(research). It reads native P3 mp_physics 50–53 and ISHMAEL
mp_physics 55 mass, number, rime, density, liquid-fraction and shape state.
Each active model cell is closed once and evaluated through five exact 2.8 GHz
PyTMatrix 0.3.3 tables:
- dry oblate frozen particles;
- dry prolate frozen particles;
- wet oblate frozen particles;
- wet prolate frozen particles; and
- standalone plus unpaired residual rain.
The tables retain nonspherical and non-Rayleigh/resonant Waterman T-matrix
behavior. Frozen particles use a mean-zero Gaussian canting distribution with
a fixed 20-degree standard deviation and deterministic 5 by 10 orientation
integration. Dry ice uses the declared Mätzler dielectric model; wet frozen
particles use symmetric Bruggeman air/ice/water mixing; rain uses the
temperature-dependent Liebe-Hufford-Manabe liquid-water model.
The solver domains are role-specific so one difficult wet-column corner does
not erase valid large-particle coverage elsewhere. The contiguous upper
diameter endpoints are 89 mm for dry oblate, 32.312 mm for dry prolate, 15 mm
for wet oblate and 6.3 mm for wet prolate. The next dry-prolate 36.126 mm node
exposed an unresolved, solver-sensitive KDP resonance, so BowEcho caps the
contiguous domain rather than bridging it. The 719-sample final interpolation
history was development evidence, not a final all-grid validation claim. The
embedded bundle contains 2,640,848 points: 616,000 dry-oblate, 132,160
dry-prolate, 1,017,600 wet-oblate, 864,000 wet-prolate, and 11,088 rain.
The final diameter-only design audit reached its predeclared depth-three bound
without passing. BowEcho retained that failed report, then used finite
arithmetic-midpoint refinement only in the affected diameter cells and
implicated non-diameter intervals; it did not insert held-out coordinates,
extend a domain, loosen thresholds, or reroll the final seed. All five embedded
property tables passed their one frozen held-out check, 30 of 30 nodes.
The shared eight-table report is transparently not an all-eight pass: its only
two misses are in a separate conventional dry-ice research fixture that this
property path does not embed. The held-out report SHA-256 is
82f07bc736f6b5f20c7a59117204b69d97b9cbcb9f915cc54be394b0d8b742ce;
the immutable request SHA-256 is
2b4d143d86aaf78913df165b329ae62f6076e2574f34c1d393b6b9ddd90a45c5.
The v9 ndgs=12 to ndgs=14 convergence report (SHA-256
352e259f02b606ac71579b7d3b4591c3088b41f8e74becd949a27e5721030067)
is reused only for the three byte-identical dry-prolate, wet-oblate, and
wet-prolate configs: 2,013,760 points and 18,123,840 component comparisons.
It does not claim all-node convergence for the refined dry-oblate or rain
configs. The exact scope and table hashes are frozen in
validation/tmatrix/refined_grid_v10_property_bundle_acceptance.json.
This mode is deliberately fail-closed. Frequency, solver, axes, dielectric,
orientation, phase, shape, source-field and whole-file SHA-256 contracts must
all match. BowEcho does not clamp an unsupported particle, extrapolate a LUT,
or silently substitute the bulk Rayleigh kernel. It remains
research_only_unvalidated: characteristic particles are number-scaled, not
a scheme-native PSD integral, and neither the held-out interpolation check nor
same-implementation convergence evidence is independent scientific
validation.
Additive radar physics from cell to loop
The renderer precomputes only active WRF property cells at five radar-view
nodes, then drops the raw property arrays. ZH, ZV, complex covariance, signed
KDP, attenuation and raw fall-speed moments stay additive through vertical and
horizontal interpolation, beam-angle interpolation, pulse-volume integration
and time interpolation. ZDR and rhoHV are derived only after those sums.
Paired liquid is removed exactly once in the wet coexistence branch; any
residual rain number scales with residual mass. Closure-derived fall speeds
replace LUT placeholder moments. Clear cells contribute real zero weight
rather than being renormalized away, and property ZH is the only reflectivity
source in this mode.
The hot path uses one flat parallel-written scattering plane, an O(1) dense
cell-to-row map and an allocation-free eight-cell weighted query. Memory gates
include raw sparse input, the build plane, embedded tables, a retained adjacent
scene, output loops and scratch before the scattering cache is allocated.
Timed atmospheres across WRF files
Timed scans can now interpolate between compatible adjacent WRF scenes instead
of sampling one frozen model instant. Every ray uses its acquisition time and
a bounded interpolation weight. Per-source-cell closure happens before
additive scattering and wind are blended between scenes. BowEcho never
extrapolates past the adjacent forecast time.
Missing or incompatible neighbors use the explicit hold anchor, drop
frame or stop with error policy. Run/domain/grid/source-field/table
compatibility is checked before two scenes are combined, and the outcome is
written into volume provenance.
Numbered Build 24 VCP base patterns
The simulated-radar scan selector now includes VCP 12, 34, 35, 112, 212 and
215 from the WSR-88D ROC Build 24 Appendix C source. All 94 physical rows are
retained, including repeated split-cut rows, source azimuth rates, periods,
waveforms, moment coverage and PRF codes.
These are source-qualified base-pattern simulations. BowEcho does not invent
PRF hertz values from numbered codes and does not claim SAILS, MRLE, AVSET,
Add-MPDA, site-specific adaptations or a reproduced observed volume.
Guide and provenance
The in-app Guide and docs/wrf-simulated-radar.md now document recipes,
geometry, Build 24 VCPs, timed-scene policies, dual-pol products, propagation,
P3/ISHMAEL closure, material models, orientation, convergence domains, memory,
export and honest scientific boundaries. Generated volumes carry the exact
table IDs and SHA-256 values, solver/orientation/fall policies, source fields,
population accounting, scene identities, temporal outcome and Build 24 source
revision.
BowEcho v0.33.0
BowEcho v0.33.0 — "The WRF Laboratory Release"
BowEcho v0.33.0 turns WRF analysis into a first-class part of the application.
It adds a substantially deeper simulated-radar forward operator, gives raw WRF
work its own workspace, and promotes Formula Lab into a dockable tool that can
build diagnostics from WRF and other model runs already stored in BowEcho.
A much deeper WRF simulated radar
Open Windows > WRF and choose WRF simulated radar. Five complete recipes
make the expanded operator approachable without requiring users to understand
every interacting radar setting:
- Storm view (fast) produces readable textured reflectivity and velocity
loops. - Clean model truth keeps the model atmosphere free of virtual-instrument
effects. - Clean dual-pol adds polarimetric physics and propagation without noise,
folding or blockage. - Real radar (balanced) is the recommended practical S-band simulation.
- Maximum fidelity (slow) uses the full 27-point pulse-volume integration
for a single frame or short loop.
The advanced controls remain independently editable after choosing a recipe.
BowEcho now supports center, 9-point and 27-point pulse-volume sampling in
linear reflectivity; hydrometeor terminal fall speed; pulse-volume spectrum
width; cumulative terrain-horizon blockage; timed rays; configurable beam and
pulse properties; range-dependent sensitivity; velocity folding; calibration
offsets; and optional real-radar presentation texture and clutter.
The scheme-aware bulk S-band dual-polarization path can emit ZH/REF, ZDR,
rhoHV, KDP, PhiDP, Doppler velocity, spectrum width, specific and integrated
attenuation, and intrinsic/corrected reflectivity and differential
reflectivity. It recognizes common Lin/WSM/WDM, Thompson, Morrison,
Milbrandt-Yau and NSSL bulk schemes. Inputs that cannot support an honest
polarimetric interpretation fall back to scalar REF/VEL with an explicit note.
Every generated elevation, radial, gate and moment enters BowEcho's ordinary
radar viewer. Simulated frames therefore use the same loops, readouts,
cross-sections, derived products and velocity tools as observed radar. CfRadial
export now carries the expanded moments plus scan timing, instrument,
calibration, model, microphysics and forward-operator provenance.
Fast radar experimentation
After building one simulated frame or a multi-file loop, use Refresh current
frame(s) to rerun the same WRF source set with the controls as they are set
now. No file picker or re-import is required. A folder selection remains a
stable session snapshot, so experimenting with physics cannot silently add new
files, and the completed refresh replaces the current radar loop in one step.
WRF is now its own workspace
Raw WRF work is no longer mixed into the general Models library. Windows >
WRF provides a focused workspace for quick WRF/NetCDF import, full wrf-rust
diagnostics, GDEX access, simulated radar and Formula Lab handoff. Models
remains the library and output surface for stored fields, plots and soundings.
Both windows share the same model backend and current selection, so results
move between them without duplicate imports or stores.
The WRF workspace keeps extensionless wrfout_* support across every domain,
multi-file and folder processing, size-aware confirmation for large jobs, and
the configurable severe/thermodynamic diagnostics suite. Simulated-radar
controls are organized around the task-oriented recipes first, with radar
location, scan geometry, physics, moments, presentation, instrument and
propagation tuning available below them.
Formula Lab across model workflows
Windows > Formula Lab now opens a first-class floating or docked workspace.
Its editor, source choice and options persist, evaluation runs in the
background, and the window remains usable independently of Models and WRF.
For stored runs, Formula Lab follows the current model/run/time selection and
discovers the fields that actually exist instead of assuming a WRF-only field
list. Model-aware quick starts adapt to compatible variables and units, while
the readiness view explains missing or incompatible inputs before evaluation.
Pointwise formulas therefore work with WRF, HRRR, GFS and other supported model
runs whenever their manifests provide the required fields.
Raw WRF mode remains available for formulas that require native grid metrics,
physical height, vector operations or horizontal calculus. This boundary is
shown directly in the UI: stored-model formulas cannot claim grid-aware
operations when the store does not contain the required geometry.
Formula results install into the shared Models workflow with provenance and
safe units. They can be inspected in the field viewer, placed on the radar map,
sent to the native plotter and styled with BowEcho's model color-table tools.
Scientific scope
This release's dual-pol kernel is a versioned bulk Rayleigh operator, not a
T-matrix solver. Frozen-particle orientation, resonance and scheme-native P3
properties remain future work. Timed scans sample one WRF model instant; they
do not interpolate the atmosphere between forecast files or claim to reproduce
a numbered operational VCP.
Windows, macOS and Linux ship the same WRF, Formula Lab, model import and native
file-dialog workflows. Linux native dialogs continue to require GTK 3.24.
BowEcho v0.32.0
BowEcho v0.32.0 — "The Satellite Release"
BowEcho v0.32.0 makes simulated and international satellite imagery first-class
parts of the application. It ships the completed SimSat v0.1.6 integration,
public Meteosat-12 imagery and lightning, a substantially cleaner radar and
model workspace, and signed macOS updates that can install from inside BowEcho.
SimSat v0.1.6 inside BowEcho
Windows > SimSat now opens the embedded simulated-satellite workspace.
BowEcho accepts local WRF/NetCDF files, extensionless wrfout files from any
domain, folders and multi-time files, previously downloaded HRRR native-level
files, or an HRRR wrfnat download requested directly in the pane. The smaller
pressure-and-surface model pair cannot reconstruct the native cloud volume, so
SimSat keeps its full-native HRRR inputs in a separate reusable cache.
The first release includes visible true color, GeoColor, sandwich imagery,
band-13 infrared, the three ABI water-vapor bands, precipitable water,
cloud-top temperature, and cloud optical depth. Normal renders use SimSat's
full CPU path, enter BowEcho's Satellite player, group frames from one source
run into one loop, follow onto the radar map, and retain their native plot and
PNG-export path. The optional visible-only GPU preview renders one frame,
reports every compatibility substitution, and deliberately does not enter a
saved Satellite loop.
The pane exposes the released atmosphere and cloud controls: aerosol optical
depth, humidity swelling, aerial-veil and terrain-height atmosphere, model
fractional clouds, visible cloud-OD scaling, exposed-domain edge feathering,
legacy/single/delta-flux cloud transport, granulation, land visibility and
highlight calibration, what-if lighting, and the opt-in top-down stratiform
reconstruction. Defaults match SimSat v0.1.6, including fractional clouds on,
cloud-OD scale 0.15, exposed-edge feathering on, and granulation off. Top-down
output now honors Model native, ABI 1 km, and ABI 2 km resolution while
preserving aspect ratio at the output cap.
SimSat's brick format advanced from v3 to v5. BowEcho uses a versioned engine
cache so old bricks cannot be mistaken for current data; retained WRF or HRRR
source files re-ingest normally without another HRRR download.
Meteosat-12 imagery and MTG lightning
The Satellite window now includes Meteosat-12, backed by EUMETSAT's public
EUMETView service. No EUMETSAT account or API key is required. BowEcho discovers
the current MTG-I1 layers and times, loads the latest frame or a loop, and
supports true color, infrared and provider-rendered RGB products over a saved
regional window or the normal sector.
MTG Lightning Imager Accumulated Flash Area is available in the Meteosat tab
and from the map's lightning shortcut. Meteosat imagery and lightning share the
same Satellite store, player, map-follow, native plot, and PNG route as GOES and
Himawari. Equal product, grid and UTC-day frames join one loop instead of
creating one run entry per frame.
BowEcho keeps the required attribution visible on modified map and plot output:
Contains modified EUMETSAT Meteosat data YEAR. The year follows the frame's
UTC date. This integration uses EUMETView's rendered public products rather
than raw FCI radiances.
Satellite workspace improvements
- Provider tabs now use their full GOES, Himawari and Meteosat names instead of
truncating them to four characters. - Live download and ingest progress remains visible regardless of the selected
provider tab. - Himawari true-color composition accepts the full 5500 × 5500 source grid and
applies a bounded, aspect-preserving output policy instead of rejecting the
frame as oversized. - Real and simulated satellite products share the native plotting and Save PNG
workflow, including physical Kelvin or derived-field colorbars where
appropriate and RGB output without a false scalar legend.
Cleaner radar and model workspaces
The radar top bar now has a single Timeline surface for live/archive/player
work instead of overlapping Archive, Sweeps and Advanced menus. Archive loop
selection stays open while its controls are edited, the command strip is less
crowded, and the responsive AWIPS-style site/product/time readouts retain their
priority at narrower window widths.
The Model window now treats WRF as a first-class workflow rather than burying it
under a generic data menu. Open WRF/NetCDF, full diagnostics, simulated radar,
Formula Lab, fields, plotting and output are grouped into clearer surfaces. The
quick ingest path is intentionally narrow: latest HRRR f00, optional f01, and a
choice between sounding processing and full processing without the heavy/eCAPE
path. Custom model, cycle and hour selection remains available separately.
Loop settings no longer close when a dropdown is used. Recording resolution
defaults to Native, and frame limit, RAM budget, recording size/format/speed and
capture FPS persist across restarts.
In-app macOS updates
Signed and notarized Intel and Apple Silicon builds now know their exact release
asset and can offer Install update in BowEcho. Before replacing an app,
BowEcho verifies the published SHA-256, Apple signature, Gatekeeper acceptance,
bundle identifier and signing-team continuity. The swap uses a private staged
bundle, retains the prior signed app for rollback, and restores it if the new
bundle cannot be installed.
v0.31.1 Mac builds do not contain the architecture-specific asset identity, so
moving from v0.31.1 to v0.32.0 is the one-time manual bootstrap. After v0.32.0
is installed in /Applications, later compatible releases can install in-app.
Windows retains its signed in-app updater; Linux retains the browser-based
release flow.
Platform and data notes
- Windows, macOS and Linux builds contain the same desktop import and SimSat
workflows. Linux native dialogs continue to use GTK 3.24. - GPU preview requires a compatible local wgpu adapter. Its failure never
silently falls back to a stored CPU frame. - SimSat's top-down stratiform reconstruction and delta-flux transports are
explicitly labeled experimental and remain opt-in.
BowEcho v0.31.1
BowEcho v0.31.1 — "Science and Linux Parity"
This is much larger than an ordinary patch release. BowEcho gains a native
Formula Lab, public Polish dual-polarization radar layers, computed and imported
vertical wind profiles, complete-day ORD archive loading, and full Linux
desktop-dialog parity.
Formula Lab and the Rusty Weather 0.2.37 stack
Formula Lab is now part of the Model window. It evaluates bounded data formulas
in a background worker against either the selected BowEcho model run or any raw
WRF file; ordinary extensionless wrfout_* files and every WRF domain are
accepted. Stored formulas are model-neutral whenever their requested variables
and dimensions exist, so the workflow is not limited to WRF.
Results open in BowEcho's existing model viewer and native plot/PNG workflow.
New fields receive an automatic scale over their finite result range unless a
saved output-name color table applies. Exact-time validation protects temporal
operators from stale or ambiguous model axes.
The supporting Rusty Weather v0.2.37 stack includes the Formula engine, Classic
CDF and NetCDF4/HDF5 input, corrected HDF5 START_DATE handling, and validated
XTIME fallback. BowEcho pins Rusty Weather commit 9753f55 and wrf-rust
commit 2550d4e2 for this release.
Poland IMGW-PIB POLRAD dual-pol CMAX
The Map layers menu can now load official ODIM HDF5 dual-polarization CMAX data
from the IMGW-PIB national datastore. BowEcho supports KDP, RHOHV, ZDR, and
PHIDP where it is currently published across the POLRAD site catalog, with live
availability checks because product coverage varies by radar and cycle.
These are site-centered two-dimensional maximum projections, not polar volumes:
they do not contain individual tilts, radial geometry, or recoverable 3-D storm
structure. Required IMGW source and processed-data notices remain visible on
derived map output.
Vertical wind profiles
The new experimental VWP workspace computes winds from the loaded volume's
dealiased radial velocity and displays the vertical profile, hodograph, fit
error, sample count, azimuth coverage, and per-level quality. It requires a
polar velocity volume; a two-dimensional CMAX layer cannot produce a VWP.
BowEcho can also open local NEXRAD Level III Product 48 files, preferring their
tabular VAD data and falling back to symbology wind barbs. CSV export preserves
available divergence, geometry, and threshold metadata. Product 48 files are
not automatically downloaded in this release.
Complete-day ORD archives
Data > Archive > Load full day now retrieves an ORD radar day through 24
bounded one-hour catalog phases, merges and deduplicates the scan lanes, then
downloads in 20-scan phases. Frames stream into the loop as they decode instead
of waiting for the whole day.
Listing and downloading are cancellable. Failed volumes get one retry, and a
partial failure keeps every successful frame while reporting the day as
incomplete instead of silently claiming success.
Full native dialogs on Linux
Linux desktop builds now expose the same native file and folder workflows as
Windows and macOS across radar, satellite, models and WRF processing, Formula
Lab, simulated-radar and CfRadial export, plots, styles, settings, audio, GIS,
and local-volume tools.
Dialogs use the synchronous GTK 3 backend. Linux systems need a GTK 3.24
runtime; source builds also need the GTK 3 development package (for example,
libgtk-3-dev on Debian and Ubuntu).
SimSat remains in tuning
The existing SimSat integration is still compiled into BowEcho, but its Window
menu launcher is intentionally hidden while simulated-cloud rendering is tuned
to release quality. SimSat is not being presented as a v0.31.1 user feature.
BowEcho v0.31.0
BowEcho v0.31.0 — "The Interface Release"
BowEcho grew from a radar viewer into a radar + satellite + model analysis
workstation, and the interface finally caught up. Every panel has been
redesigned around one shared layout system, the chrome got a real design
language with two selectable themes, and the top of the window now reads
like the analyst console it is. No radar, satellite, or model behavior
changed in this release — it is the same engine in a far better cockpit.
A redesigned sidebar
All five control tabs were rebuilt on a shared panel kit — one grammar for
sections, rows, sliders, chip grids, and status blocks, so every tab lays
out, aligns, and behaves the same way:
- Radar — product chip grid, tabular tilt rows, cleaner site controls.
- Map (was "Custom") — layer rows with aligned columns: name, opacity,
and controls line up down the whole rail. - Alerts (was "Severe") — a tabular alert list with family chips.
- Data — compact scene-pack rows, archive/event/feed rows, chip-grid
scan pickers. - Settings — uniform rows, slider rows, and collapsed "about"
disclosures instead of inline prose walls.
The panel is comfortable at its default width and everything still works at
narrow widths; the sidebar is freely resizable and BowEcho now remembers
your width and your active tab across restarts.
Two themes, your pick
Settings > Display > Theme:
- Slate (default) — near-black blue-grey panels with the classic cyan
accent, disciplined to selection and live indicators. - Graphite + amber — a pure-neutral ramp with an amber accent.
Both themes hold WCAG-grade text contrast on every surface (enforced by
tests, not by eyeball), use one accent color for selection and live
emphasis only, and reserve green/amber/red strictly for meaning: live,
warning, alert. The switch applies instantly and persists. Custom Brand
Kits keep driving the chrome exactly as before when one is active.
An analyst top bar
The bar above the map now carries an AWIPS-style monospace readout of what
you are actually looking at — site, product, VCP, scan timestamp, data age,
loop position, and playback state — and the status bar below deduplicates
into transient messages plus cursor/map readouts in fixed-width type.
Numbers, IDs, and timestamps render in monospace everywhere in the chrome.
Typography and density
One deliberate type scale (11 / 12.5 / 14 pt, monospace for numerics), a
consistent 4 pt spacing rhythm, hairline separators instead of heavy rules,
and restrained corner rounding. The chrome also drops every glyph the
shipped fonts cannot render — a set of buttons and labels that showed as
hollow "tofu" boxes (arrows, dots, dropdown markers) now use symbols the
font actually covers, and a test pins the vocabulary so it stays that way.
Quality of life
- Windows release signing hardened in CI: the code-signing toolchain is no
longer cached, eliminating a recurring poisoned-cache failure mode that
could delay releases.
Sources and credits
Model color tables ported from Solarpower07's WRF-Runner. Full source list
in the in-app guide.