Room of Horror
Room of Horror verwandelt eine klassische Prüfung zur Pflegesicherheit in eine immersive VR-Übung: Auszubildende durchsuchen ein bewusst fehlerhaft eingerichtetes Krankenzimmer nach Gefahren, bewertet durch eine gewichtete, kritikalitätsgesteuerte Auswertungslogik. Es ist ein fünfteiliges System — ein Unity-VR/Desktop-Client, ein Backend aus TypeScript, Express und PostgreSQL mit Echtzeit-WebSockets sowie ein React-Dashboard für die Lehrkraft — rund um den Gedanken, dass „kein Patient Standard ist“: Sechs unterschiedliche Patientenprofile verändern, was jeweils als Fehler zählt.
- Rolle
- Lead-Entwickler (7-köpfiges Studierendenteam)
- Jahr
- 2026
- Status
- Abgeschlossen
- Kategorie
- Softwareentwicklung
- Werkzeuge & Technologien
- UnityC#XR Interaction ToolkitTypeScriptNode.jsExpressPostgreSQLSocket.IOReact
- Links
- GitHubDocumentation

Das Problem
Pflege-Auszubildende lernen das Erkennen von Sicherheitsrisiken traditionell über schriftliche Prüfungen oder riskante Praxis am echten Patienten. Es fehlt ein sicherer, wiederholbarer und messbarer Weg, die Fähigkeit „die Gefahr auf einen Blick erkennen“ zu trainieren — besonders bei Patienten unterschiedlichen Alters, Körperbaus, unterschiedlicher Sprache und Herkunft.
Kontext
Ein Softwaretechnik-Projektmodul an der HWR Berlin, Sommersemester 2026, entwickelt mit dem Bundeswehrkrankenhaus Berlin als Anwendungspartner und aufbauend auf einer früheren Version 1.0. Ich verantwortete rund drei Viertel der Commits in einem siebenköpfigen Team.
Prozess
Diversität als vollwertige Daten
Die prägende Entscheidung war, Patientenvielfalt als Daten und nicht als Kosmetik zu behandeln. Sechs Patientenprofile tragen jeweils eigene Stammdaten, einen eigenen Avatar und patientenspezifische Fehlerszenarien — so lehrt dasselbe physische Zimmer je nach Person im Bett andere Lektionen.
Eine Patientenakte in der VR — ein mehrseitiges Klemmbrett — enthält Dokumentationsfehler und Entscheidungsdialoge, etwa das Hinzuziehen eines Dolmetschers oder das Auflösen eines Allergiekonflikts, sodass die Gefahren nicht nur physische Requisiten sind.
- Sechs Patientenprofile, jeweils mit eigenen Fehlerszenarien
- 32 katalogisierte Fehler, nach Schweregrad bewertet (1–5)
- Barrierefreiheit: Simulationsmodi für Farbfehlsichtigkeit und Teleport-Fortbewegung
Eine Live-Schleife für die Lehrkraft
Ein Spielcode verbindet eine Browser-Sitzung mit einer Headset-Sitzung. Über eine Web-Konsole wählt die Lehrkraft einen Patienten, legt Fehler fest und setzt ein Fehlerbudget; eine WebSocket-Schicht überträgt gefundene Fehler und Fehltritte in Echtzeit zurück. Nach der Runde fasst ein Dashboard das Ergebnis zusammen, schlüsselt es nach Kategorie auf und erzeugt eine Rückmeldung für die Trainer.
Zentrale Entscheidungen
Gewichtete, kritikalitätsgesteuerte Bewertung
Statt einer bloßen Punktesumme bewertet eine eigene Auswertungspipeline jeden Fehler nach Schweregrad und wendet ein hartes „Kritisch“-Tor an — wird ein kritischer Befund übersehen, fällt eine ansonsten bestandene Runde durch. Bewertung und Rückmeldungserzeugung sind getrennte Stufen.
Eine Interaktionsschicht, zwei Eingabemodi
Dasselbe Spiel läuft in VR und in einem einfachen Desktop-Modus (Maus + Tastatur), wobei die Fehler-Interaktionslogik von der Eingabeart entkoppelt ist. Das machte das Projekt ohne Headset testbar und vorführbar.
Umsetzung
Architektur
Ein Monorepo trennt den Unity-Client, die Node/Express/TypeScript-API, das React-Dashboard, die 3D-Modellquellen und eine Jekyll-Doku-Site. Das Backend ist domänenpartitioniert (Datenbank, Endpunkte, Auswertung, Schemas, WebSocket, E-Mail), die Konfiguration wird beim Start per Zod validiert und Geheimnisse werden in Umgebungsdateien gehalten.
Datenfluss: Lehrkraft (React) ↔ REST + Socket.IO ↔ Express/PostgreSQL ↔ Unity-Client, wobei ein Raumkonfigurator auf der Unity-Seite das physische Zimmer je nach gewähltem Patienten und Fehlern neu aufbaut.
Galerie


Ergebnisse
- Alle acht Ziele der unterzeichneten Zielvereinbarung erreicht (MUSS 2/2, SOLL 2/2, KANN 4/4).
- 6 Patientenprofile und 32 nach Schweregrad und Kritikalität gewichtete Fehler ausgeliefert, mit Live-Überwachung durch die Lehrkraft und generierter Rückmeldung nach jeder Runde.
- Übergabe in Richtung eines realen Praxistests mit Pflege-Auszubildenden am Partnerkrankenhaus.
Gelernte Lektionen
- Eine einzige Interaktionsschicht für VR und Maus-und-Tastatur zu entwerfen, hielt das Projekt ohne Headset testbar und vorführbar.
- Diversität als vollwertige Daten zu modellieren — statt als kosmetische Avatare — ist das, was dasselbe Zimmer unterschiedliche Lektionen lehren ließ.
Verwandte Arbeiten

AOG Moldova
Eine produktive Landingpage für die 24/7-Notfalllogistik von Luftfahrtteilen in Moldau — mit dreisprachiger Oberfläche und einem serverlosen Anfrageformular, das dringende Anfragen direkt an das Einsatzteam leitet.
Rent Tracker
Eine Full-Stack-Flask-App, die kleinen Vermietern hilft, Wohnungen, Mieter und die monatliche Miete zu verfolgen, und sie über automatische Telegram- und E-Mail-Erinnerungen an unbezahlte Monate erinnert.