TODO:
- Move things into rust and hook up wasm (wanted to see how far we could get with pure JS first--it works pretty well tbh lol)
A motion tracker webapp that uses the browser's webcam to capture video frames, processes them using modular FrameProcessors, and draws visualizations directly to a canvas.
tracking_demo.mov
- Real-time webcam video capture
- Modular frame processing architecture
- Motion detection and tracking
- Point tracking
- Region detection
- Rust + WebAssembly for high-performance processing
- Pure JavaScript UI and orchestration
Horace combines JavaScript for UI orchestration with Rust compiled to WebAssembly for computationally intensive frame processing. The modular FrameProcessor pattern allows different processing algorithms to be chained together, with each processor drawing its results directly to the canvas.
- Rust and
wasm-packfor WebAssembly compilation - Python 3 for local development server
- Modern web browser with webcam support
-
Build the Rust WebAssembly module:
cd rust-motion wasm-pack build --target web -
Start the development server:
cd public python3 -m http.server 8000 -
Open http://localhost:8000 in your browser
public/- Web application filesrust-motion/- Rust WebAssembly processing codedocs/- Project documentation