Commit Graph
27 Commits
Author SHA1 Message Date
Ayzen 45861f4047 sar3d: GPU port of the notebook with four views
The sar3d processor is rewritten as a checked port of Multi_antenna_3D_clean_v1.ipynb:
NVRTC kernels, timing from the trace stamps, notebook parameter names and one cubic
SAR_VOXEL_M. It adds front, side, top and 3D views, drops gpr_cpp and the parity tools,
and the GUI speed now applies only while the socket speed is ignored.
2026-10-02 16:05:22 +03:00
aweandClaude Fable 5 7329750c0c sar3d: fixed default scene window X [-2,2], Y [-0.5,2], Z [0,8] m
The grid bounds are now explicit config (sar3d_x/y/z_min/max_m) instead of
being derived from the antenna span and the depth gate. The depth mask
still zeroes voxels outside [min_depth, max_depth], so the wider Z window
just shows the masked wedge. The bound fields are double: the parity tool
recomputes the notebook-derived bounds (notebook_grid_bounds) and passes
them through the live config, and a float roundtrip shifted the axes by
~1e-7 m, flipping depth-mask knife-edge voxels against the reference npz.
Parity on frames 0034-0036 unchanged (1.3e-6, axes bit-match).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-09-25 17:12:18 +03:00
aweandClaude Fable 5 b8cb572bc4 sar3d: port the Multi_antenna_3D_clean_v1 notebook algorithm
The old sar3d core was a port of the superseded Horns_3D notebook and
produced wrong volumes. The compute core now follows the reference
notebook exactly:

- segmented_interleaved frame timing rebuilt from per-trace capture
  stamps (uniform tx_per_segment split as the no-stamps fallback), with
  the coarse inter-segment dtau and the intra-sweep dtau applied as one
  phase ramp before the IFFT;
- ground scene coordinates with the ground_depth_m lift (scene Y=0 is
  the ground), full-region grid instead of a window around a center
  depth, geo_ref compensation anchored on the ground plane, power 0.3;
- notebook finalization in C++: |acc/cnt|, depth mask, normalization
  without the Y-edge planes, separable Gaussian over (Z, X), level;
- CUDA kernel computes geometry in double: float32 loses ~3e-4 of an
  A-scan sample in tau and drifts ~1e-4 from the float64 reference.

Live-config keys follow: the center_depth/half_width/grid_n window knobs
are replaced by ground/voxel/y-range/margin/sigma/power/tx_per_segment.

Parity against the notebook npz exports (frames 0034-0036 of the
20260922_mine_fast_true dataset): max|diff| <= 1.6e-6 off the depth-mask
knife edge, identical argmax, level rel diff <= 7e-7. Verified via
make sar3d_parity --dump-dir + scripts/sar3d_volume_compare.py; the
executable spec lives in scripts/sar3d_reference_check.py (bit-tight
against the npz, including the animation shifted-grid arithmetic).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-09-25 16:42:01 +03:00
awe ebf0462d85 Revert "move to new version"
This reverts commit e202f57ef8.
2026-09-25 14:51:04 +03:00
awe e202f57ef8 move to new version 2026-09-17 17:58:36 +03:00
awe 16ccafff69 test new version 2026-09-16 13:22:21 +03:00
awe b3339d101c projector version 2026-09-15 19:06:05 +03:00
Ayzen 42532c9868 added new filtration and fixed processing parameters 2026-06-23 21:55:40 +03:00
Ayzen f0d095de80 new GPR 2026-06-11 19:51:30 +03:00
Ayzen af6005d68f web UI added and refactoring done 2026-06-06 00:06:30 +03:00
Ayzen 3c30a12d4a some fixes again 2026-06-05 17:50:59 +03:00
Ayzen bbea744459 some fixes 2026-06-05 14:40:10 +03:00
Ayzen 22942d9dc9 some fixes 2026-06-04 18:33:38 +03:00
Ayzen eacea436a4 some fixes and improvements 2026-05-28 14:33:12 +03:00
Ayzen 83a934f251 added timing 2026-05-26 15:08:56 +03:00
Ayzen 0da8b1283c working version 2026-05-18 17:27:00 +03:00
Ayzen 907dbf29ce kamil_adc support added 2026-05-08 21:23:52 +03:00
Ayzen cf3f3cbd67 fixed UI 2026-05-06 16:08:24 +03:00
Ayzen 1b7d9e417d added legacy gpr 2026-05-06 11:54:59 +03:00
Ayzen e86f30023e new gpr 2026-05-05 15:45:52 +03:00
Ayzen 202993325d new GPR parameters and some UI fixes 2026-04-07 12:55:26 +03:00
Ayzen 4b78c2808d added gpr speed tracking 2026-04-01 22:05:04 +03:00
Ayzen 669205d8f8 UI updates 2026-04-01 20:21:16 +03:00
Ayzen 077542cbd0 added s11! 2026-03-26 18:29:42 +03:00
Ayzen 9ddbde22bd added pass through s11 2026-03-26 17:21:25 +03:00
Ayzen 9581730e41 added GPR 2026-03-19 19:29:08 +03:00
Ayzen fd4618b20d init commit 2026-03-05 14:42:33 +03:00