Just want to try it? Use the live demo at tanisheesh.github.io/PosturePro — no setup needed. This guide is for running PosturePro locally or self-hosting it.
- A modern web browser (Chrome or Edge recommended — both ship with full WebAssembly support for MediaPipe)
- A webcam
- Internet connection for the web app (MediaPipe WASM files are loaded from jsDelivr CDN)
- Python 3.8+ and a webcam for the desktop app
The web app is a static site — no build step, no server required.
git clone https://github.com/tanisheesh/PosturePro
cd PostureProThe app must be served over HTTP (not opened as a file:// URL) because getUserMedia and WASM require a secure context. Use any static server:
# Option 1: Python built-in server
cd docs
python -m http.server 8000
# Option 2: Node live-server
npm install -g live-server
live-server docs/Navigate to http://localhost:8000, grant camera permission when prompted, and click Start Camera.
cd PosturePro/python-apppython -m venv venv
# Windows
venv\Scripts\activate
# macOS / Linux
source venv/bin/activatepip install -r ../requirements.txtThe requirements.txt at the repo root installs:
| Package | Purpose |
|---|---|
opencv-python-headless |
Webcam capture and frame annotation |
mediapipe |
Pose landmark detection |
numpy |
Numerical utilities |
python posturepro-gui.pyAn OpenCV window opens showing the live annotated webcam feed. Press q to quit.
Note: The script defaults to webcam index
1(cv2.VideoCapture(1)). If your webcam is at index0, edit line 32 ofposturepro-gui.pyand change1to0.
PosturePro requires no API keys or environment variables. There is no .env file.
- Webcam index (Python): The desktop app hardcodes camera index
1. If your system's primary webcam is at index0, edit theVideoCapturecall before running. file://protocol blocked: Browsers blockgetUserMediaonfile://URLs. Always serve the web app via a local HTTP server, not by double-clickingindex.html.- CDN dependency (web): MediaPipe WASM assets are fetched from jsDelivr at runtime. The web app will not load without an internet connection.
- Lighting: MediaPipe Pose detection accuracy degrades significantly in poor or uneven lighting. Use in a well-lit room with your upper body clearly visible.
The docs/ directory is already configured as a GitHub Pages source. To deploy your own fork:
- Fork the repository on GitHub.
- Go to Settings → Pages → Source and select the
docs/folder onmain. - Your instance will be live at
https://<your-username>.github.io/PosturePro/within a minute.
No build step or CI pipeline is required.
Tanish Poddar — tanisheesh.in · LinkedIn · GitHub