Studienprojekt (Master) zur browserbasierten Pose- und Gestenerkennung mit MediaPipe und einer eigenen Gesture Library.
Gesten-Präsentation: https://mi-classroom.github.io/mi-web-technologien-beiboot-ss2026-Manusta01/
Die Seite wird bei jedem Push auf main automatisch über GitHub Pages deployed (Workflow Deploy Demo App to Pages).
| Hochschule | TH Köln, Campus Gummersbach |
| Studiengang | Digital Sciences (Master) |
| Modul | Web-Technologien |
| Semester | Sommersemester 2026 |
| Betreuung | Prof. Christian Noss |
| Art | Studienleistung / Praxisprojekt (Issue-Serie #1–#5) |
| Autor | Manuel Stamm |
Forschungs- bzw. Entwicklungsfrage: Wie lässt sich eine erweiterbare, testbare Gesture Library auf Pose-Landmarks so bauen, dass sie über eine klare öffentliche API nutzbar ist und wo stößt frame-basierte Heuristik an Grenzen der Robustheit?
Das Repository beantwortet das schrittweise:
- Rohdaten sichtbar machen (Issue #1)
- Gestenvokabular und Prototyp (Issue #2)
- Library-Struktur und API (Issue #3)
- Fremde Consumer-App nur über die öffentliche API (Issue #4)
- Vertiefung Robustheit mit Vorher/Nachher-Messung (Issue #5, Weg B)
| Thema | Dokumentation | Code |
|---|---|---|
| ML-Wahl, Datenqualität | ADR 001, data-quality.md | src/pose-camera/ |
| Gestenmapping | gestures.md, ADR 003 | src/gesture-library/gestures/ |
| Library-Architektur | ADR 002, architecture.md | src/gesture-library/ |
| API-Lücke Enumeration | ADR 004 | getRegisteredGestures() |
| Consumer-Demo | presentation-demo README | apps/presentation-demo/ |
| Robustheit / Messung | ADR 005–007, baseline-measurement.md | Stabilisierung, Smoothing, Tests |
| App | Befehl | Zweck |
|---|---|---|
| Pose-Demo (Root) | npm run dev |
Rohdaten, Landmarks, Debug-Metriken (Issue #1–#3) |
| Gesten-Präsentation | npm run dev:presentation |
Folien per Geste — öffentliche API (Issue #4); empfohlene Demo für Issue #5 |
Siehe docs/architecture.md.
- Root-npm-Paket heißt
pose-demo(Vite-App); Workspace-Pakete nutzen den Scope@beiboot/* @beiboot/gesture-library— Gestenerkennung, öffentliche API@beiboot/pose-camera— Kamera, MediaPipe-Inferenz, Landmark-Renderingapps/presentation-demo/— eigenständige App über die öffentlichen Pakete
Pose-Demo-Port: Vite-Default 5173 (kein Root-vite.config). Präsentation: 5174.
- Node.js >= 23 (
enginesinpackage.json) - npm (Installationen über
package-lock.json/npm ci) - Webcam; Kamerazugriff nur unter HTTPS oder
localhost - Keine Umgebungsvariablen erforderlich
npm ci
npm run devPräsentation:
npm run dev:presentationTests, Lint, Builds:
npm test
npm run lint
npm run build
npm run build:presentationÖffne http://localhost:5173 (Pose-Demo) bzw. http://localhost:5174 (Präsentation).
- Architektur
- Gestenvokabular
- Datenqualität
- Gesture Library API
- Baseline Vorher/Nachher
- Datenschutz / Kamera
- Qualität: a11y, Performance, Security
- KI-Einsatz
- Drittanbieter-Lizenzen
- ADRs: 001 … 007
MIT — siehe LICENSE. Drittkomponenten: THIRD_PARTY_LICENSES.md.