Files
Halloween/AGENTS.md
T

99 lines
5.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Halloween – Projektregeln
## Ziel und aktueller Auftrag
Interaktives atmendes Grab für Halloween im Vorgarten der Schwester bauen.
Gewünscht sind ein kräftiger Schreckeffekt, Kamera, Weboberfläche und lokal
gespeicherte Bilder/Videoclips. Der Nutzer hat nun eine erste Pi-Software mit
Liveansicht und simuliertem Effektablauf beauftragt; das allgemeine
Uploadskript und die Blender-Konzeptvorschau wurden ebenfalls freigegeben.
Hardwarebau und Anschluss echter Aktoren folgen nach Klärung der Mechanik,
Versorgung und Sicherheit im Plan.
## Arbeitsweise
- Auf Deutsch, klar und knapp kommunizieren.
- `PLAN.md` als Arbeitsplan pflegen; erledigte Punkte, offene Entscheidungen
und verifizierte Ergebnisse getrennt dokumentieren.
- Diese `AGENTS.md` nach dauerhaften Änderungen an Architektur, Betrieb,
Sicherheit oder Werkzeugen im selben Arbeitsgang aktualisieren.
- Vor Änderungen in `halloween/`, `tools/`, `tests/` oder `preview/` die dortige
`instructions.md` lesen und bei geänderten Verträgen oder Abläufen
aktualisieren. Neue Modulordner erhalten eine eigene `instructions.md`.
- Vor Änderungen vorhandene Dateien und tatsächliche Hardware prüfen.
- Vorschläge und Annahmen ausdrücklich kennzeichnen; keine Kameramodelle,
Motorleistungen, Anschlüsse, Netzwerkadressen oder Preise erfinden.
- Klein anfangen: einen vollständigen Effektablauf zuverlässig umsetzen,
anschließend zusätzliche Effekte ergänzen.
- Dokumentation übersichtlich halten; diese Datei unter 400 Zeilen halten.
- Im lokalen Git Code, Planung und bearbeitbare Blender-Szenen versionieren;
Renderdateien, Referenzclip, `.venv` und `data/` bleiben unversioniert.
## Hardware und Architektur
- Vorhanden laut Nutzer: Raspberry Pis 3–5; Pi 5 auf Nutzerfoto bestätigt,
RAM vermutlich 8 GB laut Nutzer, noch nicht am Gerät geprüft;
außerdem „2mini“ (genaue Geräte unbekannt), Camera Module 3 NoIR
(Beschriftung auf Nutzerfoto bestätigt), eventuell Display,
LEDs, Servos und Lötwerkzeug. Weitere Teile dürfen vorgeschlagen werden.
- Vorgeschlagene Aufteilung: Pi 5 für Kamera/WebUI/Ereignisse und Pi 3/4
für Effektsteuerung. Noch keine verbindliche Hardwareentscheidung.
- Für die NoIR-Kamera IR-Beleuchtung bei Dunkelheit und ein passendes
Standard-auf-Mini-Kamerakabel für Pi 5 einplanen; vorhandenes Kabel prüfen.
- GPIOs steuern geeignete Treiber; Motoren, Servos und größere LED-Lasten
erhalten eine passend dimensionierte Versorgung.
- Mechanik erst nach Klärung von Abmessungen, Gewicht, Hub und Bewegungsraum
auswählen. Atembewegung und kurzer Schreckimpuls getrennt bewerten.
## Betriebsregeln
- Bewegung bleibt im Grab und außerhalb des Besucherwegs; Quetschstellen
abdecken. Leichte bewegte Bauteile und mechanische Anschläge vorsehen.
- Elektronik für Außeneinsatz geschützt planen; Kleinspannung am Grab,
Zugentlastung und geeignete Stromversorgung vorsehen.
- Bei Start, Verbindungsverlust oder Fehler keine neue Schrecksequenz
auslösen; definierte sichere Zustände und lokalen Stopp vorsehen.
- Sperrzeit und belegten Auslösebereich berücksichtigen.
- Kinder-/Sanftmodus anbieten. Kamerabasierte Größenhinweise sind unsicher
und dürfen nicht als zuverlässige Altersbestimmung gelten.
- Nutzerwunsch: „voller Schreck“ ist der anfängliche Standard und wird nach
neuem gültigem Trigger automatisch ausgelöst, ohne Einzelfreigabe.
Modi sind in der WebUI umstellbar; eine gewählte Einstellung soll einen
normalen Neustart überdauern. Nach Start erst freien Auslösebereich
abwarten; nach Stopp oder Fehler bewusst zurücksetzen. Kamerahinweise
gelten nicht als verlässliche Altersentscheidung; automatische Reaktion
auf Hinweise zu kleinen Besuchern vor Implementierung abstimmen.
## Kamera, Aufnahmen und Zugriff
- Personen als Ereignisse erkennen, ohne Identitäten zu bestimmen.
- Keine Gesichtserkennung oder automatische Wiedererkennung konkreter
Personen über getrennte Videos hinweg implementieren.
- Clips mit Zeit, Vorschaubild und Ereignistyp zum manuellen Prüfen anbieten.
- Aufnahmebereich auf den vorgesehenen privaten Bereich begrenzen;
Maskierung, Aufbewahrung und Löschfrist vor Umsetzung festlegen.
- Tonwiedergabe und Tonaufnahme unterscheiden; Tonaufnahme standardmäßig aus.
- WebUI zunächst nur im lokalen Netz; keine öffentliche Freigabe ohne
ausdrücklichen Auftrag. Zugangsschutz einplanen.
## Erste Softwareversion
- `run.py` startet die FastAPI-WebUI nur auf `127.0.0.1`; Laptop-Zugriff
erfolgt per SSH-Tunnel. `--demo` kennzeichnet ein synthetisches Bild.
- Picamera2 liefert das MJPEG-Livebild; auf dem Entwicklungsrechner wurde
nur der Demo-Feed geprüft, nicht die echte Pi-Kamera.
- Moduswahl und simulierte Sequenz sind implementiert. GPIO, automatische
Personenauslösung und Clip-Speicherung sind noch offen.
- Laufzeitdaten unter `data/` nicht mit dem Uploadskript überschreiben.
- Optionaler systemd-Autostart der WebUI wird mit `--install-service` beim
Upload eingerichtet; auf einem echten Pi noch nicht geprüft.
## Prüfung
- Softwareprüfungen, Hardwaretests und Außentests getrennt berichten.
- Erst ohne angeschlossene Aktoren simulieren, dann einzelne Aktoren testen,
anschließend Gesamtablauf und Fehlerfälle prüfen.
- Kamera bei tatsächlicher Dunkelheit, Beleuchtung und Verkleidungen testen.
- Sicheren Zustand bei Netzwerkausfall, Neustart und Stopp verifizieren.
- Dokumentationsänderungen erfordern keine zusätzlichen Softwaretests.