5.7 KiB
title, slug, version, lang, tags, summary
| title | slug | version | lang | tags | summary |
|---|---|---|---|---|---|
| Crumbblocks Painter Missions - Jeder Kruemel zaehlt | painter_missions | 0.1 | de | [Crumbblocks, Painter, Bezier, Kids, Senioren, Atem-Pinsel, JSON, PNG, PWA, KruemelLog] | Drei Mini-Missionen fuer Kids und Senioren mit Crumbblocks (Painter, Lines, Bezier, Stream). ASCII-clean, JSON-Format fuer Replay, Atem-Pinsel-Vorgabe und KruemelLog-Schema. |
Crumbblocks Painter Missions - Jeder Kruemel zaehlt
Leitmotiv: Ein kleiner Mut, der gemeinsam waechst. Ziel: Malen und Erinnern zusammenbringen. Alles offline-faehig, ruhig, klar, ohne Angst.
0) Quickstart (30 Sekunden)
- Oeffne: painter.html, painter_lines.html, bezier.html oder bezier_stream.html.
- Nutze grosse Buttons im Senior-Modus (max 3 Tools).
- Speichere PNG und JSON (Replay).
- Logge den Moment in den KruemelLog.
1) Drei Mini-Missionen (Kinder x Senioren)
Mission A: Omis Weg zum See (Lines)
- Zeit: 10 min.
- Senior zeichnet aus der Erinnerung den Weg zum See als Linien.
- Kinder fahren den Weg mit dem Cursor nach (kleines Icon).
- Abschluss: PNG sichern + 1 Satz Zitat speichern.
Akzeptanz
- 1 fertige Linienkarte, 1 Zitat, 1 Eintrag im KruemelLog.
Mission B: Walzer-Kurve (Bezier)
- Zeit: 10 min.
- Gemeinsam eine geschwungene Bezier-Linie im 3/4-Gefuehl anlegen.
- FunkFox spielt einen leisen Groove (optional).
- Abschluss: PNG sichern + JSON Replay exportieren.
Akzeptanz
- 1 Bezier-Kurve, JSON vorhanden, 1 Eintrag im KruemelLog.
Mission C: Atem-Bild (Stream)
- Zeit: 2 min Atem + 3 min Abschluss.
- Atem-Pinsel: Strichbreite pulst nach 4-4-6-5 Atemmuster (siehe Preset unten).
- Senior atmet mit, Kind fuehrt den Stift.
- Abschluss: PNG + Zitat, JSON exportieren.
Akzeptanz
- PNG, JSON, Zitat gespeichert, 1 Eintrag im KruemelLog.
2) Senior- und Kid-Modus
- Senior-Modus: 3 Tools sichtbar (Pen, Radierer, Farbe), grosse UI, hoher Kontrast.
- Kid-Modus: zusaetzlich Bezier, Undo/Redo, Farbeimer, Dicke-Regler.
- Schalter: url-param
?mode=senioroder?mode=kid(optional), sonst Button in der UI.
3) Speichern und Teilen
- PNG sichern: Canvas nach PNG exportieren; Dateiname mit Zeitstempel
crumb_paint_YYYY-MM-DD_HH-MM-SS.png. - JSON Replay: Alle Striche als JSON speichern; Import ermoeglicht exaktes Nachzeichnen.
4) Stroke-JSON (Replay-Format)
Minimalformat fuer einen Stroke:
{
"tool": "pen",
"color": "#000000",
"size": 3,
"points": [
{"x": 120.5, "y": 80.0, "t": 1724438400000},
{"x": 121.3, "y": 81.2, "t": 1724438400050}
],
"meta": {
"mission_id": "mission-c-atem-bild",
"room_id": "ozm-insel-2"
}
}
Replay-Datei:
{
"strokes": [
{"tool":"pen","color":"#000","size":3,"points":[{"x":1,"y":1,"t":1},{"x":2,"y":2,"t":20}]}
],
"canvas": {"w": 1024, "h": 768, "dpr": 2}
}
5) KruemelLog-Schema (Momente statt Score)
{
"ts": "2025-08-23T16:30:00+02:00",
"emoji": ":sparkles:",
"msg": "Walzer-Kurve fertig, Omi nennt ihr Lied.",
"quelle": "Crumbblocks",
"ref_png": "crumb_paint_2025-08-23_16-29-50.png",
"ref_json": "crumb_paint_strokes_2025-08-23_16-29-50.json",
"mission_id": "mission-b-walzer-kurve",
"room_id": "ozm-insel-2"
}
6) Atem-Pinsel Preset (4-4-6-5)
Ziel: Strichbreite moduliert sich ueber Zeit in einem Atemzyklus. Muster: ein 4 Takte ein, 4 Takte halten, 6 Takte aus, 5 Takte Pause. Skala: size(t) = base + amp * f(phase).
Pseudo-Formel:
cycle = 4 + 4 + 6 + 5 = 19 Einheiten
phase = (time_ms % (19 * unit_ms)) / unit_ms # 0..19
if phase < 4: # Einatmen
w = base + amp * (phase/4)
elif phase < 8: # Halten
w = base + amp
elif phase < 14: # Ausatmen
w = base + amp * (1 - (phase-8)/6)
else: # Pause
w = base
Parameter:
unit_ms: 500 (Beispiel).base: 2..4 px.amp: 2..6 px.- Begrenzung:
w_min = 1,w_max = 20.
Hinweis: LED kann synchron sanft pulsen (keine Stroboskop-Effekte).
7) A11y und Kiosk
- Pointer Events fuer Touch und Stylus, HiDPI-Scaling mit DPR.
- Kontraste hoch, Fokus-Ringe an, Undo per Taste Z.
- Kiosk: Vollbild, grosse Buttons, klare Labels.
- Senior-Schutz: keine ueberfrachteten Menues.
8) Offline und PWA
- Manifest + Service Worker erlauben Offline-Nutzung.
- Speicherort: Download-Ordner oder Nextcloud-Pfad
/media/crumbblocks/. - Import: JSON kann spaeter geladen und als Replay gezeichnet werden.
9) FAQ (Kurz, Retrieval-Form)
Q: Was ist der Atem-Pinsel? A: Ein Pinsel, dessen Strichbreite einem Atemmuster folgt (4-4-6-5). Das beruhigt und macht Tempo sichtbar.
Q: Wie sichere ich meine Zeichnung? A: PNG-Button fuer Bilder, JSON-Button fuer Strichdaten (spaeter Replay moeglich).
Q: Was passiert bei Tablet-Lags? A: Reduziere live-Filter, senke DPR bei extrem alten Geraeten, nutze Senior-Modus (weniger Tools).
Q: Wie kommen Senior:innen und Kids zusammen? A: Waehl eine Mission (A, B, C). Senior gibt den Impuls (Weg, Walzer, Atem). Kids bauen das Echo (PNG, JSON, Zitat).
Q: Muss ich online sein? A: Nein. Alles funktioniert offline. Optional kann in eine lokale Nextcloud gespeichert werden.
10) Checkliste fuer OZM-Demo
- Tablet im Kiosk, Lautstaerke leise, Senior-Modus aktiv.
- PNG- und JSON-Buttons sichtbar.
- Atem-Pinsel getestet (Mission C).
- KruemelLog-Testeintrag erstellt.
- Ein Zitat vorbereitet (z. B. Sommer am See).
11) Vector-Hinweis
- ASCII only, keine typografischen Sonderzeichen.
- YAML-Front-Matter korrekt begrenzen (
---oben und unten). - Kurze Abschnitte, erkennbare Ueberschriften, FAQ-Block fuer bessere Treffer.