| Crates.io | footstep-tracker |
| lib.rs | footstep-tracker |
| version | 0.2.0 |
| created_at | 2025-12-07 19:53:38.19926+00 |
| updated_at | 2025-12-07 22:22:25.077659+00 |
| description | Real-time multi-person footstep detection on macOS using CoreML |
| homepage | |
| repository | https://github.com/manorajesh/footsteps |
| max_upload_size | |
| id | 1972134 |
| size | 1,683,880 |
Real-time multi-person footstep detection on macOS using CoreML (YOLOv11 for person boxes + RTMPose for 17-keypoint pose) with OpenCV and Rust.
models/yolo11n.mlpackage)models/rtmpose.mlpackage)curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | shbrew install opencvbrew install llvmmodels/rtmpose.mlpackage (256x192 RTMPose-SimCC, 17 keypoints)models/yolo11n.mlpackage (person detector).mlpackage/.mlmodelc files with matching inputs; place them in models/ and point the CLI at the path.Release (recommended for FPS):
cargo build --release
Dev build:
cargo build
Debug logs (timings, model info):
cargo build --release --features debug
Webcam with defaults (RTMPose + YOLO, camera 0):
cargo run --release
Specify model and source (camera index or video path):
# camera 1
cargo run --release -- models/rtmpose.mlpackage 1
# mp4 file (auto-loops)
cargo run --release -- models/rtmpose.mlpackage /path/to/video.mp4
UDP output for footsteps (sends "<x> <y>" normalized to 0-1):
FOOTSTEP_UDP_ADDR=192.168.1.42:5005 cargo run --release -- models/rtmpose.mlpackage
Controls: press q to quit.
x and y are in [0,1].<x> <y> on a single line (e.g., 0.4123 0.7831).src/
main.rs - CLI/entrypoint, capture loop, UDP hook
person_detector.rs - YOLOv11 CoreML person detector + ID tracker
pose_detector.rs - RTMPose SimCC CoreML inference
footstep_tracker.rs- Ankle-motion based footstep detection & history
visualization.rs - Drawing boxes, footsteps, and (optional) keypoints
coreml-rs/ - Local CoreML bindings (Swift + Rust bridge)
models/ - CoreML model packages (YOLO + RTMPose provided)
brew reinstall opencv and ensure Homebrew is on your PATH (eval "$($(brew --prefix)/bin/brew shellenv)").cargo run --release -- models/rtmpose.mlpackage 1)..mlpackage/.mlmodelc path exists and you are on macOS with CoreML available.--release, close other GPU/NE heavy apps, and keep the preview window small.Model licenses follow their respective sources (YOLOv11 and RTMPose). Code is under the repository license.