gd.addMessage("=== CUAS RT flow selection ===");// By Codex on 07/15/2026: stable visual locator for run instructions
gd.addCheckbox("CUAS realtime enable",this.en,
"Enable testing of the realtime CUAS detection.");
gd.addCheckbox("CUAS RT photometric calibration",this.calib,// By Claude on 07/03/2026
...
...
@@ -124,6 +125,8 @@ public class CuasRtParameters {
"Isolation test inside the en branch: build QuadCLT instances (borrowed calibration), then print per-sensor average spread (CuasMotion.perSensorAveragesFromTD) instead of normal RT detection. Well-calibrated -> the 16 sensor averages match (spread ~0).");
gd.addCheckbox("CUAS RT pose test",this.pose_test,// By Claude on 07/03/2026
"RT pose-adjustment prototype (phase A): re-generate per-scene 3-angle poses against the virtual-center reference (ascending, prediction-seeded) instead of RT detection. Writes -POSE-RT-TEST.csv and a fitted-vs-stored summary.");
gd.addMessage("=== Pose RT tile selection and input ===");// By Codex on 07/15/2026
gd.addNumericField("Pose test reliable strength",this.pose_str,5,7,"",// By Claude on 07/03/2026
"Tile selection for the pose test: combo-DSI strength threshold (1.0 gives ~ the old getReliableTiles population).");
gd.addNumericField("Pose test outlier gate k (NMAD)",this.pose_dxy_k,5,7,"",// By Claude on 07/04/2026
...
...
@@ -138,6 +141,8 @@ public class CuasRtParameters {
"OFF = maximum-throughput run. ON = release all inputs at 60 Hz without skipping and report bounded-queue, latency and deadline statistics. Applies only when the all-scene preload succeeds.");
gd.addCheckbox("Pose test lean correlation (B)",this.pose_lean,// By Claude on 07/05/2026
"Phase B measurement: TD-average the 16 sensors, then ONE conj-multiply vs the virtual-center TD -> FZ-normalize -> PD -> argmax+eigen -> 3-angle LMA. v1 has NO motion-blur compensation (compare vs the NOMB baseline).");
gd.addMessage("=== Pose RT debug modes and saved products ===");// By Codex on 07/15/2026
gd.addCheckbox("Pose test ALL tiles (ignore calibration)",this.pose_full,// By Claude on 07/04/2026
"DEBUG: use all strength-selected tiles (~1074); the tile-selection calibration is neither read nor written.");
gd.addCheckbox("Pose test save 2D correlations",this.pose_corr_save,// By Claude on 07/04/2026
...
...
@@ -146,6 +151,8 @@ public class CuasRtParameters {
"DEBUG: save the rendered composite (TD-averaged, grid-transformed) scenes correlated against the virtual center (-POSE-RT-COMPOSITE, z=scenes) + the center reference render (-POSE-RT-CENTER-REF). Lean engine only.");
gd.addCheckbox("Pose test stored poses (no LMA)",this.pose_stored,// By Claude on 07/04/2026
"DEBUG: measure/render every scene at its STORED pose, skip the LMA entirely - decouples the task/render/correlation chain from the solver. Lean engine only.");
gd.addMessage("=== Pose RT LMA, peak and motion-blur controls ===");// By Codex on 07/15/2026
gd.addCheckbox("Pose lean uniform MB vector (v2)",this.pose_mb_uniform,// By Claude on 07/12/2026
"Lean v2 (CUAS): ONE motion-blur vector per scene shared by all tiles - constant-rpm flow is uniform up to the (small) roll component; wobble is second-degree. Same Jacobian-times-rates as the per-tile oracle, evaluated at the frame center. OFF = legacy per-tile getMotionBlur (A/B).");
gd.addNumericField("Pose lean fixed LMA cycles",this.pose_cycles,0,7,"",// By Claude on 07/12/2026
...
...
@@ -160,6 +167,8 @@ public class CuasRtParameters {
"Fraction of the MCLT window-autocorr envelope divided out of the correlation before peak extraction (argmax under-reports offsets by ~0.75-0.9x through the envelope). 0 = off (default, bit-identical); 1 = full divide. Enabling needs its own A/B run.");
gd.addNumericField("Pose lean inner-LMA debug level",this.pose_lma_debug,0,3,"",// By Claude on 07/12/2026
"0 = quiet (also hides the per-scene 'CuasPoseRT cycles:' trace; >=1 shows it); 2 = one line per INNER LMA step (good/done flags, full/pure RMS, lambda); 3-4 = deeper solver dumps. VERBOSE at >=2 - for short investigation runs.");
gd.addMessage("=== RT render diagnostics ===");// By Codex on 07/15/2026
gd.addCheckbox("CUAS RT render (full product)",this.rend_test,// By Claude on 07/05/2026
"Full RT-chain render: raw jp4 -> conditioning -> virtual-grid render at borrowed stored poses/ERS; saves -CUAS-RT-RENDER [s00..s15+merged][scenes], comparable to the -CUAS-*-DBG oracle products. NON-exclusive: runs AFTER the pose stage when both are ON.");
gd.addCheckbox("RT render LoG A/B (folded kernels)",this.log_test,// By Claude on 07/06/2026
...
...
@@ -167,6 +176,7 @@ public class CuasRtParameters {
gd.addCheckbox("RT render LoG isolation (identity krnl)",this.log_ident,// By Claude on 07/06/2026
"With the RT render ON: render with IDENTITY kernels (-ID, aberrations skipped), apply the pixel LoG (-ID-LOG-ORACLE), then render with PURE-LoG kernels (-LOG-ONLY). Isolates the LoG fold mechanism from the aberration-kernel content: persistent -LOG-ONLY vs -ID-LOG-ORACLE residual = the fold is wrong; collapse to the wrap floor = kernel interaction. Two extra render passes.");
gd.addMessage("=== CUDA/kernel and oracle diagnostics ===");// By Codex on 07/15/2026
gd.addChoice("GPU kernel test (one per run)",KERNEL_TESTS,validKernelTest(),// By Claude on 07/12/2026
"EXCLUSIVE diagnostic: run the selected CUDA kernel's CPU oracle on live GPU data and export a self-describing testdata case (<model>/testdata/<kernel>) for the standalone tile_processor_gpu test (NSight-debuggable, tests_bin/test_<kernel> --data <case> --tol 0). One kernel per Java run; also imports/compares the C++ results/ when present from a previous run. 'none' = normal operation.");
@@ -174,6 +184,8 @@ public class CuasRtParameters {
gd.addCheckbox("Save oracle DBG renders (11GB)",this.dbg_fpixels,// By Claude on 07/05/2026
"Save -CUAS-INDIVIDUAL-CUAS-DBG (an EXTRA per-sensor render pass, ~11GB) and -CUAS-MERGED-CUAS-DBG during ingest. Turn OFF to save render time and disk once -CUAS-RT-RENDER (RT render test) is the trusted full render.");
gd.addMessage("=== RT correlation and borrowed-center levels ===");// By Codex on 07/15/2026
gd.addNumericField("RT fat zero INTER (pose/motion)",this.fz_inter,1,9,"",// By Claude on 07/05/2026
"RT-decoupled fat zero for INTERscene (pose/motion) correlations - the legacy gpu_fatz*/AUX parameters are not used by RT. For a single physical-pair amplitude; FZ ~ amplitude^2.");
gd.addNumericField("RT fat zero INTRA (ranging)",this.fz_intra,1,9,"",// By Claude on 07/05/2026