Skip to content

(feat): Add more algorithms and GUI with Claude - #1

Open
JuliDi wants to merge 12 commits into
mainfrom
julian/claude
Open

JuliDi wants to merge 12 commits into
mainfrom
julian/claude

Conversation

@JuliDi

@JuliDi JuliDi commented Oct 29, 2026

Copy link
Copy Markdown
Member

No description provided.

- sound2view.toml: audio, camera, pipeline, beamformer, display
- PipelineConfig replaces the pipeline constants
- Open the camera by name instead of index
- GUI sliders for nu, band and overlay range
- CLI uses the configured beamformer (default functional)
@JuliDi JuliDi self-assigned this Oct 29, 2026
- thiserror errors in core: capture, video, scene, pipeline
- Config validation returns errors instead of panicking
- Detect mic loss (stream error or 2 s without data), reconnect in GUI
- Mic and camera status in the top bar; hide overlay while mic is down
- rayon over grid points for DAS and functional
- CLEAN-SC beamformer with Gaussian clean beam, selectable in GUI and
  config
- fmt check on Linux
- clippy and release tests on ubuntu-latest and macos-latest
- Platform default audio device, match id or name
- Capture in the device's sample format (F32 on CoreAudio)
- Request camera access on macOS, report it in GUI and CLI
- Fall back to the closest camera format if MJPEG is missing
- README: macOS setup and permissions
- Own backend on objc2: device list, permission, format choice, BGRA
  capture
- Format and frame rate from the same entry (nokhwa's macOS bindings
  crash here)
- nokhwa only on Linux, shared video API in video.rs
- CLAUDE.md: macOS status and next steps
- Intrinsics: OpenCV 5-coefficient distortion (k1, k2, p1, p2, k3) in
  project, iterative undistortion in unproject; zero = plain pinhole
- Tests against OpenCV projectPoints, round trip into the image corners,
  scaled grid camera keeps the distortion
- Config: optional [camera.calibration] (fx, fy, cx, cy, dist) at
  camera.width x camera.height, validated; falls back to hfov_deg
- sound2view.toml: calibration of the icspring camera (1920x1080,
  RMS 0.28 px, HFOV 85 deg, principal point off center by (+27, +69) px)
- calib/capture.py: live preview with corner detection for the shot
  s
- peaks.rs: local maxima of the map (range, min distance, max count),
  sub-cell refinement; blue dots with dB labels in GUI and CLI PNGs,
  [peaks] config section
- CLEAN-SC: diagonal removal with Sijtsma's iterative source vector;
  stop threshold relative to the strongest bin, so bins without a
  source no longer add their noise or reflection maximum
- Functional: optional noise removal (median eigenvalue subtracted)
  and equal bin weighting (low bins no longer dominate), GUI toggles;
  rounding-level eigenvalues set to 0 (the 1/nu power lifted them to
  a floor)
- GUI: tooltips on all settings and beamformer methods
- sound2view.toml: [camera.calibration] instead of [camera.intrinsics],
  which the config did not accept
@JuliDi
JuliDi added this pull request to stack #3 November 1, 2026 14:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant