Step-by-step guide for running a progressive edge computing demo. Deploy pipelines via cloud.expanso.io and watch the magic happen.
# Clone the repo
git clone https://github.com/aronchick/webcam-demo.git
cd webcam-demo
# Start the demo
./demo.sh
# Open the displayed URL in a browser
That's it! The demo script handles everything automatically.
Complete these steps 5-10 minutes before your demo:
cd webcam-demo
./demo.sh
# Quick test - run each command and verify dashboard updates:
curl -X POST http://localhost:8181/api/stage/1
curl -X POST http://localhost:8181/api/stage/2
curl -X POST http://localhost:8181/api/stage/3
curl -X POST http://localhost:8181/api/stage/4
curl -X POST http://localhost:8181/api/stage/0 # Reset
Follow these steps during your live demo. Each step includes what to say and what the audience will see.
Empty video area with message: "Deploy a pipeline to begin"
Video feed appears immediately. Category counters all show 0. Header shows "Stage: 1".
When you raise your LEFT hand: Giant GREEN arrow flashes across the video + screen pulses green + counter increments
When you raise your RIGHT hand: Giant BLUE arrow flashes + screen pulses blue
When you raise BOTH hands: Giant PURPLE icon flashes + screen pulses purple
Demo tip: Stand back from the camera and raise hands dramatically. The indicators are designed to be visible from 20+ feet away!
Stadium-style scoreboard appears: LEFT: 5 VS RIGHT: 3
Scores update in real-time as gestures are detected.
Demo tip: Challenge an audience member to a "gesture battle" - who can score more points?
When BOTH hands are raised: Confetti explosion animation fills the screen!
Demo tip: Build up to this moment. "Let's all raise both hands together... 3... 2... 1..." then confetti!
| Stage | Pipeline | What It Does | Visual Effect |
|---|---|---|---|
| 0 | None | Waiting state | Empty state message |
| 1 | Capture | Webcam โ 3s video chunks | Video feed appears |
| 2 | Detection | MediaPipe pose detection | Giant icons + color flash + glow border |
| 3 | Counting | Gesture statistics | Stadium scoreboard |
| 4 | Alerts | Event triggers | Confetti on both-hands |
For development and testing, use the debug script:
# Interactive debug menu
./debug.sh
# Run specific components
./debug.sh dashboard # Start dashboard only
./debug.sh full # Run full pipeline locally
./debug.sh stage 2 # Manually set stage to 2
Note: Local debugging is for development only. For demos, always use ./demo.sh and deploy via cloud.expanso.io.
# Check if port is already in use
ss -tlnp | grep 8181
# Kill any existing processes
pkill -f dashboard.py
# Restart
./demo.sh
# List available cameras
uv run -s capture_video.py --list-devices
# Use a specific camera
export VIDEO_DEVICE=/dev/video1
./demo.sh
# Stop demo and clear all data
# Press Ctrl+C, or:
pkill -f demo.sh
pkill -f dashboard.py
rm -rf chunks/ processed/ pipeline.db