v0.3.0
What's Changed
Added
- First-launch hydra-swe2d wheel installer — no more compiling CUDA from source. Install the plugin zip and the first launch downloads the pre-built backend wheel (Linux manylinux_2_28 + Windows win_amd64) into an isolated ~/.hydra2dgpu environment automatically.
- New open_bc_relaxation stability knob (Numerics / Stability) that damps reflections at OPEN, REFLECT, NORMAL_DEPTH, and NORMAL_DEPTH_SLOPE boundaries. Per-edge overrides via a bc_relax field on the BC line layer.
- New spatial reconstruction schemes:
- FV_BARTH_JESPERSEN (scheme 5) — Barth-Jespersen gradient limiter for robust 2nd-order on poor meshes
- FV_WENO3 (scheme 6) — true 3-sub-stencil WENO, 3rd-order with 1-ring stencil
- FV_MP5 (scheme 8) — Suresh-Huynh Mapped Monotonicity-Preserving, 4th-order (CFL ≤ 0.4)
- Per-scheme CFL limits enforced in solver backend
Changed
- FV_WENO5 renumbered from scheme 6 to scheme 7; old scheme-6 persisted configs emit a migration warning
- Reconstruction scheme combo in GUI shows all 9 schemes
- Plugin imports from qgis.PyQt (Qt 5/6 portable) instead of bare PyQt5, supporting both QGIS 3.28+ (Qt 5) and QGIS 4.x (Qt 6) from a single source package
- Plugin restructured into qgis_plugin/HYDRA2DGPU/ for QGIS plugin repo submission (binary-free, <20 MB); LICENSE now bundled in the plugin zip
- Release wheels are built portable (x86-64-v2) so they run on CPUs without AVX-512; the Windows wheel bundles the CUDA runtime DLL so it installs on machines without a CUDA toolkit
- Windows backend install hardened for OSGeo4W QGIS: venv created from the real python.exe (not the QGIS launcher), pip invoked via python -m pip, and subprocess workers (Gmsh meshing, batch runs) run in a plain interpreter instead of spawning a second QGIS instance
- High-performance overlay + native mesh modules now import correctly from the wheel install
- QGIS plugin repo security findings resolved (no silent exception swallows; hardened subprocess / URL-open boundaries)
Removed
- GPU Direct Viewer stack (Phase 1–5: LiveSnapshotReader, GPUViewerDialog, CUDA-OpenGL interop, DiagRecord ring buffer, HUD, NVENC) — deferred from this release; non-functional and was a Windows build blocker. Preserved in git history.
- docs/DEVELOPER_GUIDE.md §8 (Studio UI API Reference) and docs/UI_COMPONENT_GUIDE.md — replaced with redirects to STUDIO_GUI_API.md
- tools/package_release.py (zip-with-bundled-binary packager) — replaced by tools/package_plugin.py
Full Changelog: v0.2.2...v0.3.0