Open-source GPU-accelerated panoramic sports camera software.
Focus: v0.5.0 public release (GUI + AI tracking for community testers).
PR #288 on feat/v0.5.0-release. Tracking issue #289.
Phases 1-9 shipped. GUI architecture revision in progress.
Remaining: ROI visualization, recording perf fix, packaging
(Phase 11), first-run experience (Phase 12), manual testing (Phase 13).
Full plan at ~/.claude/plans/i-need-advanced-telemetry-breezy-eagle.md.
Active FRICTION: 16 in crates/reco-obs/FRICTION.md, 11 active
in crates/reco-gui/FRICTION.md (N16-N18 added 2026-04-28).
User's rule: document friction,
don't work around; reco-core API gaps get a FRICTION entry, not a
consumer-side hack.
crates/reco-core/— GPU stitching engine (library crate, no I/O deps)crates/reco-cli/— CLI binary (reco stitch,reco info,reco calibrate,reco preview)crates/reco-io/— Pluggable I/O backends (FFmpeg decode/encode, GStreamer, libcamera)crates/reco-detect/— AI detection backends (ORT CPU/GPU, TensorRT, NCNN, CoreML/Metal)crates/reco-autocam/— AI camera control (directors, trajectory smoothing, ROI filtering)crates/reco-calibrate/— Stereo camera calibration (AKAZE features, optimization)crates/reco-gui/— Slint GUI consumer (wgpu 28 zero-copy preview)crates/reco-obs/— OBS Studio source plugin (async-frame ingestion + BGRA + interactive pan/zoom)
cargo build # Build all crates
cargo test --all # Run all tests
cargo clippy --all-targets -- -D warnings # Lint
cargo fmt --all -- --check # Format check
cargo fmt --all # Auto-format
cargo doc --no-deps --open # Generate and open docs
cargo run -p reco-cli -- info # Show GPU info
cargo run -p reco-cli -- stitch left.mp4 right.mp4 -c match.json -o out.mp4
cargo run -p reco-cli -- preview left.mp4 right.mp4 -c match.json
cargo run --release -p reco-cli --features profiling -- stitch left.mp4 right.mp4 -c match.json -o out.mp4 --max-frames 300 # Profile 300 frames → reco-trace.json (open in ui.perfetto.dev)rustfmtformatting (config inrustfmt.toml)clippylinting with-D warnings(zero warnings policy)- Doc comments (
///) on all public items - Module-level docs (
//!) explaining purpose - Tests in each module (
#[cfg(test)] mod tests) - All PRs must pass:
cargo fmt --check && cargo clippy && cargo test - Clippy must also pass with
--features profiling profilingfeature: opt-intracing+tracing-chromeinstrumentation (zero-cost when off)
- Public open-source project (AGPL-3.0) with a growing community and forum
- Users include football clubs, amateur sports teams — prioritize UX clarity
- Open alternative to proprietary sports camera solutions
- v2 targets: desktop (Win/macOS/Linux), NVIDIA Jetson, cloud, mobile
- Production-grade: handle errors, validate inputs at API boundaries
- Cross-platform (Windows/macOS/Linux) — avoid platform-specific assumptions
- Performance matters: this processes video frames in real time
- Modular: reco-core must be usable as a standalone Rust crate
- Explicit over implicit: no hidden defaults, no magic