# ui/ OpenCV demo + inference pipelines used by **`main.py`** (FastAPI WebSocket `/ws/video`, latest-frame buffer; React UI + SQLite sessions). **Files:** `pipeline.py` (FaceMesh, MLP, XGBoost, Hybrid), `live_demo.py` (webcam + mesh + label). **Pipelines:** Geometric / MLP (`mlp_best.pt` + scaler) / XGBoost (`xgboost_face_orientation_best.json`) / hybrid + optional L2CS veto. **Run demo:** ```bash python ui/live_demo.py python ui/live_demo.py --xgb ``` `m` = cycle mesh, `p` = switch pipeline, `q` = quit. Same pipelines back the FastAPI WebSocket video in `main.py`.