# Asset-Schatzkiste — Herkunft & Lizenz

Zentrale, wiederverwendbare Assets für die 3D-/Audio-Projekte des Portfolios.
Ausgeliefert über Vite aus `public/` → im Build unter `/assets/…` erreichbar.
Getrackt landet der Ordner **nur in `dist-komplett`** (dist ist gitignored,
dist-karte nutzt `public-karte`).

**Grundregel: Assets sind CC0 (Public Domain).** Keine Attribution verpflichtend —
die Herkunft ist hier trotzdem dokumentiert (Reproduzierbarkeit + guter Stil).
**Einzige Ausnahme:** der Ordner `ir/` (Impulsantworten) enthält CC-BY-SA-Dateien
mit Attributions-PFLICHT — Details in dessen Abschnitt am Ende dieser Datei.

Kuratiert am 2026-07-16 als „Industrial-Kit" für die Sektor-7-Aufwertung
(Referenz: Half-Life 2 / F.E.A.R.), bewusst wiederverwendbar gehalten.

---

## HDRIs — Umgebungslicht & Reflexionen (Image-Based Lighting)

Quelle: **Poly Haven** (https://polyhaven.com) · Lizenz **CC0** · Format `.hdr`, 1k

| Datei | Poly-Haven-ID | Zweck |
|---|---|---|
| `hdri/empty_warehouse_01_1k.hdr` | empty_warehouse_01 | Basis-IBL, neutral-kühl |
| `hdri/machine_shop_01_1k.hdr` | machine_shop_01 | wärmer, grungy |
| `hdri/industrial_workshop_foundry_1k.hdr` | industrial_workshop_foundry | Zonen-Abwechslung |
| `hdri/studio_small_09_1k.hdr` | studio_small_09 | Fotostudio, harte Softbox-Streifen (KALIBER-Werk) |

**Zum KALIBER-Einsatz (08-06):** Die beiden Studio-HDRIs werden dort NICHT als
`scene.environment` gesetzt, sondern als *Raumhülle* in die prozeduralen
Umgebungen von `src/kaliber/werk3d/material.js` eingehängt (BackSide-Kugel mit
gedämpfter Farbe, davor die bestehenden Softbox-Flächen), und daraus wird die
PMREM-Map gebacken. Grund: Eine roh gesetzte Foto-HDRI hat Softbox-Zentren
jenseits von 10 — auf `metalness: 1` fressen die Glanzlichter aus (Look-Probe
07-17, im Code an `werkStudio()` dokumentiert). Über die Raumhülle liefert die
HDRI ihre Struktur und Farbtiefe, die Spitzen bleiben gedeckelt.
`brown_photostudio_02` wurde am Werk-Makro dagegen getestet und verworfen
(hellt stärker auf, nimmt der Nacht-Galerie aber den Kontrast) — die Datei
liegt bewusst NICHT im Repo, damit kein ungenutztes Megabyte mitfährt.

## PBR-Texturen — Materialien (1k, je Set: diffuse/normal/arm/disp)

Quelle: **Poly Haven** · Lizenz **CC0** · JPG · `arm` = AO(R)/Roughness(G)/Metalness(B)

| Ordner | Poly-Haven-ID | Zweck |
|---|---|---|
| `texturen/concrete_floor_02/` | concrete_floor_02 | Boden |
| `texturen/concrete_wall_008/` | concrete_wall_008 | Wände |
| `texturen/metal_plate/` | metal_plate | Struktur, Racks, Panels |
| `texturen/corrugated_iron_02/` | corrugated_iron_02 | Wellblech-Akzent |
| `texturen/rusty_metal_02/` | rusty_metal_02 | Rost/Alterung |
| `texturen/rusty_metal_grid/` | rusty_metal_grid | Laufsteg-Gitter |

### Metall-Finish (ambientCG · CC0)

Quelle: **ambientCG** (https://ambientcg.com) · Lizenz **CC0** · JPG, 1k · NormalGL (OpenGL-Konvention).

| Ordner | ambientCG-ID | Zweck |
|---|---|---|
| `texturen/stahl_gebuerstet/` (normal + roughness) | Metal032 „Brushed" | Gebürstetes Finish auf KALIBER-Uhrgehäuse + Gliederband (echtes anisotropes Bürst-Relief statt Canvas-Rauheit); von ENIGMA für die Messing-Flächen mitgenutzt (warm getönt) |

### DER TURM — Putz & Nadelfilz (ambientCG · CC0)

Quelle: **ambientCG** (https://ambientcg.com) · Lizenz **CC0** · JPG · NormalGL (OpenGL-Konvention).
Beschafft 2026-09-01 für die dritte Jury-Runde des TURMS (Mittel-Stufe 2).

**Warum:** Beide Kritiker der zweiten Jury meldeten „Wand, Decke, Boden, Türblatt
und Kabinenblech tragen dieselbe Körnung" und hielten das für Bake-Rauschen.
Es war zur Hälfte etwas anderes: Alle diese Werkstoffe liefen über EINEN
Textursatz (`wohn_putz`) plus dieselbe gemalte Alterungskarte. Jede Familie hat
jetzt ihre eigene Feinstruktur.

| Ordner | ambientCG-ID | Zweck |
|---|---|---|
| `texturen/turm_putz/` (normal + arm) | PaintedPlaster017 | Gestrichener Putz mit Rollenaufbruch — Wände, Treppenhaus; dieselbe Karte mit stark gedämpftem Relief (0,10 statt 0,45) ist die Orangenhaut der lackierten Türblätter |
| `texturen/turm_teppich/` (normal + arm + diffuse) | Carpet012 | Nadelfilz der Büroräume — als einziger Satz MIT Farbkarte: ein Teppich hat Farbrauschen zwischen den Fasern, ohne das liest er als lackierte Platte |

Keine Diffuse-Karte beim Putz: Die Stil-Referenz (Superliminal/Stanley) lebt von
grossen, fast texturlosen Farbflächen — dort trägt das Relief, nicht das Muster.
Der Teppich ist die begründete Ausnahme.

Grössen: Putz 1k (412 KB), Teppich 512 (428 KB) — die Normalkarte eines
Nadelfilz ist reines Hochfrequenz-Rauschen und bei 1k viermal so teuer, ohne
dass man es auf 1,1 m Kachelmass sieht.

### ENIGMA — Holz & Bakelit (ambientCG · CC0)

Quelle: **ambientCG** (https://ambientcg.com) · Lizenz **CC0** · JPG, 1k · NormalGL.
Beschafft 2026-07-17 für das Material-Upgrade der ENIGMA-Doku (Mittel-Stufe 2).

| Ordner | ambientCG-ID | Zweck |
|---|---|---|
| `texturen/enigma_holz/` (diffuse + normal + roughness) | Wood062 | Dunkel gebeiztes Nussbaum für die Transportkiste (Deckel + Wanne) |
| `texturen/enigma_bakelit/` (normal + roughness) | Plastic010 | Ungleichmäßiger Glanz (Roughness-Wolke) für die Bakelit-Flächen: Tastenkappen, Deck, Steckbrett — Farbe kommt aus dem Material |

## Sounds — CC0

Quelle: **Kenney** (https://kenney.nl) · Lizenz **CC0** · Format `.ogg`

| Ordner | Kenney-Pack | Inhalt |
|---|---|---|
| `sounds/sci-fi-sounds/` | Sci-Fi Sounds | 73 Sounds (Waffen, Sci-Fi-Layer) |
| `sounds/impact-sounds/` | Impact Sounds | 130 Sounds (Treffer/Einschläge) |
| `sounds/interface-sounds/` | Interface Sounds | 100 Sounds (HUD/UI) |

Je Ordner liegt die originale `License.txt` von Kenney (CC0-Beleg) bei.

**Genutzt von SEKTOR 7** (`src/sektor/audio.js`, seit 2026-08-07): 31 der Dateien
als Sample-Schicht über dem Synth — Waffen (`laserLarge`/`laserSmall`/
`forceField`/`laserRetro`), Explosionen (`explosionCrunch`,
`lowFrequency_explosion`), Einschläge und Magazin-Klacks (`impactMetal_*`),
Schritte (`footstep_concrete_*`), Schleusen (`doorOpen`/`doorClose`) und
HUD-Töne (`confirmation`/`click`/`bong`). Zusammen **476 KB** Ladelast, im
Hintergrund vorgewärmt; bis sie da sind, trägt der Oszillator-Klang weiter.
Die Abspiel-Pegel sind **gerechnet, nicht geschätzt**: `tools/sektor-klang-mass.mjs`
misst die mittlere Lautheit jeder Datei (streut um 19 dB, obwohl alle auf
~-1 dB Peak normalisiert sind) und leitet daraus den Gain gegen ein Rollen-Ziel
ab; `tools/sektor-klang.mjs` misst headless nach, was am Ausgang ankommt.

---

## Planeten-Texturen — Himmelskörper (Sonnensystem-Demo)

Quelle: **Solar System Scope** (https://www.solarsystemscope.com/textures) ·
Lizenz **CC BY 4.0** (https://creativecommons.org/licenses/by/4.0/) ·
equirektangular (2:1), JPG/PNG, 2k (Erde-Tag zusätzlich 8k).

> **Attributionspflicht (CC BY 4.0):** Nennung „Planeten- & Sternkarten:
> Solar System Scope (CC BY 4.0)" liegt im Info-/Hilfe-Overlay der Demo.
> Reproduzierbar über `node tools/planeten-texturen.mjs`.

Basierend auf echten Missionsdaten (NASA/USGS/Cassini/Voyager/New Horizons/Dawn),
künstlerisch zu nahtlosen Karten aufbereitet.

| Ordner/Datei | SSS-Kennung | Körper/Zweck |
|---|---|---|
| `texturen/planeten/merkur/albedo.jpg` | 2k_mercury | Merkur |
| `texturen/planeten/venus/albedo.jpg` | 2k_venus_surface | Venus-Oberfläche |
| `texturen/planeten/venus/wolken.jpg` | 2k_venus_atmosphere | Venus-Wolkendecke |
| `texturen/planeten/erde/tag.jpg` | 2k_earth_daymap | Erde Tag (Basis) |
| `texturen/planeten/erde/tag_8k.jpg` | 8k_earth_daymap | Erde Tag (Hero-Option) |
| `texturen/planeten/erde/nacht.jpg` | 2k_earth_nightmap | Erde Nacht (Black Marble) |
| `texturen/planeten/erde/wolken.jpg` | 2k_earth_clouds | Erde Wolkendecke (Basis) |
| `texturen/planeten/erde/wolken_8k.jpg` | 8k_earth_clouds | Erde Wolkendecke (Hero — ASCENT-Flugphase) |
| `texturen/planeten/mars/albedo.jpg` | 2k_mars | Mars |
| `texturen/planeten/ceres/albedo.jpg` | 2k_ceres_fictional | Ceres |
| `texturen/planeten/mond/albedo.jpg` | 2k_moon | Erdmond |
| `texturen/planeten/jupiter/albedo.jpg` | 2k_jupiter | Jupiter |
| `texturen/planeten/saturn/albedo.jpg` | 2k_saturn | Saturn |
| `texturen/planeten/saturn/ring.png` | 2k_saturn_ring_alpha | Saturn-Ring (Alpha) |
| `texturen/planeten/uranus/albedo.jpg` | 2k_uranus | Uranus |
| `texturen/planeten/neptun/albedo.jpg` | 2k_neptune | Neptun |
| `texturen/sterne/milchstrasse_2k.jpg` | 2k_stars_milky_way | Sternhimmel der ASCENT-Flugphase (das Sonnensystem nutzt seit 23.09.2026 die NASA-Karte unten; die 8k-Fassung ist deshalb entfallen) |

### Milchstraße am Himmel des Sonnensystems — NASA SVS Deep Star Maps 2020 (gemeinfrei)

Quelle: **NASA/Goddard Space Flight Center Scientific Visualization Studio**,
„Deep Star Maps 2020" (SVS 4851, https://svs.gsfc.nasa.gov/4851), Ebene
`milkyway_2020_8k.exr` — die Milchstraße aus **Gaia DR2** ohne die hellen
Einzelsterne (die zeichnet die App als Punkte). Werk der NASA → gemeinfrei
(US Public Domain); geforderter Credit: **„NASA/Goddard Space Flight Center
Scientific Visualization Studio. Gaia DR2: ESA/Gaia/DPAC."** — steht im
Einführungsfenster der Demo. Plate carrée, ICRF/J2000, RA 0h in der Bildmitte.

| Datei | Zweck |
|---|---|
| `texturen/sterne/milchstrasse_nasa_4k.jpg` | Himmelskugel Desktop (0,32 MB) |
| `texturen/sterne/milchstrasse_nasa_2k.jpg` | Himmelskugel mobil (0,12 MB) |

Reproduzierbar: EXR per Blender lesen (`tools/blender/milchstrasse-exr-lesen.py`),
dann lichtnahe Streckung, adaptive winkeltreue Glättung und Verkleinerung
(`tools/sonnensystem/milchstrasse-karte.py`). Eigene Bearbeitung darin: Kugel-
sternhaufen-Kerne gedämpft (47 Tuc, ω Cen … standen so hell wie die Sternwolke
im Schützen), Farbe nach galaktischer Lage (außerhalb des Bulges neutral), und
prozedural in wahrer Lage, Größe und Flächenhelligkeit eingemalt: M31, M33,
M42, M8, η-Carinae-Nebel, NGC 7000, M13 — Positionen gemeinfrei (NASA/IPAC NED,
SEDS Messier-Katalog).
Der Shader in `src/sonnensystem/skybox.js` rechnet Rektaszension/Deklination
aus der Blickrichtung über denselben Himmelsrahmen wie die Sternkarte
(`src/sonnensystem/himmelsrahmen.js`).

### Sterne am Himmel des Sonnensystems — HYG-Datenbank 4.2 (CC BY-SA 4.0)

Quelle: **HYG Database v4.2**, David Nash (astronexus.com,
https://github.com/astronexus/HYG-Database) — Lizenz **CC BY-SA 4.0**
(https://creativecommons.org/licenses/by-sa/4.0/); Positionen und Helligkeiten
aus **Hipparcos (ESA)**, Yale Bright Star Catalog und Gliese. Nennung
„Sterne: HYG-Datenbank 4.2 (David Nash, CC BY-SA 4.0) nach Hipparcos (ESA)"
im Einführungsfenster der Demo. Der Hipparcos-Anteil steht bei der ESA unter
**CC BY-NC 3.0 IGO** („Credit: ESA") — nur nicht-kommerziell; das Portfolio
ist nicht-kommerziell. Vor jeder kommerziellen Nutzung neu prüfen.

| Datei | Zweck |
|---|---|
| `sonnensystem/himmel/sternfeld.bin` | 15.203 Sterne bis mag 7,0 ohne die benannten (89 kB, 6 Byte/Stern) — **abgeleitetes Werk, ebenfalls CC BY-SA 4.0** |

Reproduzierbar: `node tools/sonnensystem/sternfeld-hyg.mjs` (Format im Kopf des
Werkzeugs). Am 23.09.2026 wurden damit auch 25 falsche Rektaszensionen im
Namenskatalog `src/himmel/sternkatalog.js` gefunden und aus HYG korrigiert.

### Zusätzliche Missionsdaten via Wikimedia Commons (NASA/USGS · Public Domain)

Teilkarten (nur eine Hemisphäre belichtet) — der Shader füllt die schwarzen,
unbelichteten Bereiche prozedural (`fuellLuecken`), damit keine schwarze
Polkappe entsteht.

| Ordner/Datei | Commons-Datei | Körper/Quelle | Lizenz |
|---|---|---|---|
| `texturen/planeten/pluto/albedo.jpg` | Pluto color mapmosaic.jpg | Pluto (NASA New Horizons — Tombaugh Regio) | PD |
| `texturen/planeten/europa/albedo.jpg` | Europa Voyager GalileoSSI global mosaic.jpg | Europa (NASA/USGS Voyager/Galileo) | PD |

### Monde mit echter Missionskarte (O1, 2026-08-03)

Alle equirektangular (2:1) — geprüft über die Commons-API **und** am
angesehenen Bild. Beim Raten findet man Scheiben-Aufnahmen und Kartenblätter
mit Rand; beides lässt sich nicht auf eine Kugel wickeln.

| Ordner/Datei | Commons-Datei | Körper/Quelle | Lizenz |
|---|---|---|---|
| `texturen/planeten/io/albedo.jpg` | Io modest scale map Io SSI-only color SIMP0 med.cub.jpg | Io (USGS, Voyager + Galileo SSI, **Farbe**) | PD |
| `texturen/planeten/ganymed/albedo.jpg` | Map of Ganymede by Björn Jónsson.jpg | Ganymed (Voyager/Galileo, aufbereitet von Björn Jónsson) | **CC BY** |
| `texturen/planeten/kallisto/albedo.jpg` | Callisto map by Askaniy.png | Kallisto (aufbereitet von Askaniy Anpilogov, Basis USGS/NASA) | **CC BY-SA 3.0** |
| `texturen/planeten/phobos/albedo.jpg` | Phobos Viking Mosaic DLRcontrol 7200.jpg | Phobos (NASA Viking, DLR-Kontrollnetz) | PD |
| `texturen/planeten/deimos/albedo.jpg` | Deimos map by Askaniy.png | Deimos (aufbereitet von Askaniy Anpilogov) | **CC BY-SA 3.0** |

> **Attributionspflicht (CC BY / CC BY-SA):** Ganymed-Karte © Björn Jónsson,
> Kallisto- und Deimos-Karte © Askaniy Anpilogov (CC BY-SA 3.0), jeweils auf
> Basis von NASA-/USGS-Missionsdaten. Nennung im Info-/Hilfe-Overlay der Demo.
> Die Karten werden unverändert (nur skaliert) als Textur verwendet.

Phobos und Deimos liegen nur als **Graustufen**-Mosaik vor; der Shader legt
die Körperfarbe über die Helligkeit (`einfaerben`), damit sie neben dem
rostroten Mars nicht wie Fremdkörper wirken. Io ist zwischen den Polen
unbelichtet → `fuellLuecken` wie bei Pluto/Europa.

**Prozeduraler Fallback (bewusst keine Map):** Vesta, Eris, Halley-Kern und
**Titan** sowie alle Fremdsystem-Körper (TRAPPIST-1, Alpha Centauri, Sirius,
Cygnus X-1). Bei Titan ist das keine Lücke, sondern richtig: Durch seinen
Dunst ist im sichtbaren Licht keine Oberfläche zu sehen — Cassini kartierte
sie mit Radar und Infrarot. Ein Radarkartenball wäre astronomisch falsch,
der orange Dunstball ist es nicht. Erd-Glanz/Ozean-Maske: bei SSS nicht als
2k-Direktdownload (404) → prozeduraler Ozean-Glint bleibt.

**Oberflächenrelief:** Es werden **keine** Normal-Maps geladen. Der Shader
leitet die Höhe aus der Helligkeit der Albedo-Karte ab und kippt damit die
Normale (`relief`, 0 MB). Angewendet nur dort, wo Helligkeit tatsächlich
Topografie ist — auf Mars z. B. nur zu 22 %, weil die Albedo dort vor allem
Staubverteilung zeigt.

---

## Bahndaten — Satelliten (ORBIT-Demo)

Quelle: **CelesTrak** (https://celestrak.org) · öffentlich, keine Attributions-
pflicht (Daten stammen aus dem US-Space-Force-Katalog, gemeinfrei).

| Datei | Inhalt |
|---|---|
| `public/orbit/tle-snapshot.json` | ~16.000 aktive Objekte (TLE) + ~2.600 Debris (Fengyun-1C/Kosmos-2251/Iridium-33), Gruppen-Zuordnung Starlink/GNSS (GPS·Galileo·GLONASS·BeiDou)/GEO/Stationen, Stand-Datum im Payload |

**Live-Pfad (seit 2026-07-21):** Der Browser holt die TLEs beim Seitenaufruf
DIREKT bei CelesTrak (CORS offen; localStorage-Cache 6 h aus Höflichkeit —
CelesTrak drosselt Wiederhol-Abfragen derselben Gruppe unter ~2 h per 403).
Der eingecheckte Snapshot ist der Fallback (offline/API-Ausfall); das
Frische-Badge sagt ehrlich „live" oder „Snapshot". Reproduzierbar über
`node tools/orbit-tle.mjs`. ORBIT nutzt zusätzlich die Erd-Texturen aus dem
Planeten-Set oben (Solar System Scope, CC BY 4.0 — Attribution im ORBIT-HUD).

### Flugverkehr — airplanes.live (live) + OpenSky Network (Fallback-Snapshot)

Live-Quelle: **airplanes.live** (https://airplanes.live) · offene Community-
ADS-B-Daten, Attribution im ORBIT-HUD-Badge. Der Cloudflare-Worker `kz-orbit`
(cloudflare/orbit-worker/) kachelt per Cron alle 10 min die ~37 dichtesten
Lufträume ab (250-nm-Punktabfragen, 1 Abruf/s) und legt den Sweep in KV —
alle Besucher teilen sich EINEN Datenstand. (CelesTrak und OpenSky blocken
das Cloudflare-Workers-Netz; OpenSky erlaubt zudem kein fremdes CORS — beide
sind darum als Live-Quelle im Browser bzw. Worker technisch raus.)

Fallback-Quelle: **OpenSky Network** (https://opensky-network.org) · offene
Forschungsdaten.

| Datei | Inhalt |
|---|---|
| `public/orbit/flugzeuge-snapshot.json` | globale Momentaufnahme ~9.200 Flugzeuge in der Luft (lon/lat/Höhe/Tempo/Kurs/Callsign/Land), Snapshot-Zeit im Payload |

Snapshot reproduzieren: `node tools/orbit-flugzeuge.mjs` — **nur auf Ansage**
laufen lassen (anonymes API-Kontingent: 400 Credits/Tag, ein Abruf = 4).

---

## Nachladen / Reproduzieren

Poly-Haven-Dateien lassen sich per öffentlicher API reproduzieren:
`https://api.polyhaven.com/files/<ID>` liefert die Download-URLs je Auflösung.
Kenney-Packs: Download-Button auf der jeweiligen Asset-Seite.

Höhere Auflösung (2k) nur gezielt für einzelne Hero-Flächen nachladen —
für Browser-Rendering bei DPR 2 sind 1k gekachelt ausreichend.

---

## Audio (Instrument-Samples & Impulsantworten)

Echte Samples statt Oszillatoren (Kern-Ausbau Zauberstudio/Synth-Pad). Alle
Dateien liegen in `public/assets/audio/…`, lazy dekodiert (nur das gewählte
Instrument). Transcodiert nach **OGG/Opus mono ~64 kbps** (ffmpeg libopus),
Klavier auf 5 s getrimmt + 0,4 s Ausblende.

### Klavier — `audio/piano/*.ogg`
- **Quelle:** Versilian Studios Chamber Orchestra 2 · Community Edition (VSCO-2-CE),
  „Keys/Upright Piano", aufgenommen von Simon Dalzell (Ivy Audio).
- **Lizenz:** **CC0 1.0 Universal** (Public Domain) — keine Namensnennung nötig.
  Repo: https://github.com/sgossner/VSCO-2-CE (LICENSE = CC0).
- **Umfang:** Multisample alle 4 Halbtöne, mittlere Anschlagstärke (dyn2, rr1),
  Dateiname = MIDI-Notennummer (33/37/…/97). playbackRate füllt die Zwischentöne
  (max ±2 Halbtöne → keine Formant-Verzerrung).
- **Nutzung:** Zauberstudio — Melodie-Instrument der Welt „Nachtwald" — und
  Klaviatur+ (`klaviatur.html`, Klang-Auswahl „🎹 Klavier", Default). Synth-
  Oszillator bleibt Fallback, bis das Sample dekodiert ist.
  (Bis zum Kinderprodukt-Umbau hing es am Preset-Panel des Synth-Racks; mit dem
  Rack wäre es in dieser Demo tot gewesen, obwohl längst bezahlt.)

### Marimba — `audio/marimba/*.ogg`
- **Quelle:** Versilian Studios Chamber Orchestra 2 · Community Edition (VSCO-2-CE),
  `Percussion/Marimba` („Marimba_hit_Outrigger_<Note>_loud_01.wav").
- **Lizenz:** **CC0 1.0 Universal** (Public Domain) — keine Namensnennung nötig.
  Repo: https://github.com/sgossner/VSCO-2-CE (LICENSE = CC0).
- **Umfang:** 8 Noten über 3,4 Oktaven (MIDI 43/47/53/60/67/71/77/84), Dateiname =
  MIDI-Notennummer. playbackRate füllt die Zwischentöne (max ±3,5 Halbtöne — bei
  einem kurzen perkussiven Anschlag unkritisch, anders als beim Klavier).
  Auf 2,4 s getrimmt + 0,25 s Ausblende. **136 KB gesamt** (roh 8,2 MB).
- **Nutzung:** Zauberstudio — Melodie-Instrument der Welt „Sonnentag", also die
  Hauptspielfläche und damit der allererste Ton der Demo. Genau dort entscheidet
  sich, ob es nach Spielzeug oder nach Instrument klingt: der Oszillator daneben
  hat einen sauberen, aber toten Anschlag (kein Holz, keine Nebengeräusche, kein
  formanttreues Ausschwingen). Er bleibt Fallback, bis die Buffer dekodiert sind.

### Drums — `audio/drums/*.ogg`
- **Quelle:** drum_sklad (psemiletov), Kit „Sixties Rock" = „Ludwig Sixties",
  basierend auf Scott McLeans frei veröffentlichtem Ludwig-Oyster-Blue-Pearl-Kit
  (Cockos-/Reaper-Forum). Repo-LICENSE: **Public Domain / Unlicense**
  („free and unencumbered … released into the public domain").
  Repo: https://github.com/psemiletov/drum_sklad
- **Umfang:** kick/snare/hat/openhat/tom/crash (akustisches Kit, ein Sample je
  Instrument), OGG/Opus mono 96k, kurz getrimmt. Clap hat KEIN Akustik-Sample →
  bleibt synthetisch (nur im Disco-Style genutzt).
- **Nutzung:** Zauberstudio-Band + Finger-Drums (band.js) und automatisch die
  Vorhören-Demos (geteilter spieleTaktPlan). Synth bleibt Fallback beim Laden.

### Musik — Portfolio-Trailer (`audio/midnight-drive.ogg`)
- **Quelle:** OpenGameArt, „Midnight Drive" von **congusbongus**
  (https://opengameart.org/content/midnight-drive), erstellt mit MilkyTracker;
  Original-Download `midnight_drive.ogg` (3,4 MB), beschafft 2026-07-21.
- **Lizenz:** **CC0 1.0** (Public Domain) — keine Namensnennung nötig.
- **Nutzung:** Portfolio-Trailer (`video/`, Remotion). Seit 09.09.2026 neu geschnitten und mit der eigenen Küstenmusik aus Aufwind überblendet; aktuelle Musikregie in `video/tools/tonmischung.mjs`. Die frühere Beat-Montage bleibt in der historischen Animatik erhalten.

### Hall-IR — prozedural (kein Download)
- Der Faltungshall („hall"-Effekt) nutzt eine **verbesserte synthetische
  Impulsantwort** (frühe Reflexionen + frequenzabhängiger Abfall + Stereo-
  Dekorrelation, `synth-presets.js` `hallImpuls`) statt einer Feldaufnahme.
- Grund: saubere CC0-Raum-IRs sind kaum mit direkter URL zu beschaffen (fast
  alle sind CC-BY, Attribution). Der `ladeIR`-Weg (`audio-lader.js`) ist
  vorhanden — eine echte OpenAIR/EchoThief-IR ließe sich als
  `audio/ir/hall.ogg` einhängen (dann mit Attribution hier).

---

## Text-Korpus — „Die Blackbox" (Sprachmodell-Training)

Quelle: **Project Gutenberg** (https://www.gutenberg.org) · gemeinfrei (Public Domain)

| Datei | Herkunft | Zweck |
|---|---|---|
| `src/blackbox/daten/korpus-grimm.js` | PG-eBook **#77905** „Deutsche Märchen gesammelt durch die Brüder Grimm" (Brüder Grimm, 1921) | Trainings-Korpus für das Mini-Sprachmodell (nano/midi) — kuratiert von `tools/blackbox-korpus-bauen.mjs` (~250 KB) |
| `src/blackbox/daten/generiert/w2v-karte.js` | dito | word2vec-Embeddings (K3), erzeugt von `tools/blackbox-w2v.mjs` |

Der Roh-Volltext liegt lokal unter `tools/blackbox-rohkorpus/` (gitignored, ~0,5 MB);
zum Neu-Erzeugen von `https://www.gutenberg.org/cache/epub/77905/pg77905.txt` laden.
Die eingecheckten Ableitungen (Korpus-Bundle, w2v-Karte, Checkpoints in
`public/blackbox/`) machen den Build unabhängig vom Roh-Download.


---

## Wohn-Materialien — Architektur-Studio (2026-07-24)

Quelle: **Poly Haven** (https://polyhaven.com) · Lizenz **CC0** · 1k, JPG
`arm` = AO(R)/Roughness(G)/Metalness(B). Geladen für den „Mockup→Planer"-
Umbau des Raumplaners (Mittel-Stufe 3), rund 19 MB.

| Ordner | Poly-Haven-ID | Zweck |
|---|---|---|
| `texturen/wohn_parkett/` | wood_floor | Dielenboden (Standard Wohnräume) |
| `texturen/wohn_eiche/` | laminate_floor_02 | Eiche hell |
| `texturen/wohn_fischgraet/` | herringbone_parquet | Fischgrätparkett |
| `texturen/wohn_nussbaum/` | dark_wood | Nussbaum dunkel |
| `texturen/wohn_fliese/` | floor_tiles_06 | Fliesen (auch getönt als Feinsteinzeug) |
| `texturen/wohn_marmor/` | marble_01 | Marmor |
| `texturen/wohn_beton/` | concrete_floor_02 | Betonboden |
| `texturen/wohn_textil/` | fabric_pattern_07 | Teppich/Textil (Farbmap heißt `col_1`, nicht `diff`) |
| `texturen/wohn_textil/gewebe.jpg` | abgeleitet aus fabric_pattern_07 | Gewebe-Luminanz für Polster und Vorhänge: Hochpass gegen die Fotobeleuchtung, dann auf neutralen Mittelwert 224 gelegt. Die Original-Diffuse ist rotbraun und würde jede Palettenfarbe überfärben; nur eine graue Map lässt sich mit `color` multiplizieren. Erzeugt mit `tools/gewebe-map.py` |
| `texturen/wohn_putz/` | beige_wall_001 | Wandputz — NUR Normal + ARM benutzt, damit die Wandfarbe tintbar bleibt |
| `texturen/wohn_rasen/` | leafy_grass | Rasen — NUR Normal + ARM; die Farbe bleibt prozedural, weil im CC0-Bestand keine grüne Wiese existiert (alle Gras-Sätze sind trocken oder Luftbild) |
| `hdri/kloofendal_48d_partly_cloudy_puresky_1k.hdr` | kloofendal_48d_partly_cloudy_puresky | Himmels-IBL für die 3D-Ansicht |
| `hdri/syferfontein_18d_clear_puresky_1k.hdr` | syferfontein_18d_clear_puresky | klarer Himmel (Reserve) |

Download-Schema: `https://dl.polyhaven.org/file/ph-assets/Textures/jpg/1k/<id>/<id>_diff_1k.jpg`
(bzw. `_nor_gl_1k.jpg`, `_arm_1k.jpg`); HDRIs unter `.../HDRIs/hdr/1k/<id>_1k.hdr`.
Die tatsächlichen Dateinamen je Asset liefert `https://api.polyhaven.com/files/<id>`.


## Schriften — STADTWERK Immobilien (2026-07-25)

Lokal gehostet unter `public/fonts/immo/`, jeweils `latin` und `latin-ext`
(Griechisch, Kyrillisch und Vietnamesisch sind für eine deutsche Maklerseite
Ballast). Zusammen 323 KB in 14 woff2-Dateien, eingebunden über
`immo-fonts.css`.

| Familie | Schnitte | Lizenz | Quelle |
|---|---|---|---|
| Instrument Serif | 400 | SIL Open Font License 1.1 | Google Fonts (fonts.gstatic.com) |
| Archivo | 400/500/600/700 | SIL Open Font License 1.1 | Google Fonts (fonts.gstatic.com) |
| IBM Plex Mono | 400/500 | SIL Open Font License 1.1 | Google Fonts (fonts.gstatic.com) |

Warum lokal statt CDN: Beim Aufruf der Seite soll keine Verbindung zu einem
Dritten entstehen. Die Datenschutzerklärung der Seite sagt genau das zu — vorher
behauptete sie das Gegenteil dessen, was der Code tat.

## Schrift

- **Bangers** (`schrift/bangers-latin.woff2`, 17 KB) — Comic-Display-Schrift von
  Vernon Adams / Google Fonts. Lizenz: **SIL Open Font License 1.1** (freie
  Nutzung, Einbettung und Weitergabe erlaubt).
  Quelle: https://fonts.google.com/specimen/Bangers
  Selbst gehostet statt per Google-Fonts-Link eingebunden, damit
  `heldenstadt.html` auch ohne Internet vollständig funktioniert — ohne die
  Schrift lief der Titel aus seinem Sternballon heraus.

- **Fredoka** (`schrift/fredoka-latin-var.woff2`, 29 KB, variabel 300–700, Latin
  inkl. Umlaute) — runde Kinderschrift von Milena Brandão / Google Fonts.
  Lizenz: **SIL Open Font License 1.1**. Geladen am 01.10.2026 über die
  Google-Fonts-Schnittstelle (fonts.gstatic.com, v17), unverändert.
  Quelle: https://fonts.google.com/specimen/Fredoka
  Selbst gehostet für Baumhaus, Teichschlacht und Zauberwald (Spieleecke B13):
  keine Anfrage an Google beim Öffnen der Familienseite violacarlo.de, und
  die Spiele laufen auch offline mit ihrer Schrift.

- **Twemoji 14.0.2** (`memo-motive/*.svg`, 32 Dateien, zusammen ~136 KB) —
  Emoji-Bildsatz von Twitter/X, Grafiken unter **CC-BY 4.0** (Namensnennung:
  Copyright 2020 Twitter, Inc and other contributors).
  Quelle: https://github.com/twitter/twemoji (CDN: jsdelivr, Tag 14.0.2)
  Als Memory-Motive gebündelt (`src/memo/motive.js`), mit `width/height`
  gepatcht, damit `drawImage` das SVG in jeder Zielgröße scharf rastert.
  Selbst gehostet, damit jedes Gerät dieselben Bilder zeigt — genau der
  Grund, aus dem Font-Emoji einst aus dem Memory geflogen sind.

## Grotte (KABINETT, Schicht III)

Drei PBR-Sets von **ambientCG**, sämtlich **CC0 1.0** (Public Domain, keine
Namensnennung nötig, kommerziell frei). Quelle: https://ambientcg.com
Heruntergeladen als `1K-JPG`-Pakete, im Repo reduziert auf das im Projekt
übliche Format `diffuse.jpg` / `normal.jpg` (OpenGL-Konvention) / `arm.jpg`
(**R = Ambient Occlusion, G = Roughness, B = Metalness**) plus `hoehe.jpg`
für das Displacement im Blender-Bau. Zusammen 2,2 MB statt 16 MB Download.

- **`grotte_sinter/`** — ambientCG *Travertine 002*. Travertin ist der Stein,
  aus dem die echten Rocaille-Grotten des 18. Jahrhunderts gebaut wurden:
  porös, gebändert, hell. Er trägt die Wandflächen der Grotte.
- **`grotte_tuff/`** — ambientCG *Rock 030*. Grober, dunkler Bruchstein für
  Gewölbe, Tropfsteine und die Partien, an denen der Fels roh bleibt.
- **`grotte_gold/`** — ambientCG *Metal 032*. Die Vergoldung des Schnitzwerks.
  Metalle bringen bei ambientCG keine AO-Karte mit; der R-Kanal von `arm.jpg`
  ist deshalb weiss (= keine Verschattung), nicht schwarz. Ein schwarzer
  R-Kanal hätte das Gold vollständig ausgelöscht.

Warum diese Stufe: Der erste Bau der Grotte war rein prozedural (Stufe 1) und
sah entsprechend aus — Quader, Zylinder und eine gemalte Canvas-Textur. Der
Mittel-Check gehört ins Plan-Gate und war dort übersprungen worden; die
Werkzeuge für Stufe 3 (Blender, gltfpack, ImageMagick) liegen seit dem
28.08.2026 installiert und verifiziert vor.

---

## `ir/` — Raum-Impulsantworten für WebAudio-Convolver (⚠️ NICHT alles CC0)

Echte gemessene Raumakustik für `ConvolverNode`-Hall. Quelle: **OpenAIR /
OpenAirLib** (AudioLab, University of York — openairlib.net, Original-Site
seit ~2026 offline „Account Suspended"), bezogen über die Spiegel-Library
**reverbjs.org** (`http://reverbjs.org/Library/<Name>.m4a`, geladen 31.08.2026).
Format AAC/M4A mono — `decodeAudioData` dekodiert das in allen Zielbrowsern.

**Lizenz JE DATEI (von reverbjs.org/Attributions übernommen):**

| Datei | Raum | Lizenz | Pflicht |
|---|---|---|---|
| `R1NuclearReactorHall.m4a` | R1 Nuclear Reactor Hall (KTH Stockholm) | **CC BY-SA** | Attribution „OpenAirLib" |
| `TerrysFactoryWarehouse.m4a` | Terry's Factory Warehouse, York | **CC BY-SA** | Attribution „OpenAirLib" |
| `UndergroundCarPark.m4a` | Tiefgarage | **CC BY-SA** | Attribution „OpenAirLib" |
| `PurnodesRailroadTunnel.m4a` | Eisenbahntunnel Purnode | **CC0/PD** | keine |
| `HamiltonMausoleum.m4a` | Hamilton Mausoleum (Stein-Gewölbe, sehr langer Hall) | **CC BY-SA** | Attribution „OpenAirLib" |
| `DomesticLivingRoom.m4a` | Wohnzimmer/Salon (trockener Raum) | **CC0/PD** | keine |

**Regeln:** (1) Wer eine dieser IRs in einer Demo nutzt, nennt „Raumakustik:
OpenAirLib (CC BY-SA)" im Impressum/Abspann der Demo. (2) Konvertierte/gekürzte
Fassungen bleiben CC BY-SA (Share-Alike) und werden hier nachgetragen.
(3) Von reverbjs.org NICHT übernehmen: AbernyteGrainSilo, ArbroathAbbeySacristy,
ElvedenHall*, ErrolBrickworksKiln, InsidePiano, KinoullAisle, MidiverbMark2*,
PerthCityHallBalcony — alle **Non-Commercial**-belastet, fürs Portfolio tabu.
Weitere unbedenkliche Kandidaten dort: YorkMinster, HamiltonMausoleum,
StAndrewsChurch, StairwayUniversityOfYork (CC BY-SA), SpokaneWomansClub (CC BY),
Basement/DomesticLivingRoom/EmptyApartmentBedroom/SaintLawrenceChurch (PD).

## Animations-Bibliothek — SEKTOR 7 Gegner (2026-08-31)

Quelle: **Quaternius · Universal Animation Library [Standard]** · Lizenz **CC0 1.0**
(https://quaternius.itch.io/universal-animation-library · kostenlose Standard-
Variante, 15 MB ZIP; die Pro- und Source-Pakete sind kostenpflichtig und wurden
nicht bezogen). 43 Clips auf einem universellen humanoiden Rig im
UE-Mannequin-Namensschema, glTF und FBX, mit und ohne Root-Motion.

| Verwendet | Woraus |
|---|---|
| `Unreal-Godot/UAL1_Standard.glb` (7,6 MB) | Retarget-Quelle für den Androiden — **ohne** Root-Motion, weil die Laufzeit die Figur selbst bewegt |

**Nicht im Repo.** Die Bibliothek ist ein Werkzeug-Eingang, kein ausgeliefertes
Asset: was ins Spiel geht, sind die auf unser Rig retargeteten Clips im
gepressten `assets/sektor/android.glb`. Neubezug für eine Wiederholung des
Retargets: obige itch.io-Seite → „No thanks, just take me to the downloads" →
`Universal Animation Library[Standard].zip` nach `tmp/quaternius/` entpacken,
dann `tools/blender/retarget.py`.

**Merkposten zur Quelle** (gemessen, spart beim nächsten Mal eine Stunde):
Die Figur schaut nach **−y**, unsere nach +y → `--drehung 180`; bei 0 Grad
landet die linke Hand rechts. Ihr `root`-Knochen liegt **waagerecht**, unsere
Wurzel steht senkrecht — er darf deshalb nicht in den Ruhelagen-Abgleich
(sonst kippt die ganze Figur um 90 Grad). Beinlängen-Verhältnis 1,05, also
praktisch maßgleich. Die Waffenclips halten eine **zweihändige Pistole**; unser
Androide trägt eine Unterarm-Kanone, weshalb der Oberkörper aus dem eigenen
Bausatz kommt (`--nur unterkoerper --oberkoerper gehen`).

### Zugeschnittene Raumantworten für DAS KABINETT (`kabinett/hall/`, 2026-09-01)

Ableitungen der OpenAIR-Impulsantworten aus `assets/ir/` — dieselbe Lizenz,
dieselbe Attributionspflicht. Erzeugt mit `node tools/kabinett-hall.mjs`,
gemessen mit `node tools/sektor-hall.mjs --dateien` (Schroeder-Rückwärts-
integration).

| Datei | Quelle | Länge | KB | Lizenz | Wofür |
|---|---|---|---|---|---|
| `kabinettsraum.ogg` | DomesticLivingRoom | 0,89 s (ungekürzt) | 12 | **CC0/PD** | Das Musikwerk — der Apparat steht in einem Zimmer |
| `grotte.ogg` | HamiltonMausoleum | 2,4 s (aus 15) | 24 | **CC BY-SA** | Die Grotte — Steingewölbe |

**Die Nennung steht IM BILD:** `HALL_ATTRIBUTION` in `src/kabinett/klang.js`
schreibt „Raumakustik: OpenAirLib (CC BY-SA)" dauerhaft in die Fusszeile von
`kabinett.html`; der Gang-Prüfstand prüft, dass sie dort steht. Wer die
Zeile entfernt, darf `grotte.ogg` nicht ausliefern.

Warum 2,4 s und nicht 15: Das Original hat RT60 13 s — eine Kathedrale. Eine
Felsenhöhle von rund zehn Metern liegt bei gut zwei Sekunden. Dazu rechnet
ein Convolver jede Abtastung der Antwort gegen jede Eingabe; fünfzehn
Sekunden sind bei 48 kHz 720 000 Werte je Kanal.

### Zugeschnittene Raumantworten für SEKTOR 7 (`sektor/hall/`, 2026-08-31)

Ableitungen der OpenAIR-Impulsantworten aus `assets/ir/` — dieselbe Lizenz,
dieselbe Attributionspflicht. Erzeugt mit `node tools/sektor-hall.mjs --kuerzen`.

| Datei | RT60 im Original | zugeschnitten auf | Räume |
|---|---|---|---|
| `TerrysFactoryWarehouse.ogg` | 8,72 s (T30: 18,45 s) | 3,2 s | Kaverne, Umschlag-Tiefhof |
| `R1NuclearReactorHall.ogg` | 4,36 s | 4,0 s | Reaktorkammer |
| `UndergroundCarPark.ogg` | 1,90 s | 1,9 s | Wachhof, Pumpengalerie, Kühltrakt |
| `PurnodesRailroadTunnel.ogg` | 1,71 s | 1,5 s | Schleuse (PD, keine Attribution nötig) |

**Warum zugeschnitten:** Die Fabrikhalle bringt im Original fast neun Sekunden
Nachhall mit — eine Kathedrale, keine 45-Meter-Kaverne; jeder Schuss würde
darin zu Matsch. Dazu kostet ein 23-Sekunden-Convolver 1,1 Millionen
Abtastwerte je Kanal und Bild. Der Zuschnitt blendet über das letzte Drittel
weich aus und drückt die Summe von 549 auf **112 KB**.

**Die Nennung steht im Pause-Schirm des Spiels** (`src/sektor/hud.js`,
`data-quellen`). Wird sie entfernt, muss `src/sektor/raumhall.js` mit
abgeschaltet werden — sonst nutzt das Spiel Material, dessen Bedingung es
nicht erfüllt.

### Funkstimmen — SEKTOR 7 (`sektor/funk/`, 2026-08-31)

Synthetisiert mit **Piper TTS 1.7**, Stimme **`de_DE-thorsten-medium`**
(Datensatz „Thorsten-Voice" von Thorsten Müller, **CC0**), danach durch die
Funkstrecke gelegt: Bandpass 320–3200 Hz, Übersteuerung, Kompression,
Normalisierung auf −1,5 dBFS. Nach der Bearbeitung ist die TTS-Herkunft
praktisch nicht mehr herauszuhören — bei Funk zählt nicht Natürlichkeit,
sondern dass es aus einem Gerät kommt.

| Datei | Länge | Text |
|---|---|---|
| `eintritt.ogg` | 2,71 s | „Sektor sieben kompromittiert. Halten Sie stand." |
| `warnung.ogg` | 3,35 s | „Kerntemperatur steigt. Abschirmung hält noch. Beeilung." |
| `finale.ogg` | 3,05 s | „Der Wächter ist wach. Er lässt niemanden an den Kern." |

Summe 52 KB. Reproduzierbar über `node tools/tts-funk.mjs`; die Texte stehen in
`src/sektor/funksprueche.js` und werden von dort auch vom Spiel gelesen — es
gibt keinen hartkodierten Zwilling. Das Stimmenmodell selbst (63 MB) liegt
ungetrackt in `tools/tts-stimmen/`.

**Abweichung vom eingemessenen Funk-Rezept:** dort steht `gain -12`; damit
meldete sox an dieser Stimme „compand clipped 67 samples". Ein Normalisieren
VOR der Übersteuerung (`gain -n -6`) macht die Kette unabhängig davon, wie laut
die jeweilige Zeile ausfällt.

### Raumantworten — DER TURM (`turm/hall/`, 2026-09-01)

Ableitungen derselben OpenAIR-Impulsantworten aus `assets/ir/` — dieselbe
Lizenz, dieselbe Pflicht. Erzeugt von `tools/turm-hall.mjs`, gemessen mit
`tools/sektor-hall.mjs`.

| Datei | Original | hörbare Länge | Raumart im Haus |
|---|---|---|---|
| `vorraum.ogg` | UndergroundCarPark (**CC BY-SA**) | 1,1 s | Aufzugsvorraum, Flure — Beton, hart, kurz |
| `treppe.ogg` | PurnodesRailroadTunnel (PD) | 1,53 s | Treppenhaus — die kalte, vertikale Röhre |
| `buero.ogg` | DomesticLivingRoom (PD) | 0,89 s | Bürotrakt — möbliert, fast trocken |
| `technik.ogg` | TerrysFactoryWarehouse (**CC BY-SA**) | 1,4 s | Technikraum — Beton und Blech |
| `weite.ogg` | R1NuclearReactorHall (**CC BY-SA**) | 2,6 s | A5, die breite Etage — die absichtlich zu grosse Antwort |

Zur `weite.ogg`: Sie bildet **nicht** ab, was ein 34-Meter-Flur akustisch ist.
Gerechnet (Sabine, Rasterdecke α 0,55) hat der lange Flur 0,66 s Nachhall und
der normale 0,64 — Volumen und schluckende Fläche wachsen miteinander. Was
den langen Gang hörbar macht, ist das Echo vom fernen Ende (201 ms statt 50),
und das steht als Verzögerung in `src/turm/klang.js`. Diese Reaktorhalle ist
die zweite Hälfte und die bewusst falsche: die Etage klingt grösser, als sie
sein kann. Sie liegt deshalb bei einem Anteil von 0,18 statt der 0,30 aller
anderen Räume.

⚠ `treppe.ogg` stand bis 07.09.2026 mit einem Zuschnitt von **1,8 s** in
`turm-hall.mjs` — die Quelle ist aber nur 1,58 s lang. `-t` schnitt damit
nichts, die Ausblende lief jedoch von 1,20 bis 1,80, und die Datei endete bei
37 % Pegel: eine Impulsantwort mit einer Kante, die der Convolver in jeden
Klang des Treppenhauses faltete. Der Zuschnitt wird jetzt an der gemessenen
Quelldauer gekappt.

Summe **85 KB**. Die Kabine bekommt bewusst KEINE Datei: 1,10 × 1,40 × 2,30 m
ergeben unter 0,2 s Nachhall, und darunter hört man von einer Messung nur noch
ihre Hüllkurve. Sie wird in `src/turm/klang.js` gerechnet (`blechkasten()`),
mit diskreten frühen Reflexionen im 4-ms-Raster — das ist die Kantenlänge des
Kastens und der Grund, warum eine Kabine metallisch klingt.

**Die Nennung** steht als `HALL_ATTRIBUTION` in `src/turm/klang.js` und
erscheint im Hinweisfeld der Seite. Wird sie entfernt, muss der Convolver mit
abgeschaltet werden — sonst nutzt der Turm Material, dessen Bedingung er nicht
erfüllt.

### E-Drums — RHYTHMUS-LAB (`audio/edrums/`, 2026-09-01)

- **Quelle:** drum_sklad (psemiletov), Kits **„Drumulator"** (E-mu Drumulator,
  1983 — 8-Bit-Sampler; Depeche Mode, Ultravox, Jarre) und **„Fricke MFB512"**
  (Manfred Fricke, 1980, analog). Repo: https://github.com/psemiletov/drum_sklad
- **Lizenz:** **Public Domain** — „This is free and unencumbered samples
  released into the public domain." (LICENSE im Repo, geprüft 01.09.2026).
  Keine Namensnennung nötig.
- **Warum ein zweites Kit:** In `audio/drums/` liegt das akustische Ludwig
  „Sixties Rock". Für das Zauberstudio ist es richtig, für Synthwave ist es
  das falsche Genre — dort klingt das Schlagzeug nach Maschine.

| Datei | Quelle | Länge | KB | Rolle |
|---|---|---|---|---|
| `kick.ogg` | Drumulator `bass.wav` | 0,097 s | 1,9 | Anker; der Sub kommt aus dem Synthesizer darunter |
| `snare.ogg` | Drumulator `snare.wav` | 0,158 s | 2,4 | Zwei und Vier, geht in den Gate-Raum |
| `clap.ogg` | Fricke MFB512 `mfb_clap.wav` | 0,188 s | 2,7 | liegt ÜBER der Snare (Achtziger-Stapelpaar) |
| `hat.ogg` | Drumulator `hihat-closed.wav` | 0,131 s | 2,2 | Sechzehntel-Raster |
| `openhat.ogg` | Drumulator `hihat-open.wav` | 0,429 s | 5,8 | Fever und Auftakte |
| `crash.ogg` | Drumulator `cymbal.wav` | 0,838 s | 11,2 | Teilwechsel |
| `tom.ogg` | Drumulator `lo-tom.wav` | 0,399 s | 4,8 | Fills vor dem Refrain |
| `rim.ogg` | Drumulator `rim.wav` | 0,121 s | 2,2 | trockener Tick („Perfekt") |

Summe **33 KB**. Erzeugt von `node tools/edrums-presse.mjs` (holt, schneidet den
Vorlauf ab, normalisiert mit sox auf −1 dBFS, presst nach OGG/Opus mono 96 kbps
und misst nach). Zwei Prüfungen laufen dabei mit: Spitze bei −1 dBFS
(deterministisch, damit die Pegel-Falle „Preset-`peak` × Aufnahmepegel" gar
nicht erst entsteht) und **Einsatz bei 0 ms** — bliebe ein Vorlauf im Puffer
stehen, käme in einem Rhythmusspiel jeder Schlag zu spät.

**Gemischt wird nach MITTLERER Lautheit, nicht nach Spitze.** Alle acht Dateien
sind auf dieselbe Spitze normiert und klingen trotzdem bis zu 15 dB
unterschiedlich laut (Crash −25,6 dB, Kick −10,1 dB gemessen); die
Ausgleichsfaktoren stehen als `KIT` in `src/rhythmus/klang.js`.

### Gate-Raum — RHYTHMUS-LAB (`audio/rhythmus/gate.ogg`, 2026-09-01)

Ableitung aus `assets/ir/HamiltonMausoleum.m4a` (OpenAIR über reverbjs.org) —
dieselbe Lizenz, dieselbe Pflicht: **CC BY-SA**, sichtbare Nennung.

| Datei | Quelle | Fenster | KB | Lizenz |
|---|---|---|---|---|
| `gate.ogg` | HamiltonMausoleum | 0,26 s ab 10 ms, 12 ms Abriss | 3,9 | **CC BY-SA** |

**Die Nennung steht IM BILD:** `HALL_ATTRIBUTION` in `src/rhythmus/klang.js`
schreibt „Raumakustik: OpenAirLib (CC BY-SA)" in den Fußblock von
`rhythmus-lab.html`; `tools/rhythmus-pruefstand.mjs` prüft, dass sie dort steht.
Wer die Zeile entfernt, darf `gate.ogg` nicht ausliefern.

**Warum das Mausoleum und nicht der PD-Tunnel:** Ein Gate-Hall lebt davon, dass
der Raum bis zum Abriss GLEICH LAUT bleibt und dann verschwindet — der Schnitt
ist der Effekt, nicht der Raum. Gemessen (`node tools/rhythmus-hall.mjs`) fällt
die Fahne des Mausoleums im Fenster 50–250 ms um **3,0 dB**, die des
`PurnodesRailroadTunnel` um **11,9 dB**. Der Tunnel wäre kurzer Hall, kein Gate.
Die Entscheidungsregel stand vor der Messung fest (PD gewinnt bis 3 dB
Rückstand), damit die Attributionspflicht nicht nachträglich schöngerechnet
wird. **Der Direktschall ist ausgeschnitten** (ab 10 ms): der Convolver hängt in
einem Nebenweg, mit Direktschall spielte er die Snare ein zweites Mal.

### PD-Räume — Raumplaner & Zauberstudio (`audio/raeume/`, 2026-09-01)

Ableitungen aus `assets/ir/` — hier ausdrücklich **nur die beiden
Public-Domain-Antworten**. Für Kinder- und Werkzeugseiten ohne Abspann gilt:
eine Attributionszeile unter einem Zauberstudio wäre der falsche Preis für
einen schöneren Hall, also kommen dort CC-BY-SA-Räume nicht in Frage.

| Datei | Quelle | hörbar | KB | Lizenz | Wofür |
|---|---|---|---|---|---|
| `wohnraum.ogg` | DomesticLivingRoom | 0,90 s | 12 | **CC0/PD** | Raumplaner (`src/raumplaner/klang3d.js`) — man steht in einem Zimmer |
| `saal.ogg` | PurnodesRailroadTunnel, auf 1,5 s | 1,40 s | 17 | **CC0/PD** | Zauberstudio (`src/synth-engine.js`) — die einzige PD-Antwort mit richtiger Fahne |

Erzeugt von `node tools/pd-raeume.mjs`, beide auf −18 LUFS eingeebnet (damit
ein Sendepegel in beiden Projekten dasselbe bedeutet) und mono gepresst.

**Beide ersetzen gerechnete Antworten, beide behalten sie als Rückfall.** Der
Raumplaner hatte abklingendes Rauschen (0,6 s) — eine brauchbare Näherung ohne
frühe Reflexionen, also ohne das, woran ein Ohr eine Zimmergrösse erkennt. Das
Zauberstudio hatte seit 07-17 eine sorgfältig gerechnete Antwort, weil damals
keine saubere Raum-IR zu beschaffen war; diese Lücke ist seit dem 31.08. zu.
Geladen wird über `ladeIR` — bis die Datei dekodiert ist, klingt die gerechnete
Fassung weiter, ein Klick wartet nie auf einen Netzwerkzugriff.

**Klaviatur+ bekommt nichts:** geprüft, nicht angenommen — `klaviatur.html` hat
überhaupt keinen Hall-Knoten.

### Sample-Schicht der Mini-Spiele (`sounds/`, 2026-09-01)

Dieselben Kenney-Dateien, die SEKTOR 7 benutzt (CC0, siehe Abschnitt oben) —
**0 neue MB**. Neu ist nur, dass `src/spielsound.js` sie jetzt als ANSCHLAG
über seine Oszillatoren legt (B1-Muster: Aufnahme liefert den Transienten,
Synthese bleibt als Körper darunter). Das wirkt auf alle Mini-Spiele
gleichzeitig — Pong, Breakout, Simon, Reaktionstest, Wörtle, Memory und
Schiffe versenken teilen sich diese Bibliothek.

| Rolle | Dateien | Ziel (mittlere Lautheit) |
|---|---|---|
| `klick` | `interface-sounds/click_002·004` | −30 dB |
| `wand` | `impact-sounds/impactPlank_medium_000·002` | −26 dB |
| `schlaeger` | `impact-sounds/impactWood_medium_000·002` | −24 dB |
| `treffer` | `impact-sounds/impactGlass_light_000·002` | −24 dB |
| `schuss` | `sci-fi-sounds/laserSmall_000·002` | −25 dB |
| `versenkt` | `sci-fi-sounds/explosionCrunch_000·002` | −17 dB |
| `wasser` | `impact-sounds/impactSoft_medium_000·002` | −27 dB |
| `fehler` | `interface-sounds/error_004·006` | −25 dB |

Je Rolle zwei Dateien: der zehnte Schlag soll nicht wie der erste klingen.
Die Gains stammen aus `node tools/spielsound-mass.mjs` und halten das
Verhältnis der Rollen ZUEINANDER; darüber liegt mit `SCHICHT_PEGEL` **eine**
Stellschraube für die Schicht als Ganzes. Sie steht auf 0,20 — gemessen macht
die Schicht damit **+1,5 dB** aus. Mit den rohen Sektor-Zielen waren es
**+12,9 dB**: dort ist ein Schuss der lauteste Klang im Spiel, hier liegt die
ganze Bibliothek rund 32 LUFS tief. Ein Layer, der einfach addiert, klingt
sofort besser und übersteuert kurz darauf.

Gegengeprüft von `node tools/spielsound-hoerprobe.mjs`: mit gesperrtem
`/assets/sounds/` klingt dieselbe Folge vollständig weiter (Rückfall trägt),
mit Dateien kommen alle 16 an, und der Zuwachs bleibt unter 1,5 dB.

**Bullet-Ballett und Nachtschwarm bleiben aussen vor** — sie sind seit dem
Godot-Umzug keine Web-Spiele mehr; ein Re-Export liefe nur über Saschas
Godot-Editor.

## KABINETT — Stufe-3-Vollausbau (2026-09-01, Nachtrag N1)

Alle CC0 (Poly Haven bzw. ambientCG), 2k, JPG; `arm` = AO(R)/Roughness(G)/Metalness(B), Normal in OpenGL-Konvention.

| Ordner / Datei | Quelle · ID | Zweck |
|---|---|---|
| `texturen/kabinett_nussbaum/` (diffuse, normal, arm) | Poly Haven `walnut_veneer` (16k-Original, 1,8 m Kantenlaenge) | Furnier des Apparats in echter Groesse, UV in Metern je Bauteil (hoelzer.js, N2) |
| `texturen/kabinett_samt/` (diffuse, normal, arm) | Poly Haven `velour_velvet` (auf 2048² gebracht) | Samt: Rock des Schreibers, Vorhaenge, Futter (N5) |
| `texturen/kabinett_metall/` (normal, roughness) | ambientCG `Metal007` (poliertes Gold mit Kratzern/Dellen) | Triplanare Mikrostruktur auf allem Messing (N3) — **seit 03.09.2026 auch von KALIBER mitgenutzt** (`src/kaliber/werk3d/mikrostruktur.js`, Feinstruktur der Werkmetalle, im OBJEKTraum statt im Weltraum, weil sich die Räder drehen) |
| `texturen/grotte_travertin/` (diffuse, normal, arm aus AO+Roughness) | ambientCG `Travertine001` | Pavillon der Grotte als Mauerwerk (N8) |
| `hdri/music_hall_01_1k.hdr` | Poly Haven `music_hall_01` | Spiegelumgebung des Kabinetts (Sieger des A/B in N3 gegen machine_shop_01, museum_of_ethnography, castle_zavelstein_cellar — die Verlierer sind nicht im Repo geblieben) |

### Der Kopf des Schreibers — MakeHuman via MPFB (2026-09-02, Nachtrag N9)

`kabinett/schreiber-k.glb` traegt seit N9 einen Kopf, den `tools/blender/mpfb-kind.py`
mit **MPFB** (MakeHuman Plugin for Blender, extensions.blender.org) erzeugt: Basismesh
und Makro-Ziele (Alter 0,16 · Junge) aus dem MakeHuman-Projekt. **Lizenz:** Das von
MakeHuman/MPFB erzeugte Netz ist **CC0** (ausdruecklich so freigegeben — „output is CC0"),
das Werkzeug selbst ist GPL/AGPL und wird nicht ausgeliefert. Keine Attribution noetig;
die Herkunft steht hier der Reproduzierbarkeit wegen. Rezept: `mpfb-kind.py` (ohne
`--factory-startup`) → `tmp/werkbank/mpfb-kopf.glb` + `.json` → `schreiber.py --kopf mpfb`.

## Eigenproduktion: gebackene Verdeckung KALIBER (03.09.2026)

| Datei | Herkunft | Verwendung |
|---|---|---|
| `public/kaliber/ao-dreiviertel.png`, `ao-bruecken.png` (je 2048², Graustufen, linear) | **Eigenproduktion.** Cycles-AO-Bake des montierten Kaliber-Werks, je Deck-Ausführung eine Karte. Erzeugt aus der lebenden Szene: `tools/kaliber-ao-bauen.mjs` (uv1-Atlas in JS → OBJ über CDP → `tools/blender/kaliber-ao.py` → oxipng). Reproduzierbar mit einem Befehl; `scripts/kaliber-ao-test.mjs` bricht ab, wenn die Geometrie seit dem Bake gewandert ist. | Umgebungsverdeckung auf allen fünf Bühnen mit Werk (`aoMap`, UV-Satz 1) |

Keine fremden Assets — die Karten entstehen vollständig aus der eigenen
Geometrie. Der Eintrag steht hier, weil auch Eigenproduktion eine Herkunft
hat: ohne den Bau-Befehl daneben ist eine 600-KB-Datei im Repo nach zwei
Monaten ein Fundstück.
# Unterirdischer UFO-Hangar im Kabinett (04.09.2026)

`kabinett/hangar-k.glb` ist ein eigener Blender-Bau aus
`tools/blender/hangar.py`: geschlossene UFO-Hülle mit Cockpit, Fahrwerk und
Unterbodentechnik, Höhlengewölbe, Überhänge, Wartungsstege und Brückenkran.
Keine Fremdmodelle. Laufzeitmodell mit Meshopt verdichtet (ca. 2,3 MB).

Wiederverwendete, bereits unten dokumentierte Fremdmaterialien:

- `texturen/grotte_tuff/`: ambientCG **Rock030**, CC0; jetzt mit triplanarer
  Projektion in Metern auf dem Fels des Hangars.
- `texturen/concrete_floor_02/`: Poly Haven **concrete_floor_02**, CC0.
- `texturen/kabinett_metall/normal.jpg`: ambientCG **Metal007**, CC0.
- `kabinett/hall/grotte.ogg`: bestehende Bearbeitung von **HamiltonMausoleum**,
  CC BY-SA; der sichtbare OpenAirLib-Nachweis bleibt bestehen.

Die Metallreflexe werden im Browser eigens aus Hangar-Lichtflächen erzeugt.
Die bisherigen Grottenmodelle und deren Lichtkarten werden vom Kabinett
nicht mehr geladen.

## ASCENT · Relaunch (05.09.2026)

Alle neuen Dateien liegen unter `ascent/`. Die Laufzeit lädt keine externen Dienste.

| Dateien | Herkunft / Lizenz | Bearbeitung und Verwendung |
|---|---|---|
| `startdampf.rg8.gz`, `startdampf.json` | Eigenproduktion mit Blender 5.2 Mantaflow | 72³ Voxel, acht echte Volumenzeitpunkte mit Dichte und berechneter Lichttransmission. `tools/blender/ascent-rauch.py` erzeugt den Gas-Bake; `ascent-volumen.py` exportiert ihn. Räumliches Raymarching im Browser. |
| `feuer.rgba8.gz`, `feuer.json` | Eigenproduktion mit Blender 5.2 Mantaflow | Separate Brennstoff-/Flammensimulation, acht Volumenzeitpunkte. Dichte, Lichttransmission und Flammenfeld; `tools/blender/ascent-feuer.py`. |
| `aufprall.json.gz` | Eigenproduktion mit Blender 5.2 Bullet | 28 unterschiedlich große Tankschalen und neun Triebwerkskörper mit echter Starrkörperbewegung und Bodenkollision, 151 Zeitpunkte bei 30 Hz. `tools/blender/ascent-aufprall.py`. Visueller Fehlschlag-Bake; kein ingenieurwissenschaftliches Strukturbruchmodell. |
| `triebwerke.glb` | Eigenproduktion | Kühlkanäle, Flansche, Leitungen und Pumpen für Merlin, MVac, F-1, J-2, Raptor und RVac. `tools/blender/ascent-triebwerke.py`; maßliche Glocken aus dem Projekt. |
| `himmel-4k.jpg` | [Poly Haven: Kloofendal 48d Partly Cloudy Pure Sky](https://polyhaven.com/a/kloofendal_48d_partly_cloudy_puresky), [CC0](https://polyhaven.com/license) | Fotografierter 4k-Himmel; HDR-Werte durch vier geteilt, sRGB-codiert und als JPEG gespeichert. Laufzeit stellt den linearen Lichtumfang über die Hintergrundintensität wieder her. Die bereits vorhandene 1k-HDR-Datei desselben Panoramas liefert die Reflexe. `tools/ascent-umgebung.mjs`. |
| `florida-kueste.jpg`, `cape-canaveral.jpg`, `boca-chica.jpg` | Landsat / NASA GIBS / USGS, [Public Domain](https://www.usgs.gov/faqs/are-landsat-data-cloud-still-considered-be-within-public-domain). Bilddaten mit freundlicher Bereitstellung durch USGS. | Global WELD, Jahreskomposit 2000, Ebene `Landsat_WELD_CorrectedReflectance_TrueColor_Global_Annual`. [Metadaten](https://gibs.earthdata.nasa.gov/layer-metadata/v1.0/Landsat_WELD_CorrectedReflectance_TrueColor_Global_Annual.json), [NASA-Datennutzungsrichtlinie](https://www.earthdata.nasa.gov/engage/open-data-services-software/data-use-policy). Regionale, erdgekrümmte Farbkarten; keine aktuelle oder missionshistorisch genaue Aufnahme. Abrufrezept: `tools/ascent-umgebung.mjs`. |
| `funk/*.ogg`, `funk/sprueche.json` | Eigene Texte, lokal synthetisiert mit Piper / Thorsten Medium (CC0, bereits im Sprachabschnitt dokumentiert) | Zwölf deutsche Missionsansagen, Bandpass und Dynamikbearbeitung, Opus. `tools/ascent-funk.mjs`. Keine NASA-/SpaceX-Originalmitschnitte. |

Gemeinsam genutzte Oberflächen (Beton, Metall, Erde) behalten ihre bestehenden Quellenangaben. Die NASA-Startfotos dienen ausschließlich als Stilreferenz und werden nicht mit ausgeliefert.

Ergänzung Boden: `ascent/sand/{diffuse,normal,arm}.jpg` verwendet [Aerial Sand von Poly Haven](https://polyhaven.com/a/aerial_sand), CC0, 1k. Der fotografierte Boden ergänzt die unmittelbaren Landeplätze (ca. 1,3 MB); lokale Schatten und Randtechnik stammen aus eigener Geometrie.

## CRT-Spielhalle — Stufe 3 (05.09.2026)

Alles Eigenproduktion, hier dokumentiert, weil auch ein hausgemachtes Asset
eine Herkunft hat (Bau-Befehl daneben):

- `public/spielhalle/licht-grund.png`, `licht-automaten.png`, `licht.json` —
  gebackene Lichtkarten der Halle (Cycles über `tools/blender/spielhalle-ofen.py`
  aus `tools/spielhalle-geo-export.mjs`; Laufzeitformat über
  `node tools/spielhalle-bake.mjs --von-cycles`). Node-Baker als A/B-Pfad:
  `node tools/spielhalle-bake.mjs`. Frische-Hash gegen den Level-Stand.
- `public/spielhalle/sideart/*.jpg` — acht Wangen-Illustrationen im 90er-
  Sideart-Stil (eigene SVGs in `tools/sideart/`, Inkscape → JPEG über
  `node tools/spielhalle-sideart.mjs`); `k0`–`k4` sind titellose, farbgedrehte
  Varianten für die Kulissen-Automaten. Keine fremden Marken oder Logos.
- `public/spielhalle/stimmen/*.ogg` — Retro-Sprachsynth (Piper
  `de_DE-thorsten-medium`, MIT-lizenziertes Modell, lokal in `tools/tts-stimmen/`
  — gitignored) mit sox-Bandpass/Bitcrush über `node tools/spielhalle-stimmen.mjs`.
- `public/assets/spielhalle/moebel/*.pak.glb` + `*-ao.png` — Flipper, Airhockey,
  Kicker aus `tools/blender/spielhalle-moebel.py` (Möbel-Ofen des Raumplaners
  als Modul, Maß-Check gegen `src/spielhalle/stellplan.js`), Presse
  `asset-presse pressen --klasse standard`.
- **Raum-Impulsantwort:** `ir/UndergroundCarPark.m4a` (OpenAirLib, **CC BY-SA**)
  als Convolver-Hall der Halle. Attribution steht **in der Halle selbst**: der
  Impressum-Aushang am Schwarzen Brett (Südwand, über Hausordnung/JuSchG,
  `inventar.js` → `aushang("credits")`) nennt „OpenAirLib, Univ. York ·
  Underground Car Park · CC BY-SA".

## 3D-KOMMANDOZENTRALE — Stufe 3 (05.09.2026, Plan `kz3d-stufe3.md`)

Alle Assets unter `kz/` sind **Eigenproduktion** oder Ableitungen von Dateien,
deren Herkunft oben steht. Nichts davon braucht eine Attributionszeile.

### Gebackene Verdeckung (`kz/ao-deck.ktx2`, `kz/ao-unterdeck.ktx2`, `kz/ao-meta.json`)

Eigenproduktion, am 08.09.2026 für die monumentale Monitorhalle erneuert.
Zwei AO-Atlanten (2048²) aus der lebenden Three.js-Szene:
`src/werkbank/ao-atlas.js` legt den zweiten UV-Satz an,
`tools/ao-geo-export.mjs` exportiert die Geometrie,
`tools/blender/ao-backen.py` bäckt in Cycles (96 Proben, Distanz 1,2 m).
`tools/kz-ao-bauen.mjs` führt die Kette einschließlich ETC1S/KTX2-Kompression
und Frische-Test aus. Deck 389 KiB · Unterdeck 286 KiB. PNG-Arbeitsdateien
liegen unter `tmp/kz/`. Hash und Qualitätsmessungen stehen in `ao-meta.json`.

Die zusätzliche Tragwerks- und Galeriegeometrie sowie die Mikro-Rauheit
für Pulverlack sind eigene prozedurale Arbeiten (`zentrale/monument.js`,
`zentrale/oberflaechen.js`). Bestehende CC0-PBR-Materialien und HDRI werden
weiterverwendet; ihre Quellen sind oben dokumentiert. Die oberen Monitore
verwenden Vorschaubilder der tatsächlichen Portfolio-Projekte.

### Raumantworten (`kz/hall/deck.ogg`, `kz/hall/serverraum.ogg`)

Ableitungen der **Public-Domain**-Antworten aus `assets/ir/` — dieselben
Dateien wie `audio/raeume/` (siehe dort): `deck.ogg` = Eisenbahntunnel
Purnode auf 1,5 s (Deck: harte Halle aus Stahl und Beton), `serverraum.ogg` =
DomesticLivingRoom (eng, von den Racks gedämpft). Beide **CC0/PD**, keine
Nennung nötig — die Zentrale hat keinen Abspann, deshalb bewusst keine
CC-BY-SA-Räume (Tiefgarage, Reaktorhalle).

### Funkstimme (`kz/funk/*.ogg`, `kz/funk/manifest.json`)

Eigenproduktion: zwölf deutsche Funksprüche + zwei Regie-Ansagen (Alarm an/
aus) aus `src/zentrale/funksprueche.js`, gesprochen von Piper
`de_DE-thorsten-medium` (MIT-lizenziertes Modell, lokal in `tools/tts-stimmen/`,
gitignored), durch die Funkstrecke aus `tools/tts-funk.mjs` (sox: Bandpass,
Overdrive, Kompression), Opus 40 kbit/s mono über `tools/kz-funk.mjs`.
Der Text nennt die echten Module des Portfolios (aus `src/kategorien.js`).

### KTX2-Fassungen der PBR-Sets (`texturen/{metal_plate,concrete_floor_02,concrete_wall_008}/*.ktx2`)

Umkodierung der ambientCG-Sets (CC0, siehe Abschnitt „PBR-Texturen") mit
`tools/pbr-pressen.mjs` (basisu): Farbe und ARM als ETC1S, Normal-Map als
UASTC (ETC1S zerstört Normal-Maps — W2-Fund), alle mit Mip-Kette und `-y_flip`
(KTX2 lädt ohne flipY). Die JPGs bleiben als Rückfall je Karte liegen.

## STURMLÄUFER — Küstenprobe (05.09.2026)

Eigene Blender-Modelle und Audio-Aufbereitung zentral unter `sturmlaeufer/`.
Externe Aufnahme: **molkko, „Sea waves“**, Freesound #425632, **CC0 1.0**, Lizenz auf der [Originalseite](https://freesound.org/people/molkko/sounds/425632/) am 05.09.2026 geprüft. Eigene Musik nutzt den bereits dokumentierten VSCO2-CC0-Klavierbestand. Vollständige Zuordnung, Quellen-URLs und Herkunft: `sturmlaeufer/QUELLEN.md`; Lizenzbeleg: `sturmlaeufer/LICENSE-CC0.txt`. Keine fremden 3D-Modelle.


## FUNKE – Qualitätsprobe (05.09.2026)

Zentraler Bestand: `funke/`. Godot-Importkopien unter `godot/funke/assets/`.

- `funke.glb`, `deck.glb`, `wheel.glb`, `relay.glb`, `magnet.glb`, `boiler.glb`: für FUNKE selbst modellierte Blender-Geometrie, Materialien und mechanisches Rig; keine übernommenen Figuren/Modelle. Reproduzierbar mit `godot/funke/tools/build_models.py`, editierbare Blender-Dateien daneben in `blender-source/`. Vertex-AO in Cycles gebacken. Keine externe Asset-Lizenz.
- `voice`, `jump`, `release`, `repair`, `win`, `music_quiet`, `music_awake` (`.ogg`): eigene Synthese/Komposition, `godot/funke/tools/build_audio.py`.
- `step.ogg`: Kenney `impactPlate_light_000`; `climb.ogg`: `impactMetal_light_002`; `land.ogg`: `impactSoft_medium_000`; `magnet.ogg`: `impactMetal_medium_001`. [Impact Sounds – Kenney](https://kenney.nl/assets/impact-sounds), **CC0**; aus dem vorhandenen Zentralbestand `sounds/impact-sounds/`, gekürzt und Pegel angepasst. Keine Laufzeitdownloads.
- `Archivo.woff2`: Omnibus-Type, SIL OFL 1.1; Projektbestand aus Sonic Tidal, [offizielle Lizenz](https://github.com/google/fonts/blob/main/ofl/archivo/OFL.txt), Kopie `ARCHIVO-OFL.txt`.
- `Oxanium.ttf`: The Oxanium Project Authors, SIL OFL 1.1; Projektbestand aus Sonic Tidal, [offizielle Lizenz](https://github.com/google/fonts/blob/main/ofl/oxanium/OFL.txt), Kopie `OXANIUM-OFL.txt`. Lizenzkopien auch im FUNKE-Webordner.

Stilreferenzbilder von State of Play wurden ausschließlich angesehen, nicht als Spielassets eingebunden.


## LETZTE SCHICHT — Qualitätsprobe (05.09.2026)

Eigene Architektur, Maschinen, Versuchsring und Cycles-Lichtkarten aus `godot/letzte-schicht/werkzeuge/station.py`. Keine übernommenen Spielassets. Erzeugte Lichtkarten zentral in `letzte-schicht/`, importierte Spielressourcen zusätzlich im eigenständigen Godot-Projekt.

- PBR-Bestand: Poly Haven `concrete_floor_02`, `concrete_wall_008`, `metal_plate`, `rusty_metal_02`, jeweils **CC0**, aus `texturen/` (Quellen oben). Oberflächen in Blender verwendet; Betonfarbe und Betonnormale außerdem in Godot.
- Metall-Mikronormale: ambientCG `Metal007`, **CC0**, wiederverwendet aus `texturen/kabinett_metall/normal.jpg` (Quellen oben).
- Eigene Klangbetten für Küste, Aggregat, Trockner, Hallenpumpe, Servo und Druckablass aus `klang.py`; keine Sprache.
- Relais `switch_006`, Schütz `impactMetal_heavy_001`, Rastung `impactMetal_medium_002`, Schritte `footstep_concrete_001/003`, Tür `doorOpen_001`: Kenney Interface / Impact / Sci-Fi Sounds, **CC0**. Originale und Lizenzbelege in `sounds/*/License.txt`. Pegel und kurze Raumreflexionen mit SoX bearbeitet; lokale Kopien in `letzte-schicht/audio/`.
- Schrift: vorhandene Archivo und IBM Plex Mono aus `fonts/immo/` (bestehende SIL-OFL-Schriftfamilien).

INFRA ist ausschließlich Stilreferenz; das Referenzbild wird nicht mit dem Spiel oder dessen Assets ausgeliefert.

## FUNKE – vollständiger Maschinenabschnitt (05.09.2026)

- `funke/heart.glb`, `piston.glb`, `pump.glb`, `workbench.glb`: eigene Blender-Modelle mit mechanischen Pivots, gefasten Kanten und gebackener Vertex-AO. Reproduzierbar mit `godot/funke/tools/build_final_models.py` und `build_workbench.py`; editierbare `.blend` daneben in `blender-source/`. Keine externe Asset-Lizenz.
- `funke/music_heart.ogg`: eigene synthetisierte Musikstimme des erwachten Kerns, erzeugt mit `godot/funke/tools/build_audio.py`. Keine fremden Samples oder Aufnahmen.

## LETZTE SCHICHT — Das letzte Echo, Vollausbau (05.09.2026)

- Zwei Hallenfassungen, Archiv, Druckpulte und drei separat bewegte Rotoren: eigene Blender-Modelle aus `godot/letzte-schicht/werkzeuge/vollausbau.py`, mit den oben dokumentierten CC0-Oberflächen. Cycles-Lichtkarten mit Open Image Denoise, 4096 Pixel pro Hallenatlas und 2048 Pixel pro Rotor. Editierbare Quellen und zentrale Lichtkarten in `letzte-schicht/voll/`.
- Hochlauf, Feldaufbau, Schwelle, Resonanz und Archivmechanik: eigene deterministische Synthese aus `klang-voll.py`, zentrale Audiodateien in `letzte-schicht/audio/`. Keine fremden Filmgeräusche und keine generierte Sprache.
- Portalshader, Notbrücke und bewegte Armaturen: eigene Godot-Geometrie und Animation. Die zeitlich versetzten Hallen teilen Mesh-/Texturressourcen, wo möglich.
- Contact dient ausschließlich als Form- und Bewegungsreferenz; keine Filmassets eingebunden.

### LETZTE SCHICHT – Monument-Fassung (06.09.2026)

48 Meter breite Kammer mit 18 Meter tiefer Grube, menschlich dimensionierten Stegen und drei Rotoren (Achsdurchmesser 30,4 / 25,3 / 20,4 m). Neue eigene Geometrie aus `vollausbau.py`; verstärkte Rotoren zusätzlich mit `rotoren.py` in der Hallenbeleuchtung gebacken. Die erste Fassung bleibt über `vollausbau-v1.py` nachvollziehbar. Eigene 29 Sekunden lange Hochlaufkomposition und 10 Sekunden Torbildung; keine Contact-Bilder, Modelle oder Filmsamples im Spiel. Der Film dient als Form-/Maßstabsreferenz.

### KABINETT — sechs UFOs und cinematischer Hangar (06.09.2026)

`kabinett/hangar-k.glb` erweitert den Eigenbau um sechs eigenständige Archetypen: Untertasse, Dreieck, Kapsel, Glocke, Kugel und Torus. Keine übernommenen Film- oder Spielmodelle. Reproduzierbare Blender-Quelle: `tools/blender/hangar.py`; Materialbündelung und Meshopt-Komprimierung mit gltfpack. Das auf 304 Meter verlängerte Felsgewölbe enthält sechs Stellplätze mit 48 Metern Achsabstand, Wartungsstege und einen Ausgangsschacht. Die zuvor dokumentierten CC0-Fels-, Beton- und Metalltexturen sowie die bestehende OpenAirLib-Raumantwort werden weiterverwendet. Keine neuen fremden Assets oder Lizenzen.

### KABINETT — UFO-Forschungsstätte (06.09.2026)

Eigene Erweiterung von `kabinett/hangar-k.glb`: maßstäbliche Laborstände, ausgebaute Science-Fiction-Reaktoren, Forschende, Messrahmen und Servicebühnen. Keine neuen Fremdmodelle oder Texturen. Die bestehenden CC0-Oberflächen bleiben in Verwendung. Herkunft der berichteten Größen, gewählte Maße und Unsicherheiten sind einzeln in [kabinett/HANGAR-QUELLEN.md](kabinett/HANGAR-QUELLEN.md) dokumentiert. Fünf Formen erhalten Maßbezüge zu konkreten Berichten; der Torus bleibt wegen fehlender Maßangabe ausdrücklich ein freier Entwurf. Das Element-115-Motiv nach Lazar ist Science-Fiction, keine Darstellung bestätigter Technik. Blender-Quelle: `tools/blender/hangar.py`, tatsächliche Hüllmaße beim Export in `tmp/kabinett-forschung/huellenmasse.json`. Materialbündelung, gröbere unsichtbare Details und ein gemeinsamer Beschriftungsatlas schaffen Raum für den Ausbau ohne zusätzliche Echtzeit-Lichter.

### KABINETT — Kontaktschatten der zwei Werke (07.09.2026)

`kabinett/ao/werk.png` und `kammer.png`: eigene lineare Kontaktschatten aus der tatsächlichen prozeduralen Geometrie, mit Blender/Cycles gebacken; keine fremden Bilder oder Modelle. Zwei 2048²-Graukarten, zusammen 425 KiB. Geometrie-Hashes, Ausschlüsse und reproduzierbare Quelle: [kabinett/ao/README.md](kabinett/ao/README.md), `tools/kabinett-ao-export.mjs` und `tools/blender/kabinett-ao.py`.

### KABINETT — Ziselierte Werkplatinen (07.09.2026)

Eigene, zur Laufzeit erzeugte Canvas-Normalkarten: versetztes Punzenraster und aus Bézierzügen konstruierte Rocaille-Ranken, dem Platinenumriss folgend. Quelle: `src/kabinett/stoff.js`. Keine fremden Bilder oder Modelle; die vorhandenen CC0-Metallkarten bleiben in Verwendung.

### KABINETT — Telefon-Fassungen der Texturen (07.09.2026)

`kabinett_samt/klein/`, `kabinett_nussbaum/klein/`, `kabinett_metall/klein/`, `wohn_nussbaum/klein/` und `hdri/music_hall_01_512.hdr` sind mit ImageMagick auf die halbe Kante verkleinerte Ableitungen der jeweils darüberliegenden Originale (gleiche Herkunft, gleiche Lizenz). Erzeugt von `tools/texturen-klein.mjs`; gewählt von `texturPfad()` in `src/assets-lader.js` nur am groben Zeiger.

## FENNEK · lokale Wiederverwendung (08.09.2026)

Der Grafikumbau nutzt die bereits vorhandenen CC0-Sätze ambientCG Rock030 (`texturen/grotte_tuff`), Poly Haven leafy_grass (`texturen/wohn_rasen`), aerial_sand (`ascent/sand`) sowie das Kloofendal-Himmelspanorama (1K-HDR und vorhandene 4K-JPEG-Ableitung). Lokale Kopien und eine warme HDR-Farbkorrektur liegen in `godot/fennek/assets/visual/`; die dortige `QUELLEN.md` dokumentiert die Zuordnung. Keine neuen Downloads. Pflanzen, erodierte Felsmodelle, Hindernisse, Maschinen, facettierte Meerglas-Kristalle und der überarbeitete Fennek sind lokale Eigenproduktionen.

### FUNKE · Die große Wiederinbetriebnahme (07.09.2026)

- `funke/conveyor.glb`, `catcher.glb`, `press.glb`, `switchyard.glb`: eigene für dieses Projekt in Blender 5.2 erstellte Maschinenmodelle, keine Fremdmodelle oder Fremdtexturen. Gefaste Formen, benannte mechanische Gelenke und gebackene Vertex-Kontaktschatten. Editierbare Quellen: `godot/funke/tools/blender-source/`; reproduzierbar mit `godot/funke/tools/build_action_models.py`. Zusammen rund 1,57 MB GLB.
- `funke/dash.ogg`, `catch.ogg`: eigene offline erzeugte Impuls-/Magnetklänge, keine Fremdsamples. Erzeugung in `godot/funke/tools/build_action_audio.py`. Die bestehenden CC0-Kontaktklänge und Schriftlizenzen bleiben wie oben dokumentiert.

### FUNKE · Realismusprobe Antriebskammer (08.09.2026)

- `funke/realismus/green_metal_rust/`: **Green Metal Rust**, Rob Tuytel, [Poly Haven](https://polyhaven.com/a/green_metal_rust), CC0. Fotografisches zusammengehöriges 1K-Set (Diffuse, OpenGL-Normal, ARM), Originalfläche 1 × 1 m. Download am 08.09.2026. Die Ableitungen `coat/` und `worn/` nutzen synchronisierte Ausschnitte für alle Karten; nur Lackfarbe und Metallkanal wurden angepasst. Lack und Rost bleiben nichtmetallisch. Reproduzierbar: `godot/funke/tools/prepare_realism_materials.py`; Maße/Ausschnitt in `funke/realismus/materialien.json`.
- Beton (`concrete_wall_008`, `concrete_floor_02`), Trittstahl (`metal_plate`), punktuelle Korrosion (`rusty_metal_02`): bestehende vollständige Poly-Haven-CC0-Kartensätze aus `texturen/`, Herkunft oben dokumentiert. Bestehende Metall-Mikronormale/Rauheit `stahl_gebuerstet`, `kabinett_metall` werden getrennt auf blanken Metallteilen genutzt.
- `funke/realismus/workshop.hdr`: vorhandenes CC0-HDRI [Industrial Workshop Foundry](https://polyhaven.com/a/industrial_workshop_foundry), 1K, aus `hdri/`; keine neue Lizenz.
- `funke/antrieb_halle.glb`, `antrieb_fundament.glb` sowie neue Fassungen von `funke.glb`, `deck.glb`, `wheel.glb`: eigene Blender-Konstruktionen und Vertex-AO, `godot/funke/tools/build_realism.py`. Figur zusätzlich eigener Cycles-Kontaktatlas auf UV2 (`funke/realismus/funke_contact.png`), reproduzierbar mit `bake_realism_contact.py`. Keine übernommenen Figuren oder Fremdmodelle.
- Galloways Pumping Engine, Science Museum Group, ausschließlich im Browser betrachtete Formreferenz. Das Museumsfoto und dessen CC-BY-NC-SA-Inhalt werden nicht ins Spiel übernommen. Betrachtete, aber verworfene `rusty_painted_metal`- und ambientCG-PaintedMetal001-Assets werden nicht eingebunden.

FUNKE · gebündelte Jurykorrektur: `antrieb_arm.glb`, `antrieb_ritzel.glb`, `antrieb_ritzelstand.glb` sind eigene Blender-Konstruktionen mit Vertex-Kontaktbake (untergehängter Schwenkarm, Zwölfzahnritzel, Motor/Getriebe/Tragständer). Kein neues Fremdasset. Die vorhandenen Metall-Rauheitskarten werden reproduzierbar in einen begrenzten Bereich übertragen (Stahl 0,38–0,74; Messing 0,46–0,76), damit die bearbeiteten Kanten ruhig lesbar bleiben. `window_light.gdshader` ist eine eigene einfache Lichtverteilung für diffuse Fensterscheiben, keine fremde Textur und keine Raum-GI.

## KERNFLUCHT · ASTER 09 (07.09.2026)

- Vierzehn eigenständige Hard-Surface-Modelle, in Blender 5.2 aufgebaut: Rettungsgleiter, Tunnelmodul, Ringmaschine, Hallenpfeiler, Schleusenblatt, Reaktorkessel, Wartungsbrücke, Druckleitungen, äußerer Stationsrumpf, Hallenfassade, Reaktoranschluss, gebrochener Gitterträger, Schleusenadapter und mechanisches Transferschott. Dazu sieben eigenständige Landschaftsmodelle: zwei breite Gletscherkörper, Naturbrücke, Eisscholle, Basaltwand, Lavabrocken und Caldera. Acht Hauptmodelle tragen echte, in Cycles berechnete AO-Karten auf separatem UV-Kanal. Quellen und reproduzierbare Modellwerkzeuge: `godot/kernflucht/tools/`, echte `.blend`-Dateien in `blender-source/`; GLB-Spielassets in `godot/kernflucht/assets/`. Eigene Gestaltung, keine fremden Modellpakete.
- Metallfarbe/-normal: vorhandenes Poly-Haven-Set `texturen/metal_plate/`, **CC0**, siehe Texturquellen oben; als gedämpftes Oberflächenfinish in Godot.
- Erde, Wolken und Saturn samt Ringscheibe: vorhandene Karten unter `texturen/planeten/`, **Solar System Scope, CC BY 4.0**, Quellen und Lizenz oben. Attribution sichtbar auf Start-, Pause- und Endbild der Spielseite.
- Metalltreffer: Kenney `impact-sounds/impactMetal_heavy_002.ogg`, **CC0**, siehe Soundquellen oben. Motor, Durchflugsignal, Bruchimpuls und Musik eigens erzeugt; Rezepte `godot/kernflucht/tools/build_audio.py` und `build_world_audio.py`; die drei Welten besitzen eigene Musik.
- Gesteinsfarbe/-normal für Eis- und Vulkanlandschaften: vorhandenes **ambientCG Rock030, CC0**, aus `texturen/grotte_tuff/`; ursprüngliche Quelle siehe dortige Texturdokumentation.
- Oxanium: SIL Open Font License 1.1; Lizenzkopie `kernflucht/OXANIUM-OFL.txt` und im Webexport.
- Stilreferenz, nur für interne Kritik, nicht als Spielasset: Refract, *Distance*, offizielles [Gameplay-Bild](https://survivethedistance.com/images/distance_gameplay_2.png), lokal in `docs/kernflucht/referenz/`. Keine Weiterverwendung im Spiel oder Deploy-Build.


### KERNFLUCHT – Landschaftsüberarbeitung (08.09.2026)

- `kernflucht/modelle/{polar_massif,polar_bridge,volcanic_massif,caldera_hero}.glb`: vier eigene geschlossene Blender-Landschaften, zusammen 133.728 Dreiecke und 4.750.700 Byte. Drei eingebettete 1024²-Cycles-AO-Atlanten, 64 Samples. A.N.T. Landscape wurde als lokales Modellierwerkzeug eingesetzt; keine Plugin-Quellen oder fremden Modelle ausgeliefert. Reproduzierbar mit `godot/kernflucht/tools/build_landscape_hero.py`, editierbare Quellen in dessen `blender-source/`. Godot-Importkopien in `godot/kernflucht/assets/`.
- `kernflucht/oberflaechen/schnee-{farbe,normal,rauheit}.jpg`: **Poly Haven Snow 02, CC0**, 1K-Fassung von Diffuse, OpenGL-Normale und Roughness. [Original und Lizenz](https://polyhaven.com/a/snow_02), [offizielle Dateiliste](https://api.polyhaven.com/files/snow_02). Abgerufen am 08.09.2026.
- `kernflucht/oberflaechen/himmel-foto.jpg`: vorhandene 4K-Ableitung von **Poly Haven Kloofendal 48d Partly Cloudy Pure Sky, CC0**, aus `ascent/himmel-4k.jpg`; Herkunft und HDR-Aufbereitung sind im ASCENT-Abschnitt dokumentiert. Farbgestaltung im eigenen Godot-Himmelshader.
- Stilreferenz für Landschaftstiefe, Licht und Maßstab: *Exo One*, [offizielle PlayStation-Seite](https://www.playstation.com/en-us/games/exo-one/), Bilder 04 und 05. Ausschließlich interne Anschauungsbilder unter `docs/kernflucht/referenz/`, nicht Bestandteil des Spiels oder Gesamtbuilds.

- `kernflucht/modelle/hallenfassade40-web.glb`: eigene Web-Ableitung der bestehenden Stationsfassade. Mit gltfpack auf 38.518 statt 68.516 Dreiecke reduziert (−43,8 %); alle sechs Materialflächen, UVs und äußeren Maße erhalten. Keine fremden Assets. Rezept: `gltfpack -i godot/kernflucht/assets/hallenfassade40.glb -o godot/kernflucht/assets/hallenfassade40-web.glb -si 0.55 -se 0.0003 -sp -kn -km -kv -noq`.

## BRUCHWERK (07.09.2026)

`bruchwerk/`: neun eigene Blender-Baugruppen (Raupe, Arm, Träger, Kern, Container, Magnet, Kugel, Halle, Silo), erzeugt mit `tools/bruchwerk/modelle.py`. Drei Kenney-Impact-Sounds (CC0, bereits oben dokumentiertes Pack); Archivo (SIL OFL 1.1). Vollständige Zuordnung: `docs/bruchwerk/QUELLEN.md`. Keine fremden Spielassets übernommen.

## BRUCHWERK – Realismusentwurf (08.09.2026)

- `bruchwerk-realismus/hafen.hdr`, `hafen-panorama.jpg`: Poly Haven **Abandoned Slipway**, Philip Modin, CC0. 2K-HDRI und originale tonemapped JPG. Quelle: https://polyhaven.com/a/abandoned_slipway . Das HDRI beleuchtet; das Panorama bildet den entfernten Horizont.
- `bruchwerk-realismus/lack-{diffuse,normal,arm}.jpg`: Poly Haven **blue_metal_plate**, CC0, zusammengehöriges 1K-Kartenset. Lackfarbe im Shader selektiv in Ocker umgefärbt; Abplatzungen und Metall-/Rauheitskarten bleiben innerhalb desselben Sets. Quelle: https://polyhaven.com/a/blue_metal_plate .
- `bruchwerk-realismus/stahl2-{diffuse,normal,arm}.jpg`: Poly Haven **metal_plate_02**, CC0, zusammengehöriges 1K-Set für gealterten Stahl. Quelle: https://polyhaven.com/a/metal_plate_02 .
- `bruchwerk-realismus/gummi-{diffuse,normal,arm}.jpg`: Poly Haven **rubber_tiles**, CC0, zusammengehöriges 1K-Set. Quelle: https://polyhaven.com/a/rubber_tiles .
- `beton-*`, `rost-*`, `stahl-*`, `blech-*`, `fels-*`: unveränderte Kopien der bereits dokumentierten Projektsets **concrete_floor_02**, **rusty_metal_02**, **metal_plate**, **corrugated_iron_02** und **grotte_tuff**. Herkunft und Einzelbelege stehen in den zugehörigen Abschnitten dieser Datei. Keine Karten verschiedener Quelloberflächen innerhalb eines Sets gemischt.
- Die zuerst erstellten GLBs (Raupe, Arm, Kettenschuh, Lastmodule, Felsformen): eigene Blender-Konstruktionen, reproduzierbar durch `tools/bruchwerk/realismus-modelle.py`; Cycles-Kontaktverschattung als Vertexfarben gebacken, Meshopt-komprimiert. Keine fremden Fahrzeugmodelle verwendet. Liebherr-Fotografie ausschließlich als betrachtete Konstruktionsreferenz, nicht Bestandteil der Spielauslieferung.

### Ergänzung: ausgearbeitete CC0-Industriebauteile

- `bruchwerk-realismus/werkstatt.glb`: **Modular Factory Facade**, Poly Haven, CC0; Autor(en): James Ray Cock. https://polyhaven.com/a/modular_factory_facade . Aus zusammengehörigen Fassaden-, Fenster-, Tür- und Gesimsmodulen in Blender neu zusammengesetzte Werkstatt. Meshopt und WebP; UV-Zuordnung und Materialtrennung erhalten.
- `bruchwerk-realismus/werkstattwagen.glb`: **Industrial Storage Cart**, Poly Haven, CC0; Autor(en): Jule Bielitz. https://polyhaven.com/a/industrial_storage_cart . Originales Modell mit zugehörigen 1K-PBR-Karten. Meshopt und WebP; UV-Zuordnung und Materialtrennung erhalten.
- `bruchwerk-realismus/betonsperre.glb`: **Concrete Road Barrier**, Poly Haven, CC0; Autor(en): Amal Kumar. https://polyhaven.com/a/concrete_road_barrier . Originales Modell mit zugehörigen 1K-PBR-Karten. Meshopt und WebP; UV-Zuordnung und Materialtrennung erhalten.
- `bruchwerk-realismus/fass.glb`: **Barrel 02**, Poly Haven, CC0; Autor(en): Jorge Camacho. https://polyhaven.com/a/Barrel_02 . Originales Modell mit zugehörigen 1K-PBR-Karten. Meshopt und WebP; UV-Zuordnung und Materialtrennung erhalten.


## SCHROTTSTURM — Werk 09 (2026-09-07)

`assets/schrottsturm/`: Eigene Blender-Hard-Surface-Modelle R-09, Wächter, Schrotthund, Bollwerk, Artillerie, Schrottkran und Kranlast. Urheberische Eigenproduktion für dieses Projekt; reproduzierbarer Blender-Bau und editierbare `.blend`-Dateien unter `src/schrottsturm/tools/`. Keine heruntergeladenen Fremdmodelle.

- `shot.ogg`, `boom.ogg`, `dash.ogg`: Kopien aus Kenney Sci-Fi Sounds; `hit.ogg`, `step.ogg`: Kenney Impact Sounds. **CC0 1.0**; Originalnachweise im gemeinsamen Soundbestand, zusätzliche `Kenney-CC0.txt` im Spielordner. Quelle https://kenney.nl/assets .
- `werkstatt.hdr`: Poly Haven `machine_shop_01_1k.hdr`, **CC0**, unveränderte Kopie aus dem dokumentierten HDRI-Bestand. https://polyhaven.com/a/machine_shop_01 .
- `beton.jpg`, `beton-normal.jpg`: Poly Haven `concrete_floor_02`, **CC0**, aus dem dokumentierten Materialbestand. Diffuse für die Spiellesbarkeit entsättigt und im Kontrast reduziert; Normal unverändert. https://polyhaven.com/a/concrete_floor_02 .
- `archivo.woff2`, `mono.woff2`: Archivo 700 und IBM Plex Mono 400 aus `fonts/immo/`, **SIL OFL 1.1**, Google Fonts; siehe Schriftinventur oben.
- Engine Three.js **MIT** (Lizenz in der statischen Spielausgabe). Eigene Hintergrund-Percussion, keine fremde Musik.

Der eigenständige statische Build kopiert diese benötigten Dateien nach `schrottsturm/data/`, sodass die Spielausgabe ohne das restliche Portfolio hostbar bleibt.


## SCHROTTSTURM — Realismus-Lookprobe (08.09.2026)

Eigene Überarbeitung der Blender-Maschinen und Kranlasten: korrekte sRGB→Linear-Farbwerte, Wartungsklappen, sichtbare Aktuatoren, Befestigungen und gefaste Geometrie. `*-ao.png`: eigene Cycles-Ambient-Occlusion-Bakes auf den UV-Atlanten dieser Modelle, keine fremden Bilder. Reproduzierbar mit `src/schrottsturm/tools/modelle.py`.

- `lack-rost.jpg`: Poly Haven `rusty_metal_02/diffuse.jpg` aus dem vorhandenen CC0-Materialbestand; Quelle https://polyhaven.com/a/rusty_metal_02 . Zur Laufzeit maßstäblich auf Lack-/Stahlflächen abgebildet.
- `stahl-rau.jpg`: ambientCG Metal007-Rauheitskarte aus `texturen/kabinett_metall/`, CC0; Quelle https://ambientcg.com/view?id=Metal007 .
- `beton-arm.jpg`: Poly Haven `concrete_floor_02/arm.jpg`, CC0, passend zu vorhandener Albedo und Normalmap. Die Lookprobe verwendet eine entsättigte, im Kontrast zurückgenommene Ableitung der Beton-Albedo; das zusammengehörige Rauheits-/Normalset bleibt erhalten.
- GTAO und Bloom stammen aus Three.js (MIT); keine neuen Fremdbibliotheken.

Die Spiel-Hauptfassung unter `public/schrottsturm/` bleibt bis zum Stilentscheid unverändert. Die Lookprobe wird separat mit `node src/schrottsturm/tools/build.mjs --look` gebaut.


## SCHROTTSTURM – konstruktiver Neubau R-09 (08.09.2026)

- `schrottsturm/pbr/lack-*`: Poly Haven **Blue Metal Plate**, CC0. Zusammengehörige 2K-Farbe, OpenGL-Normalmap und ARM aus https://polyhaven.com/a/blue_metal_plate . `lack-neutral.jpg` ist eine entsättigte, auf relative Helligkeitsvariation normierte Ableitung für die eigene Lackfarbe. Normal- und Rauheitsstruktur stammen weiterhin aus exakt diesem Scan.
- `schrottsturm/pbr/stahl-*`: Poly Haven **Metal Plate**, CC0, vorhandenes Set https://polyhaven.com/a/metal_plate . `stahl-neutral.jpg` normiert ausschließlich die Farbvariation für die physische Metallreflexion.
- `schrottsturm/pbr/rost-*`: Poly Haven **Rusty Metal 02**, CC0, vorhandenes zusammengehöriges Set https://polyhaven.com/a/rusty_metal_02 .
- `schrottsturm/pbr/wand-*`: Poly Haven **Concrete Wall 008**, CC0, vorhandenes zusammengehöriges Set https://polyhaven.com/a/concrete_wall_008 .
- `schrottsturm/beton.jpg`: tonal beruhigte Graustufen-Ableitung von Concrete Floor 02; passende Normal-/ARM-Karten bleiben erhalten.
- R-09 sowie Drehbank, Druckaggregat und Schaltschränke: eigene Blender-Modelle mit getrennten Baugruppen/Materialmasken, eigener Cycles-AO und Meshopt-Kompression. Quellen unter `src/schrottsturm/tools/r09-neubau.py`, `r09-bauteile.py`, `hallen-maschinen.py` und `r09-pack.py`; editierbare `.blend`-Dateien dort. Brokk-200-Herstellerbild dient ausschließlich als betrachtete Konstruktionsreferenz, ist keine Spieltextur und wird nicht mitverteilt.

- `schrottsturm/player-lod.glb`: vereinfachte eigene R-09-Geometrie für die gemeinsam genutzten Wächtergelenke; 20.504 statt 123.590 Dreiecke im vollständigen Ableitungsmodell. Materialmasken, AO-UVs und bewegliche Baugruppen bleiben erhalten. Keine zusätzliche Fremdquelle.


## CONTACT – Küstenplatte (08.09.2026)

`contact/coastal-cleanplate.png`: mit dem integrierten ImageGen-Werkzeug aus
dem vorhandenen eigenen CONTACT-Poster erzeugte Filmkulisse ohne Maschine.
Kein neues Fremdmaterial, keine CC0-Behauptung. Herkunft, Verwendung und
vollständiger Prompt: [contact/QUELLEN.md](contact/QUELLEN.md).


### Astroglide – Orbitalwerft (08.09.2026)

Fünf eigene Blender-Modelle (Dockrumpf, Sonnensegel, Ringhälfte, Greifer, gefaltete Lamellen) mit vier AO-Atlanten, zusammen rund 8,76 MB, mit reproduzierbarem Bau und Optimierung. Herkunft, Materialaufbau und Quelldateien: [ORBITAL_QUELLEN.md](kernflucht/modelle/ORBITAL_QUELLEN.md). Keine zusätzlichen Drittanbieter-Downloads.


### Astroglide – Glasbruch (08.09.2026)

`kernflucht/modelle/rift_chunk.glb`: eigener kantiger Gletscher-Bruchblock aus Blender 5.2, ca. 53,4 KB; drei verzahnte Kristallkörper mit inneren Spaltrinnen, keine Fremdmodelle oder eingebetteten Fremdtexturen. Reproduzierbarer Bau: `godot/kernflucht/tools/build_rift_chunk.py`; Blenderquelle: `godot/kernflucht/tools/blender-source/rift_chunk.blend`. Der eigene Eis-Shader verwendet die bereits oben dokumentierte CC0-Schneetextur.


### Astroglide – Warp und Werftklang (08.09.2026)

Drei eigene vorgerenderte Stereo-Klänge ohne Fremdaufnahmen oder Downloads: Warp-Antritt, Servogreifer und 90-Sekunden-Orbitalmusik. Erzeugung, Master, Messwerte und Herkunft: [warp-audio.md](../../docs/kernflucht/warp-audio.md). Zusammen ca. 1,58 MiB als OGG; die WAV-Master werden nicht ausgeliefert.


### Aufwind – verbundene Küstenufer (08.09.2026)

`sturmlaeufer/kuestenreise.glb`: eigene Blender-Überarbeitung der vorhandenen Küstenreise, keine externen Assets. Sonnenbucht und Sturmkante als zusammenhängende modellierte Ufer; vorhandene Material-/Vertexfarben-Pipeline. Quelle: `godot/zen-glider/sturmlaeufer/tools/build_full_world.py`, editierbarer Stand `tools/kuestenreise.blend`. Modell10,96 MB (vorher11,84 MB),18 Materialien/46 Primitives.

## Zombie-Korridor (08.09.2026)

Eigene Blender-Figuren und Gehposen, Meshopt-komprimiert in `zombie-korridor/figuren-web.glb`. Keine Fremdmodelle. Gemeinsame Kenney-CC0-Samples, vorhandene Poly-Haven-Betonableitung und vorhandene OFL-Schriften werden wiederverwendet. Einzelbelege und Reproduktionspfad: `zombie-korridor/QUELLEN.md`.

## Astroglide – neue Rauminszenierung (08.09.2026)

Zwei eigene skulptierte Eisgroßkörper (`rift_vault.glb`, `rift_serac.glb`), zusammen 748.160 Bytes. Die finale Hallen- und Bruchfassung ergänzt vier eigene Blender-Modelle (`rift_cataract.glb`, `rift_roof_left.glb`, `rift_roof_keel.glb`, `rift_roof_right.glb`), zusammen 823.032 Bytes. Die drei Dachmodelle stammen aus einem gemeinsam geschnittenen Volumen; die Eisfächerform ist ebenfalls ein eigener Entwurf. Die aktuelle Oberfläche verwendet den unten dokumentierten CC0-Satz Ice004; die eigenen Relief-Bakes der verworfenen Vorgängerfassung sind nicht mehr am aktiven Material gebunden. Reproduzierbarer Blender-Bau und Herkunft: [RIFT_QUELLEN.md](kernflucht/modelle/RIFT_QUELLEN.md). Die neue Montageglocke `orbital_drive.glb` (772.460 Bytes) ist ebenfalls ein eigener Blender-Entwurf mit AO-Karte; Details im fortgeschriebenen [ORBITAL_QUELLEN.md](kernflucht/modelle/ORBITAL_QUELLEN.md). Bestehende dokumentierte Schnee- und Himmelskarten werden weiterverwendet. Der neue freie Eisoberflächensatz ist im Abschnitt Eisoberflächen dokumentiert.


## PORTAL / Nyra (08.09.2026)

Neue eigene Blender-Orte und Resonanzklänge: `portal/`. Herkunft, Lizenz und Erzeugung siehe [portal/QUELLEN.md](portal/QUELLEN.md). Die ursprüngliche Nyra-Stadt, das Observatorium und deren dokumentierte CC0-Materialien bleiben erhalten.

### Astroglide – Eisoberflächen (08.09.2026)

Der freie PBR-Satz [ambientCG Ice004](https://ambientcg.com/view?id=Ice004), **CC0 1.0**, ergänzt die neu geformten Eismassen. Drei unveränderte 1K-JPG-Karten für Farbe, OpenGL-Normalen und Rauheit: 2.695.823 Bytes. Vollständige Dateizuordnung und Lizenzbeleg: [ice004/QUELLEN.md](kernflucht/oberflaechen/ice004/QUELLEN.md). Prozedurale Anbieteroberfläche, kein behaupteter Fotoscan.


## Portfoliofilm „Ideen werden Welten“ (09.09.2026)

`video/trailer.mp4` und `video/trailer-poster.jpg`: eigene Neufassung mit echten laufenden Portfolio-Projekten und Ausschnitten vorhandener eigener Kurzfilme. 2:09 Minuten (128,97 Sekunden), 1920 × 1080, 30 fps. Die ursprüngliche Fassung vor der Neugestaltung bleibt bytegleich unter `video/trailer-original.mp4` mit ihrem eigenen Poster abrufbar. Eigene Remotion-Gestaltung für Auftakt, Buchillustration, Zahlen und Finale. Keine fremden Stock-Szenen.

Musik: das oben dokumentierte **Midnight Drive** von congusbongus (CC0) sowie die eigene Küstenmusik aus Aufwind mit VSCO2-CC0-Klaviernoten; Einzelbelege unter [sturmlaeufer/QUELLEN.md](sturmlaeufer/QUELLEN.md). Filmschriften: Instrument Sans, Instrument Serif und Big Shoulders, jeweils SIL Open Font License 1.1; unveränderte Schriftdateien und OFL-Belege liegen lokal unter `video/assets/schrift/`. Vorhandene Textur-/Modellbelege der gezeigten Projekte gelten weiter.

Vollständige Filmquellen, Rechteinhaber, Verwendungsarten sowie Belege und Grenzen der Wort-/Agentenzählung: [Filmquellen & Zählmethode](video/trailer-quellen.html).

### Portfoliofilm · zweite Schnittrevision (09.09.2026)

Der Film wurde nach der gemeinsamen Sichtung auf 133,466667 Sekunden angepasst. KALIBER zeigt die wirkliche Website in einer durchgehenden Scrollfahrt; Sonnensystem und ORBIT nutzen reduzierte native Zeitregler. Astroglide wurde mit normalen Tastatureingaben durch die Maschinenhalle geflogen. Die Bilder unter `video/spiele-bilder/` sind Ausschnitte eigener vorhandener Browseraufnahmen und Spielvorschauen, keine fremden Stockbilder. Die beiden Übersichten zeigen die kleinen Spiele beziehungsweise Violas Spieleecke gemeinsam; die vorhandene Strohhutpiraten-Szene bleibt zusätzlich bildfüllend. Musikquellen, Kennzahlen und ursprünglicher Film bleiben unverändert. Details und Zählmethode: `video/trailer-quellen.html`.

## Zombie-Korridor · Arsenal und Figurenvarianten (12.09.2026)
Eigene Blender-Waffen und Figuren einschließlich Kriecher/Riese, keine externen Modelle oder Texturen hinzugefügt. Dateien und Reproduktion: `zombie-korridor/QUELLEN.md`.

### Zombie-Korridor: Kreaturen und finales Arsenal · 12.09.2026
Eigene Blender-Modelle: sieben Gegnerformen plus Spieler (64 gebackene Gehposen), sieben Waffenfamilien plus separater Minigun-Rotor. Neue Jagdbestie, Krabbler, Panzerkäfer, Säurewesen, Brecher, Kristallkoloss, Plasma- und Tesla-Modell. Generatoren und editierbare Blender-Dateien unter `src/zombie-korridor/tools/`; Details in `zombie-korridor/QUELLEN.md`. Keine zusätzlichen Fremdassets.

### Zombie-Korridor: Zwölf-Minuten-Ausbau und Bahnvergleich · 12.09.2026
Eigene Blender-Waffen Vortex/Helios ergänzen das Arsenal auf neun Familien. Statische eigene Browseraufnahmen unter `zombie-korridor/vergleich/` dokumentieren51m/63m Fahrbahn. Keine zusätzlichen Fremdassets oder Lizenzen; Generator und Details im bisherigen Zombie-Korridor-Nachweis.

PORTAL-Erweiterung vom 12.09.2026: originale Stadtquartiere, Stimmsegel, Kathedralbögen, Archiviris und Maschinenchor; Details und reproduzierbare Erzeugung ebenfalls unter [portal/QUELLEN.md](portal/QUELLEN.md).

## Motorlabor · Lookprobe (12.09.2026)

`motor/gehaeuse.bin` und `.json`: eigene Blender-Geometrie aus dem lokal importierten Motor-Atelier-Build rückgewonnen (fünf Gehäuse). Originalhash und reproduzierbarer Extraktionsweg: `docs/motor/grundlage.json`, `tools/motor/grundlage-retten.mjs`. `motor/guss-detail.bin`/`.json`: eigene Überarbeitung der Guss-/Öltaschen in Blender; editierbare Quelle `tools/motor/guss-detail.blend`, Generator `guss-detail.py`. Nockenprofile, offene Lager, Laufbuchsen, Steuerkette und Kreuzschliff sind eigene berechnete Geometrie/Texturen. Keine fremden Motor-Modelle verwendet.

Wiederverwendung bereits dokumentierter CC0-Assets: Poly Haven **Studio Small 09** (`hdri/studio_small_09_1k.hdr`, Sergej Majboroda, https://polyhaven.com/a/studio_small_09); ambientCG **Metal007**, Normalmap unter `texturen/kabinett_metall/normal.jpg` (https://ambientcg.com/view?id=Metal007). Schriftdateien aus dem bestehenden lokalen Schriftbestand; keine neuen Downloads.

Motorlabor-Materialpass: feine Gussrauheit als eigene deterministische Mikrohöhen-Textur (`src/motor/gussoberflaeche.js`); die vorhandene Metal007-Normalmap wird ergänzend an bearbeitetem Aluminium verwendet. Die extreme Buchsenansicht ist noch nicht Teil der freigegebenen Lookprobe.

## ASCENT · Startanlagen · 12.09.2026

`ascent/startplatz.glb`: eigenes Küstenrelief und verzweigtes Küstengehölz, lokal mit Blender 5.2 und Sapling erzeugt; reproduzierbar mit `tools/blender/ascent-startplatz.py`. Keine fremden Modelle enthalten. Die Landschaft ist eine gestalterische Küstenannäherung, keine vermessene Rekonstruktion. Wiederverwendet werden die bereits dokumentierten CC0-Sätze Poly Haven leafy_grass (`texturen/wohn_rasen`, Normal/ARM), concrete_floor_02, gebürsteter Stahl (`texturen/stahl_gebuerstet`, bestehender Quellenbeleg) und das Kloofendal-Himmelsfoto/HDRI. Technische Laufgänge, Rohrleitungen und Tische sind eigene maßbasierte Geometrie. Das NASA-Startfoto vom 14.04.2015 dient ausschließlich als betrachtete Kompositionsreferenz und wird nicht ausgeliefert.

### Motorlabor: geschlossene Längsschnitte

`motor/schnitt.bin` / `.json`: eigene abgeleitete Geometrie aus dem rückgewonnenen Motorbestand und den eigenen Gussdetails. Reproduzierbar mit `tools/motor/schnitt.py` in Blender; bearbeitbarer Stand `tools/motor/schnitt.blend`. Keine fremden Modelle. Schnittflächen werden zur Erklärung farblich abgesetzt; keine OEM-Maßangaben.

## DER TURM — Saal: Musik und Musiker (13.09.2026, Codex/Windows-Rechner)

Der nächtliche Konzertsaal hinter der zwölften Etage (`turm/saal/`, `turm/musiker/`,
`turm/musik/`, `turm/finale/`). Gebaut im Übergabepaket, am 14.09.2026 ins Portfolio
zurückgeholt. Ausführliches Rezept: Memory `turm-s1` (Partitur, Transpositionen,
Render-Kette) und `turm/musik/einstimmen/QUELLEN.md`.

| Was | Quelle | Lizenz |
|---|---|---|
| Partitur: Beethoven, Sinfonie Nr. 7 op. 92, 2. Satz (Allegretto) | Mutopia Project, Satz Stelios Samelis, Mutopia-2005/08/21-595 (https://www.mutopiaproject.org/ftp/BeethovenLv/O92/Symphony7_2/); unveränderte Quellen unter `tools/musik/quellen/beethoven7` | Public Domain |
| Instrumentensamples für die zwölf Pultgruppen und das Einstimmen | VSCO 2 Community Edition 1.1.0, Sam Gossner / Simon Dalzell / Elan Hickler (https://github.com/sgossner/VSCO-2-CE) — die 3-GB-Bank bleibt außerhalb Git | CC0 |
| Render-Werkzeug (kein Asset) | sfizz 1.2.3, 48 kHz, Mono-Opus 96 kbit/s VBR | BSD-2 |
| Grundnetz der 29 Musiker (Körper, Hände; Kleidung und Instrumente prozedural in `tools/blender/turm-*.py`) | MakeHuman `base.obj` (`tools/blender/quellen/makehuman/`, Lizenztexte daneben) | CC0 (MakeHuman-Assets) |
| Zupf-/Griffposen der Streicher, Einsturz-Bruchstücke (VAT), Außenbau | Eigenproduktion Blender 5.2 (`tmp/turm/bau`, `tools/blender/vat.py`) | eigene |

## Orbit · unabhängige Datenebenen (18.09.2026)

- `orbit/erdbeben-snapshot.json`: USGS Earthquake Hazards Program, [GeoJSON-Tagesfeed](https://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/all_day.geojson), Abruf 18.09.2026, Feedstand 17.09.2026 22:01:41 UTC. Auf Ereignisse ab M 2,5 reduziert; 32 Einträge, ca. 23 KB. USGS-Daten sind grundsätzlich Public Domain; [Copyright-Hinweise](https://www.usgs.gov/information-policies-and-instructions/copyrights-and-credits). Archivstand ausdrücklich im Produkt gekennzeichnet.
- Datenprüfung in `src/orbit/erdbeben-daten.js` aus [God’s Eye View](https://github.com/bilawalsidhu/gods-eye-view/blob/main/src/layers/earthquakes/records.js), Copyright (c) 2026 Bilawal Sidhu, MIT. Vollständiger Lizenztext unter `orbit/GEV-LICENSE.txt`. Restliche neue Ebenensteuerung und Three.js-Darstellung sind eigene Integration. Bestehende Orbit-Texturen und Datenquellen bleiben mit ihren bisherigen Lizenzen erhalten.
- Separate Entwicklungsprobe `tools/orbit/cesium-probe.html` lädt CesiumJS 1.145 (Apache 2.0), Esri World Imagery mit sichtbarer Anbieter-Attribution und Re:Earth/Mapterhorn-Gelände (CC BY 4.0). Kein Kartenmaterial lokal kopiert. Die Probe wird nicht in Orbit oder das Portfolio eingebunden und löst erst beim Klick Kartenabrufe aus. Produktionsfreigabe der jeweiligen Kartendienste ist Teil der nächsten Stufe.
- Erweiterung der Entwicklungsprobe am 19.09.2026: Google Photorealistic 3D Tiles über den eigenen Cesium-ion-Zugang des Nutzers, nur zur Laufzeit gestreamt. Google-/Cesium-Attribution bleibt sichtbar. Anbieterbedingungen gelten zusätzlich zur CesiumJS-Lizenz; die Kartengeometrie ist weder MIT noch CC0 und wird nicht als Assetpaket übernommen. Erfolgreiche Browserprüfung in Austin. Kein Zugangsschlüssel in Projektdateien.

- Zombie-Korridor, 19.09.2026: eigener Belagerer mit Rostpanzer und Rammbockarmen, acht Gehposen. Blender-Generator `src/zombie-korridor/tools/figuren.py`, gebündelt in `assets/zombie-korridor/figuren-web.glb`; keine Fremdassets. Details: `assets/zombie-korridor/QUELLEN.md`.

- Zombie-Korridor Evolution II,19.09.2026: drei zusätzliche eigene Blender-Figuren (Brüter/Schildträger/Sprinter), eigene Bonus- und Fahrzeuggeometrie sowie drei eigene lokal synthetisierte Funksprüche mit vorhandenem Piper/Thorsten-CC0-Bestand. Details und Generatoren: `assets/zombie-korridor/QUELLEN.md`. Die eingefrorene eigene Vorherfassung liegt unter `assets/zombie-korridor/versionen/overdrive-v1/`.


## Motor Atelier · acht Motorrad- und Automotoren (19.09.2026)

`motor/motoren/{lc4,sh350,cp3,fireblade,m139,m177,f140,w16}.bin` und `.json` sind vollständig eigene Geometrie. Mit Blender modellierte hohle Gehäuse, Bohrungen, Ventiltaschen, Deckel und Flansche; bearbeitbare Quellen in `tools/motor/mehrmotor/`, Generatoren `gehaeuse.py` und `auto-gehaeuse.py`. Keine heruntergeladenen OEM-Modelle, Logos oder Texturen. Laufende Mechanik und Einzelteile entstehen in `src/motor/motorrad-modell.js` und `automotor-modell.js`. Die Hauptabmessungen orientieren sich an den in `docs/motor/mehrmotor/SPEZIFIKATION.md` verlinkten Herstellerdaten; übrige Konturen sind Rekonstruktionen.

Studiolicht: vorhandenes CC0-HDRI **Studio Small 09**, Poly Haven / Sergej Majboroda (Quelle und Lizenz oben dokumentiert). Guss-Normalmap aus eigener deterministischer Berechnung. Vorhandene lokal lizenzierte Schrift Archivo aus `fonts/immo/`; kein zusätzlicher Download. Geometrie je Motor wird erst bei Auswahl geladen, ungefähr 2,6–5,9 MiB unkomprimiert (jeweils nur der gewählte Motor).

## Orbit · vorbereitete Straßen

Drei kleine OSM-Zentrumsnetze für die Vorführung, Stand 19.09.2026. ODbL 1.0, © OpenStreetMap-Mitwirkende. Details und räumliche Grenzen: [orbit/strassen/QUELLEN.md](orbit/strassen/QUELLEN.md).

## GIZEH — Stein, Landschaft und Klang · 19.09.2026

Die folgenden Materialkarten stammen von Poly Haven. Lizenzbeleg: https://polyhaven.com/license (CC0). Die heruntergeladenen 2k-JPEGs werden reproduzierbar durch `tools/gizeh-texturen.mjs` auf 1024² verkleinert und als WebP gespeichert; die Laufzeit korrigiert Farbe und Normalstärke. Sie beschreiben Material, keine archäologische Messung der einzelnen Oberfläche.

| Ausgelieferter Satz | Originalquelle | Lizenz |
|---|---|---|
| `gizeh/texturen/stein` | https://polyhaven.com/a/old_sandstone_02 | CC0 |
| `gizeh/texturen/tura` | https://polyhaven.com/a/sandstone_blocks_08 | CC0 |
| `gizeh/texturen/sand` | https://polyhaven.com/a/sandy_gravel | CC0 |
| `gizeh/texturen/schutt` | https://polyhaven.com/a/rocks_ground_06 | CC0 |
| `gizeh/texturen/fels` | https://polyhaven.com/a/marble_cliff_03 | CC0 |
| `gizeh/texturen/granit` | https://polyhaven.com/a/tiger_rock | CC0 |
| `gizeh/licht/wuestenlicht.hdr` | https://polyhaven.com/a/syferfontein_6d_clear_puresky | CC0 |
| `gizeh/texturen/skulptur` | https://polyhaven.com/a/worn_rock_natural_01 | CC0 |
| `gizeh/licht/wolken.hdr`, `wolken.webp` (4k, aus der Tonwert-JPEG-Vorlage) | https://polyhaven.com/a/kloofendal_48d_partly_cloudy_puresky | CC0 |
| `gizeh/fels/fels.glb` | https://polyhaven.com/a/namaqualand_boulder_03 | CC0 |

`tools/gizeh-ktx.mjs` erzeugt zusätzlich mip-gemappte KTX2-Karten: Farbe und ARM mit ETC1S, Normalen mit UASTC in 512². Der WebP-Satz bleibt als Fallback. Das Felsmodell wird mit `tools/gizeh-fels.mjs` vereinfacht und komprimiert; seine UV-Koordinaten bleiben erhalten. Es dient als gestalterisches Bruchstück, nicht als geologischer Nachweis für Mokattam-Kalkstein. Der Himmel ist farblich angepasst. Es werden keine tatsächlichen Lichtverhältnisse eines bestimmten historischen Tages behauptet.

Geometrie, Materialmischung, Himmel und generierter Raumklang sind eigene Arbeiten. Maße und Beleglagen stammen unverändert aus `src/gizeh/daten/gizeh-daten.json`, mit Einzelquellen in `docs/gizeh/dossier/`. Landschaft zwischen den Stützpunkten, Steinverluste, Tempelaufbauten und Sphinx-Oberfläche sind gestalterische Interpretationen. Keine Bilder der umstrittenen SAR-Rekonstruktionen wurden nachgezeichnet oder eingebunden.

### GIZEH — Kartierung, Plateau und Niltal · 19.09.2026

- **© OpenStreetMap contributors**, [Open Database License 1.0](https://www.openstreetmap.org/copyright). Über Overpass abgerufene Grundrisse, Wege und Felskanten. Originalkoordinaten und abgeleitete Meterdaten werden unter derselben ODbL in `public/gizeh/kartierung/` bereitgestellt. Rekonstruierte Ruinenhöhen, Mauerdicke und Brüche sind gestalterische Ergänzungen, keine OSM-Messungen. 588 Grundrisse erscheinen im heutigen Gräberfeld. Im frühen Zeitzustand werden daraus 215 ausgewählte Mastabas des Ost- und Westfelds rekonstruiert; Höhen und Aufbauten sind Interpretation. Weißer Kalkstein folgt der Einordnung in Dossier 5d §2.10, nicht einer Einzelbefundkartierung.
- **Mark Lehner**, *Drawing d-gen-037 / Map of the Giza Plateau* (1991); in Lehner, Megan Flowers und Rebekah Miracle (Hg.), *ARCE Sphinx Project 1979–1983 Archive*, Open Context (2017), DOI [10.6078/M7CZ356B](https://doi.org/10.6078/M7CZ356B). Zeichnungen **d-gen-037, d-gen-007, d-gen-009, d-ss-001, d-ss-002**, [Archiv](https://archive.org/details/opencontext-101-drawing-d-gen-037), **CC BY 4.0** gemäß den gespeicherten archive.org-Metadaten. Karten und Ansichten dienen der eigenen Geländemodellierung und Sphinx-Skulptur. Abgelesene Höhenpunkte, örtliche Registrierung und Interpretation der Zwischenflächen werden getrennt dokumentiert.
- **SRTM data courtesy of the U.S. Geological Survey.** SRTM-1-Kacheln N29E030 und N29E031, Public Domain; über [Terrain Tiles / Mapzen](https://registry.opendata.aws/terrain-tiles/). Hintergrund: [USGS SRTM](https://www.usgs.gov/centers/eros/science/usgs-eros-archive-digital-elevation-shuttle-radar-topography-mission). Das Fernrelief und der Talflug nutzen ein heruntergerechnetes Höhenraster. Das grobe DSM wird im Nahbereich der Pyramiden durch das lokale Gelände ersetzt.
- **NASA / USGS, Landsat WELD**, jährliches Echtfarbenmosaik, Datensatzdatum **2000-12-01**, bereitgestellt über [NASA GIBS](https://nasa-gibs.github.io/gibs-api-docs/access-basics/), `Landsat_WELD_CorrectedReflectance_TrueColor_Global_Annual`, Stufe 11. US-Regierungsdaten / Public Domain, [USGS Nutzungshinweise](https://www.usgs.gov/faqs/are-usgs-reportspublications-copyrighted). 72 Kacheln werden zu einem 2304 × 2048-Pixel-Mosaik zusammengefügt. Die Aufnahme zeigt eine reale Landschaft aus dem Jahr 2000 und ist keine aktuelle Katasteraufnahme. Keine NASA- oder USGS-Logos werden verwendet.
 
### GIZEH — Ergänzung Bauformen und Hawara, 19.09.2026

- Hawara-Kanal und Feldgrenze: © OpenStreetMap contributors, ODbL 1.0, abgerufen über Overpass. Abgeleitete Kartendaten: `/gizeh/kartierung/hawara.geojson`, lokale Meterkoordinaten: `/gizeh/kartierung/hawara.json`. Kanalbreite, Tiefe, Böschungsprofil und Ackeroberfläche sind gestalterische Ergänzungen; kein antiker Kanal behauptet.
- Sphinx und Tempel: Mark Lehner / ARCE Sphinx Project, Open Context, CC BY 4.0. Eigenständige interpretierende Modellierung nach den Zeichnungen [d-gen-009](https://archive.org/details/opencontext-101-drawing-d-gen-009), [d-gen-006](https://archive.org/details/opencontext-101-drawing-d-gen-006), [d-gen-032](https://archive.org/details/opencontext-101-drawing-d-gen-032) und d-ss-001. Keine Photogrammetrie des heutigen Gesamtmonuments; Gelände und fehlende Bauteile ergänzt.
- Hawara-Bauzeit: Petries Rekonstruktionsidee der 21 Höfe (1912), Public Domain; Höhen, Dachverteilung und Säulenstellungen bleiben Interpretation. Die Ansicht und das Quellenfenster benennen diese Unsicherheit.

### GIZEH — Bearbeitete Kopfgrundlage der Sphinx, 19.09.2026

**danderson4**, [*Statue of Khafre, Egyptian Museum, Cairo*](https://sketchfab.com/3d-models/071b25978c054c73bd179f89c33a5ffe), Fotografien Januar 2020, Photogrammetrie aus 80 Bildern. **[CC BY 4.0](https://creativecommons.org/licenses/by/4.0/)**, durch den Urheber auf der Modellseite und in den öffentlichen Modellmetadaten ausgewiesen, ohne zusätzliche Nutzungseinschränkung. Bezug der lizenzierten Kopie über den öffentlichen [Objaverse-Datensatz von Allen Institute for AI](https://huggingface.co/datasets/allenai/objaverse), `glbs/000-040/071b25978c054c73bd179f89c33a5ffe.glb`.

Verwendung ausschließlich als **bearbeitete Kopfgrundlage**, nicht als Scan der Großen Sphinx: Ausschnitt, veränderte Proportionen, entfernte Bart- und Falkenformen, modellierte Nasenbeschädigung und neue Kalksteinoberfläche. Die diffuse Fotokarte ist stark entsättigt und als zurückhaltende Helligkeitsvariation in Vertexfarben übernommen; die Laufzeit nutzt eine neue Kalksteintextur. Die Zuordnung der Sphinx zu Chephren ist keine Behauptung, ihre Gesichtszüge seien identisch mit dieser Statue. Körper und Einpassung nach den oben genannten ARCE-Ansichten bleiben Interpretation. Reproduzierbarer Bearbeitungsschritt: `tools/blender/gizeh-sphinx-grundlage.py`; die bearbeitete Geometrie liegt in `tmp/gizeh/quellen/werkstatt/sphinx-kopf.json.gz`.

### GIZEH — begehbare Innenräume, 19.09.2026

- **Luca Miatello**, *Examining the Grand Gallery in the Pyramid of Khufu and its Features*, PalArch 7(6), 2010, S.2–3, [Publikation im Digital Giza](https://giza.fas.harvard.edu/pubdocs/972/full/). Nur nachgewiesene Baudetails und Maße: je Wand 25 verschlossene Nischen (Nr.3–27), 24 flache trapezförmige Querschnitte (Nr.4–27), mittlere Nischenmaße und Bandbreiten der Schnitte. Zahlen in `gizeh-galerie-wanddetails.json`; Geometrie ist Eigenbau. Keine Abbildungen, Texte oder Funktions-/Zahlendeutungen übernommen. Individuelle Flickenränder, Verteilung innerhalb der Maßbandbreiten und moderne Brunnenabdeckung sind Rekonstruktion.

- **Rob Tuytel / Poly Haven**, [Medieval Blocks 05](https://polyhaven.com/a/medieval_blocks_05) und [Fine Grained Wood](https://polyhaven.com/a/fine_grained_wood), CC0. Kalkstein-Nahkarten: fugenfreier Einzelstein-Ausschnitt 512² bei 1920/2060 des 4k-Satzes, 128 Pixel überblendet, resultierend 384² auf 0,1875 m. Keine mittelalterlichen Mauerfugen übernommen. Holz: zusammengehörige Karten auf 1024², Breite 0,6 m. Der Kalksatz ist eine Materialanalogie, kein Scan des historischen Tura-Kalksteins; Holz gehört zu rekonstruierten modernen Gehhilfen. Ableitung mit `gizeh-innen-material.mjs --kalk` und `gizeh-innen-holz.mjs`.
- Der feinere Kalksatz der Königinnenkammer stammt aus derselben CC0-Fotografie von Rob Tuytel: 256² bei 2120/510 des 4k-Satzes, 64 Pixel überblendet, resultierend 192² auf 0,09375 m. Ableitung mit `gizeh-innen-material.mjs --koenigin`, anschließend `gizeh-innen-stoffpack.mjs --koenigin`. Drei gedrehte Ausschnitte werden in der Laufzeit stetig gemischt; reduzierte Farbkontraste und eigene unregelmäßige Alterungsfelder nähern die helle Kammeroberfläche an. Auch dieser Satz ist eine Materialanalogie, keine Bestandsaufnahme der Kammer. Gepackte Normalen/Rauheit bewahren die Ausgangskanäle.
- **C. Piazzi Smyth**, *Life and Work at the Great Pyramid*, Band II (1867), S.80/81 und 95–100, Tafel XII, Public Domain, [Originalscan](https://archive.org/details/lifeandworkatgr02smytgoog). Nur tatsächliche British-inch-Vermessungen: 56 Rampenlöcher der Galerie und Vorkammer mit Wandwangen, Nutfolge, Seilnuten und Granitblatt. Keine Übernahme seiner numerologischen Deutungen. Galerie und Große Stufe nach Petrie §§45–47; moderne Holzstufen, Handläufe und Beleuchtung sind eigene angenäherte Besuchseinbauten.
- **Charlotte Baglioni / Poly Haven**, [Granite Tile 03](https://polyhaven.com/a/granite_tile_03), [CC0](https://polyhaven.com/license). `gizeh/innen/cheops/assuan-{farbe,normal,rauheit}.webp` ist ein fugenfreier Ausschnitt des zusammengehörigen 4k-Satzes, identisch ausgeschnitten und an den Rändern überblendet. Ergebnis 768² auf 0,3375 m. Bezeichnung „assuan“ benennt den nachgebildeten Werkstoff; das Bibliotheksmaterial ist kein Scan eines Steins der Cheops-Pyramide. Bezug/Ableitung: `tools/gizeh-innen-material.mjs`; Einzelheiten in `material.json` neben den Karten.
- **W. M. Flinders Petrie**, *The Pyramids and Temples of Gizeh* (1883), Public Domain. Raumgrößen, Steinlagen, beide Deckenfugensätze, Sarkophaghülle/Innenmaße und Deckelnut nach §§51–64. [Digitaler Text](https://petrieproject.com/book/the-pyramids-and-temples-of-gizeh). Königinnenkammer, Kragnische und Bodenbefund nach §§40–44. Maßdaten bleiben in der Hauptdatei; neue Innenmaße in `gizeh-innen-details.json` und `gizeh-koenigin-details.json`. Andrew Bayuks eigene Aufnahmen von 1998 (guardians.net/egypt/gp2.htm und gp4.htm) wurden nur als Raumreferenz betrachtet, nicht übernommen; sie belegen keinen aktuellen Besucherzustand.
- **Clarimma Sessa, Randa Deraz, Olga Popovych, Mehdi Tayoubi, Mohamed Elkarmoty, Hany Helal und Christian U. Grosse**, *Material characterization of stone surfaces in the inner chambers of the Khufu (Cheops) Pyramid: towards informed conservation strategies*, Scientific Reports 16, 12586 (2026), [DOI 10.1038/s41598-026-48805-8](https://doi.org/10.1038/s41598-026-48805-8), CC BY 4.0 für den Artikel. Materialbeobachtungen und eindeutig lesbare Maße der unteren Westwand aus dem Supplement dienen der eigenen Modellierung. Fotos werden nicht als Texturen oder Kulissen eingebunden. Die gesondert kreditierte Übersichtsaufnahme von Subhadip Mukherjee wird ausschließlich als Arbeitsreferenz betrachtet und nicht ausgeliefert.
- Geometrie, Lichtkarten, Werkspurenkarte und angenäherter Raumhall sind eigene Arbeiten. Nicht vollständig dokumentierte Wand-/Bodenfugen, kleine Brüche, genaue Alterungsmuster und Besuchsleuchten sind Interpretationen. Moderne Besucherhilfen sind keine Bestandsvermessung. Der digitale Eintritt macht keine Aussage über heutige touristische Öffnungszeiten oder Zugangsberechtigungen.

### Gesicherte Hawara-Fotoreferenz

Ergänzende Formreferenz: John und Morton Edgar, *The Great Pyramid Passages and Chambers* (1910), [27_edgar.jpg](https://commons.wikimedia.org/wiki/File:27_edgar.jpg), Public Domain, unverändert unter `docs/gizeh/referenzen/untergrund-edgar-1910.jpg`. Grabungsschutt auf dem Foto gehört zum Zustand1909. Andrew Bayuks Untergrundfotos von1998 wurden ausschließlich betrachtet, nicht übernommen.

Heutiger Stadtrand: © OpenStreetMap contributors, ODbL1.0. Original- und abgeleitete Koordinaten mit Lizenzhinweis liegen in `public/gizeh/kartierung/stadtrand.*`. Grundrisse und Gartenflächen sind kartiert; nicht angegebene Gebäudehöhen, Fassaden und Bepflanzung sind eigene Interpretation.

[Hawara Pyramid.JPG](https://commons.wikimedia.org/wiki/File:Hawara_Pyramid.JPG), pastaitaken, 16.09.2006, [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/). Unverändert unter docs/gizeh/referenzen/hawara-pastaitaken-2006.jpg für die unabhängige Formprüfung gesichert; nicht als Laufzeittextur eingesetzt.

## Animationen · Der Helm (12.09.2026 modelliert, 20.09.2026 eingebaut)

`animationen/helm/helm.glb`, `poster.webp`, `poster-hoch.webp`: vollständig eigene Arbeit. Das Modell ist eine Rekonstruktion eines realen Motorrad-Integralhelms nach zehn eigenen Fotos (Astra/Codex, Blender; Generator, Masterdatei und Prüfverlauf unter `tools/helm/`). Die Fotos selbst sind nicht Teil der Auslieferung. Geometrie, das Waben-/Gewebemuster des Futters (`tools/helm/stoff.svg`) und die Studiobeleuchtung sind für diesen Auftrag erstellt; keine externen 3D-Assets, keine Fremdtexturen. Die Standbilder sind Aufnahmen der eigenen Live-Bühne (`tools/helm-standbild.mjs`).

Die Wortmarke SENA ist die Kennzeichnung des fotografierten Originals und gehört ihrem Hersteller. Sie erscheint als Teil der Nachbildung; es besteht keine Verbindung zum Hersteller, und die Seite sagt das beim Stück ausdrücklich. Das Modell wird im Portfolio nur gezeigt, nicht zum Download angeboten.

## Charaktere · 21.09.2026

`charaktere/*.zkc` und `charaktere/manifest.json`: für Zombie-Korridor angepasste Charaktermodelle und vorberechnete Skelettanimationen. Die Grundmodelle sind **von Quaternius**:

- [Ultimate Modular Men](https://quaternius.com/packs/ultimatemodularcharacters.html), CC0 1.0: bekleidete menschliche Figuren für Spieler und infizierte Menschen.
- [Bestiary – Dungeon Monsters Kit](https://quaternius.itch.io/bestiary-dungeon-monsters-kit), kostenlose Standard-Ausgabe mit Imp und Puglin: **Quaternius Asset License v1.0**, https://quaternius.com/license.html . Nutzung und Bearbeitung als Bestandteil dieses fertigen Spiels erlaubt; keine Weitergabe als eigenständiges Modellpaket. Nicht CC0.
- [Universal Animation Library](https://quaternius.itch.io/universal-animation-library), Standard-Ausgabe, CC0 1.0: Geh-, Lauf-, Sprint-, Hock- und Zielposen.

Eigene Arbeit: neun Ausrüstungsfamilien mit zusätzlichen Teilen für Stufe II, angepasste Körperproportionen, aus den Körperoberflächen geformte Panzerung, Materialabstimmung, Retargeting, Handkorrekturen, zwei Detailstufen und GPU-Instanzierung. Generator und interne Originaldateien: `src/zombie-korridor/tools/charaktere/`. `.zkc` enthält gzip-komprimierte Spieldaten, keine allgemeine Asset-Bibliothek. Das alte `figuren-web.glb` bleibt ausschließlich für den Rückweg erhalten und wird von der aktuellen Spielfassung nicht mehr geladen.

- Zombie-Korridor Evolution III (21.09.2026): zwei bearbeitete Quaternius-Bossvarianten, eigene abwerfbare Panzerung und CC0-Todesanimation. Details und unveränderte Lizenzbedingungen: `zombie-korridor/QUELLEN.md`.

## DER TURM · Konzertfoyer (21.09.2026)

`turm/foyer/foyer.glb`, `licht.ktx2`, `licht-profil.ktx2` und zugehörige JSON-Metadaten: eigene Architektur und Lichtberechnung, erstellt mit `tools/blender/turm-foyer.py`, Cycles und OpenImageDenoise; Geometrie und Texturen mit gltfpack verdichtet. Eingebettete Materialtexturen stammen aus dem bereits dokumentierten CC0-Bestand: Poly Haven `marble_01` (`wohn_marmor`), Poly Haven `walnut_veneer` (`kabinett_nussbaum`) und ambientCG `Travertine001` (`grotte_travertin`, nur das Oberflächenrelief) sowie die vorhandene Samt-Normalkarte (`kabinett_samt`). Die Quellen/Lizenzen stehen in den obigen Tabellen. Programmplakat, Beschriftungen und Stadtansicht sind eigene Gestaltung. Fotos des Palais Garnier dienen ausschließlich als betrachtete Architektur-/Lichtreferenz und sind nicht eingebettet.

`turm/foyer/materialien/*.ktx2`: 1024²-Ableitungen des CC0-Bestands, erstellt mit `tools/turm-foyer-materialien.mjs`, ImageMagick und Basis Universal (UASTC, Mipmaps). `putz-normal`/`putz-arm`: Poly Haven `beige_wall_001`; `holz-arm`: Poly Haven `walnut_veneer`; `samt-arm`: Poly Haven `velour_velvet`; `metall-normal`/`metall-rau`: ambientCG `Metal007`; `stein-farbe`/`stein-arm`: ambientCG `Travertine001`. Farbkarten sind sRGB, Normalen-/Rauheitskarten linear. Die Farbfotografie des Travertins wird hier zusätzlich zum eingebetteten Relief auf Fensterbänken, Portal und Garderobentheke verwendet. Polsterhüllen, Keder, Steinprofile, Leuchterfassungen, Türbeschläge und Drucksachen sind eigene Modellierung/Gestaltung.

## DER TURM · Neue Konzertfassung (21.09.2026)

`turm/konzert/konzert.glb`, `licht-*.ktx2` samt JSON: eigene historische Konzertarchitektur, weiterbearbeitet mit `tools/blender/turm-konzert.py`; gewölbte Stuhlschalen und Polster, profilierte Steinabschlüsse, kannelierte Halbsäulen und gedrehte Leuchten. Cycles-Beleuchtung und getrennte UV-Atlanten werden lokal berechnet. Keine Fotos eines fremden Konzertsaals sind eingebettet. Die Spielpartitur auf den Pulten stammt unverändert aus der bereits dokumentierten eigenen Partitur-Aufbereitung.

`turm/konzert/materialien/*.ktx2` und eingebettete Holzfarben: komprimierte Ableitungen des dokumentierten CC0-Bestands `wohn_fischgraet`, `kabinett_nussbaum`, `kabinett_samt` und `wohn_textil`. Putz- und Metallkarten werden aus dem Foyersatz wiederverwendet. Normalen/Rauheit bleiben linear, Farbkarten sRGB; UASTC und Mipmaps via `tools/turm-konzert-materialien.mjs`.

`turm/konzert/koepfe.glb`: bearbeitete **MakeHuman**-Grundtopologie (`base.obj`, SHA-256 `8e761e6624b8f54536409135d1636da63b32486a90d4897f84e121d144f6fb4c`, bereits im Projekt) mit erhaltenen Original-UVs und den Texturen `young_lightskinned_male_diffuse.png` / `middleage_lightskinned_male_diffuse.png` aus dem offiziellen [MakeHuman-Systemassetpaket](https://static.makehumancommunity.org/assets/assetpacks/makehuman_system_assets.html), dort ausdrücklich **CC0**; ergänzend die [offizielle Assetlizenz](https://github.com/makehumancommunity/makehuman/blob/master/LICENSE.md). Nur Kopf/Hals werden dargestellt. Eigene Bearbeitung: gleicher maßstäblicher Hals-/Lidsitz wie im bestehenden Orchester, Unterteilung und vertexbasierte Kurzhaarmaske; keine Darstellung konkreter realer Personen. Herkunftsabruf reproduzierbar mit `tools/turm-haut-quellen.py` (gezielte HTTP-Teilabrufe des Pakets), Modellierung/Kompression mit `tools/turm-konzert-koepfe.mjs`. Rohdateien bleiben im temporären Bauverzeichnis; die Laufzeit lädt das komprimierte Kopfasset, nicht das vollständige Systempaket.

Ergänzung zur Konzertfassung: Die Kopfformen verwenden zusätzlich die CC0-MakeHuman-Makroziele `caucasian-male-young` und `caucasian-male-old` aus dem lokal installierten offiziellen MPFB-Paket; Kopien unter `tools/blender/quellen/makehuman/targets/`. Augenpositionen und Haarproxies werden an dieselbe Form angepasst. Die vier Haarmodelle `short01` bis `short04` samt Texturen und der Anzug `male_elegantsuit01` stammen aus dem oben verlinkten offiziellen CC0-Systemassetpaket. Die Quelldateien enthalten die ausdrückliche CC0-Freigabe von September 2020 (Data Collection AB, Joel Palmius, Jonas Hauquier). Der Anzug wird auf die vorhandenen Sitz-/Stehposen zugeschnitten; seine Ärmel folgen den bereits vorhandenen Spielbewegungen. Reproduzierbare Verarbeitung: `tools/turm-konzert-garderobe.mjs`, `tools/turm-konzert-koepfe.mjs`, `src/turm/konzert-aermel.js`. Die Laufzeitdateien liegen unter `assets/turm/konzert/`; die vorstehenden verkürzten Pfade `turm/foyer/` und `turm/konzert/` bezeichnen ebenfalls Unterordner von `assets/`.

## MOND · Mond, Himmel und Stadtansicht (23.09.2026)

`mond/farbe.jpg`, `mond/farbe-klein.jpg`, `mond/farbe-hd.webp`, `mond/relief.webp`, `mond/relief-klein.webp`: Nahseite des Mondes (Länge −100…+100°) aus dem **NASA SVS CGI Moon Kit** (https://svs.gsfc.nasa.gov/4720): LRO/LROC-WAC-Farbmosaik und LRO/LOLA-Höhenmodell (16 px/°). NASA-Medien sind in den USA gemeinfrei; erbetene Nennung „NASA's Scientific Visualization Studio" steht im Fuß der Seite. Aufbereitung reproduzierbar mit `tools/mond-texturen.mjs` (Zuschnitt, Relief = Höhe minus 115-km-Tiefpass, 8 bit ±4,2 km, WebP/JPEG); Rohdaten nur in `tmp/mond-quellen/` (gitignored).

`mond/farbe-finale.webp` (4096 × 2212): Südhälfte der Mondscheibe, orthografisch vorgerechnet aus `lroc_color_poles_16k.tif` desselben **NASA SVS CGI Moon Kit** (16384 × 8192, LRO/LROC WAC), für das Vollmond-Finale auf großen Schirmen; reproduzierbar mit `node tools/mond-texturen.mjs --nur finale` (Rohdaten nur in `tmp/mond-quellen/`).

`mond/vollmond-klein.webp`, `mond/vollmond-mittel.webp`, `mond/mond-standbild.webp`: aus denselben Karten mit dem eigenen Renderer der Seite (`src/mond/mondrender.js`) gerenderte Standbilder (Listen, Reservierung, Rückfall ohne WebGL).

`mond/skyline.webp` (3680 × 720, Himmel transparent) und die Horizontdaten `src/mond/horizont-daten.js`: Nachtansicht vom Nordkai des Sandtorhafens, gerendert mit `tools/blender/mond-skyline.py` (Blender/Cycles) aus **OpenStreetMap**-Daten (Gebäude, Wasser, Kaianlagen, Kräne, Laternen; Abruf `tools/mond-skyline-daten.mjs`) — **© OpenStreetMap-Mitwirkende, ODbL 1.0** (https://www.openstreetmap.org/copyright); Nennung im Fuß der Seite. Die Elbphilharmonie ist nach OSM-Grundriss und öffentlich bekannten Maßen eigens modelliert, die Traditionsschiffe sind typische, erfundene Modelle an den echten Pontons. Keine Fotos eingebettet.

Sterne: Yale Bright Star Catalogue, 5. Aufl. (Hoffleit & Warren 1991, CDS V/50), als Daten in `src/mond/sternkarte-daten.js` (erzeugt von `tools/mond-sterne.mjs`), gemeinfrei behandelt; Nennung im Fuß der Seite.

Render-Eingaben der Stadtansicht (nicht ausgeliefert, nur im Bild enthalten): Fassaden-Texturen von **Poly Haven** (CC0) — `brick_wall_10` (Dimitrios Savva), `exterior_wall_cladding_02`, `red_brick`, geladen von `tools/mond-skyline-daten.mjs` nach `tmp/mond-skyline/texturen/`; dazu die bereits hier verzeichneten Sätze `wohn_putz`, `concrete_wall_008`, `corrugated_iron_02`, `concrete_floor_02` und `stahl_gebuerstet` aus `texturen/`.

Küstenlinie der Herkunftskarte, `src/mond/kueste-daten.js`: **OpenStreetMap** `natural=coastline` (Nordfriesland bis Elbmündung), abgerufen und vereinfacht mit `tools/mond-kueste.mjs` (Overpass; Rohdaten nur in `tmp/mond-kueste/`) — **© OpenStreetMap-Mitwirkende, ODbL 1.0**; Nennung in der Fußnote der Karte.

`schrift/newsreader-latin.woff2`, `schrift/newsreader-latin-kursiv.woff2`: **Newsreader** (Production Type), variabel 300–500, lateinischer Teilsatz wie von Google Fonts ausgeliefert, selbst gehostet (keine Anfrage an Google). **SIL Open Font License 1.1** (https://openfontlicense.org).

## VIOLA Yerba Mate (`viola-mate/`, 2026-09-23)

Erfundene Getränkemarke als Webshop; Aufbau und Abläufe nach dem Vorbild einer echten Marke, **alle Inhalte eigen**.

| Datei | Herkunft | Lizenz |
|---|---|---|
| `viola-mate/dose.glb` | eigenes Blender-Modell (`tools/blender/viola-dose.py`), gepresst mit gltfpack `-cc -kn -kv -vtf` | eigen |
| `viola-mate/etikett-*.webp` | eigene SVG-Etiketten (`src/viola-mate/etikett.js`), gerendert mit `tools/viola-etiketten.mjs` | eigen |
| `viola-mate/pack-*`, `frei-*`, `diorama-*`, `deckel-*`, `schraeg-*`, `fliegend-*`, `eis-*` | eigene Cycles-Renders (`tools/blender/viola-renders.py`, Serie über `tools/viola-renders.mjs`) | eigen |
| Illustrationen, Wortmarke, Maskottchen Vio | eigene SVG-Generatoren (`src/viola-mate/illu/`) | eigen |
| `schrift/host-grotesk-latin*.woff2` | Host Grotesk von Element Type, Google Fonts (Latin-Teilmenge, variabel 300–800) | SIL OFL 1.1 |
| Umriss Deutschland (`src/viola-mate/deutschland.js`) | Natural Earth 1:50m Admin 0, über das npm-Paket `world-atlas@2` (TopoJSON), umgerechnet mit `tools/viola-deutschland.mjs` | gemeinfrei (Natural Earth) |
| `hdri/studio_small_09_1k.hdr` (Wiederverwendung) | Poly Haven, Sergej Majboroda | CC0 |
| `hdri/studio_small_09_512.hdr` | Ableitung davon (ImageMagick, halbe Kantenlänge) für die Laufzeit-Dose | CC0 |

| `viola-mate/alltag-*` | eigene Cycles-Renders (`tools/blender/viola-alltag.py`): Szenen mit eigener Dose, eigenem Kühlschrank/Steg/Picknickdecke/Kalebasse | eigen |
| Requisiten und Umgebungen **nur im Bild** (nicht ausgeliefert, Rohdateien in `tmp/viola/ph/` über `tools/viola-polyhaven.mjs`): Modelle `wooden_picnic_table`, `wicker_basket_01`, `lemon`, `food_ginger_01`, `round_spectacles`, `binder_notebook`, `potted_plant_02`, `round_wooden_table_01`, `wooden_cutting_board`, `croissant`, `dandelion_01`; HDRIs `meadow_2`, `lake_pier`, `balcony`, `lythwood_terrace` | Poly Haven | CC0 |
| `viola-mate/foto-strand-*` | Fotoplatte „Beach Picnic (Unsplash).jpg“ von **Scott Webb**, Wikimedia Commons (CC0 per Strukturdaten), eigene Dosen per Blender eingesetzt (`tools/viola-platten.mjs`) | CC0 + eigen |
| `viola-mate/foto-wein-*` | Fotoplatte „Outdoor wine dinner (Unsplash).jpg“ von **Serge Esteve**, Wikimedia Commons (CC0), eigene Dose eingesetzt, beschnitten | CC0 + eigen |
| `viola-mate/foto-kaffee-*` | Fotoplatte „Coffee and Friends (Unsplash).jpg“ von **Nathan Dumlao**, Wikimedia Commons (CC0), eigene Dose eingesetzt, beschnitten | CC0 + eigen |
| `viola-mate/foto-skizze-*` | Fotoplatte „Designer sketching Wireframes (Unsplash).jpg“ von **Green Chameleon**, Wikimedia Commons (CC0), eigene Dose eingesetzt, beschnitten | CC0 + eigen |
| `viola-mate/foto-unterschrift-*` | Fotoplatte „Man writing on paper (Unsplash).jpg“ von **Olu Eletu**, Wikimedia Commons (CC0), eigene Dose eingesetzt, beschnitten | CC0 + eigen |
| `viola-mate/foto-matehand-*` | „Mano sosteniendo un mate.jpg“ von **MGeoMedina36**, Wikimedia Commons (CC0), beschnitten | CC0 |
| `viola-mate/foto-matethermos-*` | „Mate with straw and thermos.jpg“ von **Syced2**, Wikimedia Commons (CC0), beschnitten | CC0 |
| `viola-mate/pack-entdeckerbox-*`, `frei-entdeckerbox-*` | eigener Kraftkarton mit eigenem Druck (`tools/viola-karton.mjs`) | eigen |
| Holzoberflächen der Alltagsszenen | Bestand `texturen/wohn_eiche`, `texturen/kabinett_nussbaum` (siehe dort) | wie dort |
| `viola-mate/klang/dose-auf.mp3` (Anriss + Zischen) | Freesound 504140 „Open the can“ von **Mateusz_Chenc** (Vorschau-MP3), geschnitten mit `tools/viola-klang.py` | CC0 |
| `viola-mate/klang/dose-zu.mp3` (Laschenschnapper) | Freesound 61392 „BeerCanOpening.aif“ von **gleepglop** (Vorschau-MP3), ein Klick daraus | CC0 |
| `viola-mate/klang/sprudel.mp3` (Kohlensäure, nahtlose Schleife) | Freesound 256317 „Opening soda can“ von **Kodack** (Vorschau-MP3), Abschnitt 3,2–7,5 s | CC0 |

Form von Deckel, Lasche und Öffnung nach dem allgemeinen Aufbau europäischer Stay-on-Tab-Deckel, abgeglichen an Fotos (Wikimedia Commons, nur angesehen, nichts übernommen).

Händler, Firmenangaben, Strichcodes (EAN-Präfix 20 = interner Gebrauch, nie vergeben) und E-Mail-Adressen (`.example`) sind erfunden.

---

## snaQi-Figuren — `snaqi/` (Eigenproduktion, 24.09.2026)

Keine Fremdquellen, keine Texturen: beide Figuren entstehen vollständig prozedural in
Blender 5.2 (headless) und sind eigene, generische Entwürfe ohne Markenbezug.

| Datei | Inhalt | Erzeugung |
|---|---|---|
| `snaqi/drohne.glb`, `snaqi/drohne-kanten.glb` | 5-Zoll-Freestyle-Quad (volle Fassung / Kantenfassung ohne Fasen für `EdgesGeometry`) | `blender --background --factory-startup --python tools/blender/snaqi-drohne.py -- tmp/snaqi` |
| `snaqi/helm.glb`, `snaqi/helm-kanten.glb` | Integralhelm mit FPV-Brille, ohne Gesicht | `blender --background --factory-startup --python tools/blender/snaqi-helm.py -- tmp/snaqi` |

Gemeinsamer Baukasten: `tools/blender/snaqi_bau.py`. Pressung: nativer
`/opt/homebrew/bin/gltfpack -cc -kn -km` (`-kn` hält die benannten Teile und ihre Drehpunkte).

### Schlange (`snaqi/schlange.glb`) — Gumprechts Grüne Grubenotter, Eigenproduktion

| Datei | Inhalt | Erzeugung |
|---|---|---|
| `snaqi/schlange.glb` | *Trimeresurus gumprechti* als eigene Skulptur: Kopf frontal erhoben, Hals-S, Schlinge; Skelett `wurzel → hals_1 → hals_2 → hals_3 → kopf`, Augen `auge_l`/`auge_r`, Zunge mit Shape Key `raus`; Normal- und AO-Map aus eigenem Hochpoly-Bake | `blender --background --factory-startup --python tools/blender/snaqi-schlange.py -- tmp/snaqi` |

Form, Schuppenrelief (Kopfschilde, Oberkopfmosaik, gekielte Rückenschuppen, Bauchschilde), Iris und
alle Texturen entstehen prozedural im Skript. Es wird **kein Foto** als Textur verwendet, projiziert oder
ausgeliefert.

- **Modellierreferenz Kopf:** WWF-Foto Gumprechts Grüne Grubenotter (Frontalansicht); Lizenz liegt laut
  Sascha vor; Foto wird nicht ausgeliefert (Studienkopie nur in `tmp/snaqi/referenz/`, nicht getrackt).
- **Anatomie-Studie (nur Studie, nicht ausgeliefert), Wikimedia Commons:**
  - „Trimeresurus gumprechti (male).jpg" — Rushenb, CC BY-SA 4.0 (Seitenansicht Kopf, Grube, Labialia, Zunge)
  - „Trimeresurus gumprechti.jpg" — Rushenb, CC BY-SA 4.0 (Rückenschuppen mit dunkler Zwischenhaut)
  - „Trimeresurus gumprechti - Noah Kirkland - 444172907.jpeg" — Noah Kirkland, CC BY 4.0 (Kopf schräg von vorn, Lippenschilde)
  - „Trimeresurus gumprechti - Noah Kirkland - 444172944.jpeg" — Noah Kirkland, CC BY 4.0 (Kielschuppen am gebogenen Rumpf)
  - „Trimeresurus gumprechti 444173205.jpg" — Noah Kirkland, CC BY 4.0 (Kopf-Hals-Absatz, Grube von vorn)
  - „Trimeresurus salazar (10.3897-zse.96.48431) Figure 3.jpg" — CC BY 4.0 (verwandte Art, Kopfprofil)


### Grubenotter als Foto-Figur (AUSGELIEFERT seit 24.09.2026 abends) — Saschas Entscheid

Die Startfigur von `snaqi/` ist **kein 3D-Modell mehr**, sondern das WWF-Foto der Gumprechts Grünen
Grubenotter (Frontalansicht, u. a. spektrum.de „Bilder der Woche“, © WWF). **Lizenz liegt laut Sascha vor.
OFFEN: Rechteinhaber, Lizenzumfang (Web-Veröffentlichung, Bearbeitung) hier nachtragen, bevor die Seite
öffentlich geht.** Dasselbe Foto steht bereits im Exponat der Seite „Animationen“
(`animationen/schlange-still.webp`, `schlange.avif`, `schlange-animation.mp4`).

| Datei | Inhalt | Erzeugung (ImageMagick, aus `tmp/snaqi/referenz/grubenotter-portfolio.png`) |
|---|---|---|
| `snaqi/grubenotter-farbe.webp` | Kopfausschnitt 1024², Freistellmaske im Alpha (Grün-Auswahl, Löcher gefüllt, Kopf-Ellipse als Verlauf) | Ausschnitt 820²+490+40 → 1024; Maske `-fx "(g>0.2 && g>r*1.1 && g>b*1.2)"`, Open/Close, Lochfüllung per Flutfüllung |
| `snaqi/grubenotter-linien.webp` | Schuppenfugen als Linien (Bottom-Hat Disk:4) + Silhouette, mit derselben Ellipse ausgeblendet | für die Konstruktionsdarstellung in `src/snaqi/foto-figur.js` |

**Verworfen, NICHT ausliefern:** `snaqi/drohne*.glb`, `snaqi/helm*.glb` (Figuren-Probe, von Sascha verworfen) und
`snaqi/schlange.glb` (eigenes 3D-Modell, Kopf nach fünf Runden MOCKUP). Sie liegen nur als Arbeitsstand vor.

### Schriften (`schrift/`, 24.09.2026)

- **Big Shoulders Display** (`schrift/big-shoulders-display-latin.woff2`, variabel 700–900, 35 KB) und
  **JetBrains Mono** (`schrift/jetbrains-mono-latin.woff2`, variabel 400–500, 31 KB), beide von Google Fonts,
  Lizenz **SIL Open Font License 1.1**. Nur Teilmenge „latin“.


## Färöer-Startschirm (`faeroer/`, 30.09.2026) — Eigenaufnahmen

Keine Fremdquellen: beide Filme sind Takt-Aufnahmen aus den eigenen Spielen AUFWIND und INSELPOST
(`node tools/snaqi-loop.mjs faeroer-aufwind|faeroer-inselpost`, Pläne in `tools/snaqi-loops.js`),
danach mit ffmpeg zugeschnitten und kodiert (Rezept in `docs/faeroer/BAUPLAN.md`).

| Datei | Inhalt |
|---|---|
| `faeroer/aufwind-{gross,klein}[-av1].mp4`, `aufwind.jpg` | Gleiter durch die Klamm, unter der Felsbrücke hindurch ins Licht (9 s, Schleife über den Grund) |
| `faeroer/inselpost-{gross,klein}[-av1].mp4`, `inselpost.jpg` | Wasserflugzeug im Anflug auf Hvannavík (9 s, Schleife über den Grund) |

Die Wandbilder der Monitorwand (`snaqi-bestof/wand/<id>.webp`) sind Bildschirmaufnahmen der eigenen
Portfolio-Seiten (`node tools/vorschau-screenshots.mjs --gross public/assets/snaqi-bestof/wand`).

## NÉVOA (`nevoa/`, 24.09.2026) — fiktive Wohnanlage auf Madeira

Nachbau der Scroll-Choreografie von era-residence.com mit eigenem Code; kein Bild, keine Schrift und
kein Code der Vorlage wird ausgeliefert (Referenzaufnahmen nur in `tmp/era-madeira/referenz/`, nicht getrackt).

| Datei | Inhalt | Herkunft / Lizenz |
|---|---|---|
| `nevoa/*.webp` (31 Motive) | Architektur-, Innenraum-, Luft-, Wolken- und Blütenbilder einer erfundenen Anlage in Ponta do Sol | **KI-generiert** mit GPT Image 2.5 (OpenAI) von Sascha nach `docs/nevoa/BILDLISTE.md` und `BILDLISTE-2.md`; Nutzungsrechte am Output beim Erzeuger laut OpenAI-Nutzungsbedingungen. Nachbearbeitung: Real-ESRGAN x4plus (BSD-3), ImageMagick (einheitliche Sättigung 92 %, Wolken über die Helligkeit freigestellt), `tools/nevoa-bilder.mjs` |
| `nevoa/bogen-maske.svg` | Maske des Vorlader-Bogenfensters | eigene Zeichnung |
| `schrift/imbue-latin-var.woff2` | **Imbue** (schmale Didone, variabel: optische Größe 10–100, Gewicht 100–900), Latin-Teilmenge wie von Google Fonts ausgeliefert, selbst gehostet | Tyler Finck (ETC), **SIL OFL 1.1** |
| `schrift/mea-culpa-latin.woff2` | **Mea Culpa** (Schreibschrift), Latin-Teilmenge | Robert Leuschke (TypeSETit), **SIL OFL 1.1** |
| `schrift/archivo-latin-breite-var.woff2` | **Archivo** (variabel, Breite 62–125 %, Gewicht 100–900), Latin-Teilmenge | Omnibus-Type, **SIL OFL 1.1** |

Bibliotheken der Seite (npm, gebündelt): GSAP 3.15 mit ScrollTrigger, SplitText, CustomEase
(GreenSock „Standard no charge license“), Lenis 1.3 (MIT).


## PROVIANT (`proviant/`, 25.09.2026) — Speisekammer der Raumstation

Nachbau der Scroll- und 3D-Choreografie von silencio.es mit eigenem Code; kein Bild, Modell, Ton, Text und keine Schrift
der Vorlage wird ausgeliefert (Referenzaufnahmen nur in `tmp/proviant/referenz/`, nicht getrackt).

| Datei | Inhalt | Herkunft / Lizenz |
|---|---|---|
| `proviant/modelle/*.glb` | Getränkebeutel, Tortilla-Packung, Retortenbeutel, Salz-/Pfefferfläschchen, Frachttasche | eigene Modelle (`tools/blender/proviant-pakete.py`, Blender-Stoffsimulation), gltfpack |
| `proviant/texturen/*.webp` | Etiketten, Material- und Knitterkarten, Gewebe | eigene Zeichnung (`src/proviant/etikett.js`, `tools/proviant-texturen.mjs`) |
| `proviant/fotos/*.webp` (11) | NASA-Fotos von der ISS: iss032e010671, iss042e277408, iss034e010326, iss035e016514, iss038e029068, iss032e019019, iss042e017210, iss065e242226, iss068e008036, iss070e133764, iss073e0508106 (images.nasa.gov, Fassung „large“, zugeschnitten und einheitlich gegradet) | **NASA, gemeinfrei**; ohne Logos/Abzeichen, kein Anschein einer Billigung (NASA Media Usage Guidelines) |
| `proviant/klang/*.wav` (4) | Landeklänge im Finale, je Packung ein Einzelklang (Stoffaufschlag, Körper, Folienknistern bzw. Fläschchen-Klacken, Nachsatz), 170 KB | gemischt mit `tools/proviant-klang.mjs` aus **Kenney Impact Sounds** (`sounds/impact-sounds/`: footstep_carpet, footstep_snow, impactSoft, impactGeneric_light), **CC0** |
| `schrift/inter-tight-latin-var.woff2` | **Inter Tight** (variabel 100–600), Latin-Teilmenge von Google Fonts, 45 KB | Rasmus Andersson, **SIL OFL 1.1** |

Piep, Drucker, Reißverschluss und Stationsrauschen werden zur Laufzeit in WebAudio erzeugt (`src/proviant/klang.js`). Nährwerte: NASA,
„ISS Standard Menu Nutritional Data“ (Belege in `docs/proviant/RECHERCHE.md`).

## Farbküche (26.09.2026)

- Mischmodell: [Spectral.js 3.0.0](https://github.com/rvanwijnen/spectral.js/tree/3.0.0), Ronald van Wijnen, MIT. Lokal gebündelt aus `src/farbkueche/vendor/spectral.js`, ausschließlich ESM-Hülle angepasst. Lizenz: `farbkueche/SPECTRAL-LICENSE.txt`.
- Schale, Pigmentkleckse und Spatel: eigene SVG-/CSS-Gestaltung, keine Fremd-Bildassets. Nutzt bereits dokumentierte lokale Host-Grotesk-, Big-Shoulders-Display- und Newsreader-Schriften.


### Faltpost — eigene Papiermotive und lokale Druckdateien (26.09.2026)

- `src/faltpost/zeichnung.js`: Kirschen, Blüten, Schleife und Konfetti sowie alle Schnittmuster sind eigene, eigens für das Projekt konstruierte Vektorgrafiken. Keine fremden Bildassets.
- `assets/faltpost/schrift-pfade.json`: lokale Druckpfade aus den bereits lizenzierten OFL-Schriften Newsreader und Host Grotesk (siehe Schriftabschnitt oben), erzeugt mit `tools/faltpost/schrift-pfade.py`. Kein externer Fontabruf. Schriftgeometrie nur für Vorschau und Vektordruck; Marken der Schriften unverändert.
- `src/faltpost/pdf-lib.js`: pdf-lib 1.17.1, Hopding, MIT. Lokale Kopie aus dem installierten Workspace-Runtime; vollständiger Lizenztext in `src/faltpost/PDF-LIB-LICENSE.md`. Nur beim PDF-Export geladen.

## Zeitreise · Tafel-Fassung (seit 30.09.2026)

Die 3D-Fassung (eigene Blender-Modelle unter `zeitreise/modelle/`, Materialien unter `zeitreise/materialien/`, Poly-Haven-Farn, Three.js-Water) ist entfernt; ihre Nachweise stehen in der Git-Historie bis Commit 7c104f201. Die achtzehn Originalaufnahmen der neuen Fassung (NASA, ESA/Webb, ESO/ALMA, USGS, Smithsonian, gemeinfreie Gemälde und Fotografien) sind mit Lizenz, Quelle und Bearbeitung in `zeitreise/QUELLEN.md` nachgewiesen. Die Schriften `zeitreise/schrift/` (Spectral, Inter; SIL OFL 1.1) bleiben.

- Zombie-Korridor / Der letzte Zug, 27.09.2026: eigener Blender-Bahnhof mit Cycles-Lichtatlas und beweglichem Zug; acht eigene Durchsagen mit vorhandenem Piper/Thorsten-Bestand. Wiederverwendete Quaternius-, Poly-Haven- und Kenney-Ressourcen unverändert unter ihren bestehenden Lizenzen. Einzelaufstellung: `assets/zombie-korridor/zug/QUELLEN.md`.

- Zombie-Korridor / Zug-Arsenal, 27.09.2026: drei eigene Blender-Waffen (Kryowerfer, Kreissägenwerfer, Schwarmraketen) samt Projektilen in `zombie-korridor/zug/arsenal.glb`, Generator `src/zombie-korridor/zug/arsenal-modelle.py`. Zwei eigene sox-Klänge `cryo.ogg` / `saw.ogg`; Glas- und Triebwerksklänge aus dem bereits dokumentierten Kenney-CC0-Bestand. Keine zusätzlichen Fremdlizenzen.

### USB-Spiele · Übernahme 28.09.2026

- DUST RUN 0.6.0: mitgelieferte Modelle, Oberflächen und Bibliotheken unter `demos/dust-run/`. Einzelquellen, Bearbeitungen und Lizenzen bleiben in [CREDITS](../demos/dust-run/assets/CREDITS.md) und `demos/dust-run/vendor/` erhalten. Kein pauschaler CC0-Status.
- VELOCITY 0.6.3: Motorräder, Cockpits, Verkehr und Oberflächen unter `demos/velocity/`. Originalnachweise bleiben in [Grafikquellen](../demos/velocity/credits.html), den jeweiligen Assetverzeichnissen und `vendor/THREE-LICENSE.txt` erhalten.
- Level Devil: übernommene Canvas-Rekonstruktion, weiterhin als unfertiger Zwischenstand gekennzeichnet; [Entwicklungsstand](../demos/level-devil/stand.html). Keine Referenzvideos oder privaten Forschungsunterlagen im Export.
- Portfolio-Vorschauen der drei Spiele sind Bildschirmaufnahmen der gelieferten bzw. lokal geprüften Spiele. Keine neuen Fremdassets für die Integration.

## DUST RUN · Vollausbau (28.09.2026)

Eigene Blender-Modelle (Enduro, Enterbuggy, drei Waffen, Fahrerhaltung aus der vorhandenen CC0-Figur) und zugeschnittene CC0-Waffenklänge aus **The Free Firearm Sound Library** (opengameart.org, CC0) ; Explosionen, Karambolagen und Trümmer daraus tief gestimmt und mit eigener Zufallssynthese gebaut (keine Kenney-Klänge mehr). Die Rohbibliothek (194 MB) liegt nur lokal unter `tmp/dust-run/klang/`, ausgeliefert werden ~370 KB Einzelsamples. Einzelnachweis: `demos/dust-run/assets/CREDITS.md`.
- **Funkstimmen (29.09.2026):** Piper-Stimme `de_DE-kerstin-low` von huggingface.co/rhasspy/piper-voices
  (Modellkarte: Datensatz github.com/rhasspy/dataset-voice-kerstin, **CC0**), lokal in `tools/tts-stimmen/`
  (gitignored). Zusammen mit `de_DE-thorsten-medium` (CC0) spricht sie die 58 Funksprüche unter
  `public/demos/dust-run/assets/funk/` (eigene Texte). Prüfwerkzeug whisper.cpp (Homebrew, MIT) mit Modell
  `ggml-base.bin` (huggingface.co/ggerganov/whisper.cpp, MIT) nur lokal in `~/.cache/whisper/`.
- **Oberflächen (29.09.2026):** Poly Haven (polyhaven.com, **CC0**) `cliff_side`, `damaged_plaster`,
  `rusty_metal_02`, `hessian_230`, `rusty_corrugated_iron` je Farbe/Normalen/Rauheit 1k unter
  `public/demos/dust-run/assets/surfaces/`, neu kodiert (10 → 5 MB).
- **Explosionsballen (29.09.2026):** Kenney „Smoke Particle Assets“ (opengameart.org/content/smoke-particle-assets,
  **CC0**, Lizenzdatei im ZIP), zu drei Atlanten gepackt unter `public/demos/dust-run/assets/fx/`. Nur Grafik –
  Kenney-Klänge bleiben ausgeschlossen.
- **Rotor, Sturm, Seilwinde (29.09.2026):** OpenGameArt, alle **CC0**: „Helicopter Sounds“ (helicopter_0.mp3),
  „Wind“ von IgnasD (Wind.ogg, Wind2.ogg), „Chain Winch Sounds“ (winch.zip). Rohdateien nur lokal unter
  `tmp/dust-run/klang2/`, ausgeliefert ~670 KB (Schleifen als WAV wegen lückenloser Naht).
- **Musik (29.09.2026):** OpenGameArt, beide **CC0**: „The Hunt“ von Sudocolon (opengameart.org/content/the-hunt,
  Fahrt) und „Boss Battle #9 Metal“ von nene (opengameart.org/content/boss-battle-9-metal, Auftakt + Schleife).
  Rohdateien nur lokal unter `tmp/dust-run/musik/`, ausgeliefert ~4 MB MP3 unter `public/demos/dust-run/assets/musik/`
  (`tools/dust-run-klang/musik.sh`).
- **Himmel (29.09.2026):** Poly Haven, **CC0**: „Qwantani Morning (Pure Sky)“ (Salzebene) und „Kloppenheim 07
  (Pure Sky)“ (Werksnacht, natriumorange eingefärbt), je 1k-HDR + verkleinerte Tonemapped-JPG unter
  `public/demos/dust-run/assets/himmel/` (~2,2 MB, `tools/dust-run-himmel.sh`).
- **Kleidung (29.09.2026):** Poly Haven „Fabric Leather 02“ (Rob Tuytel, **CC0**), nur Farbtextur 1k unter
  `public/demos/dust-run/assets/surfaces/`: Abnutzung auf Hemd, Hose, Weste, Handschuhen der CC0-Besatzung (dreiachsig, ohne Relief).
- **Ladefläche (29.09.2026):** Poly Haven „Green Metal Rust“ und „Metal Plate“ (Rob Tuytel, **CC0**), je 1k
  Farbe/Normalen/Rauheit unter `public/demos/dust-run/assets/surfaces/` (~1 MB).

## ASTROGLIDE (three.js-Neubau, ab 28.09.2026) — `astroglide/`

| Datei/Ordner | Herkunft | Lizenz |
|---|---|---|
| `astroglide/modelle/*.glb` | eigene Blender-Modelle der Godot-Fassung (`godot/kernflucht/assets`, Quellen in `godot/kernflucht/tools/blender-source`), mit gltfpack gepresst (`tools/astroglide/modelle-pressen.sh`) | eigen |
| `astroglide/erde/tag_4k.jpg`, `wolken_4k.jpg` | verkleinert aus `texturen/planeten/erde/tag_8k.jpg` / `wolken_8k.jpg` (Solar System Scope) | **CC BY 4.0** — Nennung auf dem Titelschirm (`.abspann`) |
| `astroglide/ton/musik-station.ogg`, `triebwerk`, `warp`, `bruch`, `durchlass`, `treffer-huelle` | eigene Klänge der Godot-Fassung, nach Opus gewandelt (`tools/astroglide/ton-bauen.sh`) | eigen |
| `astroglide/ton/puls-*`, `explosion-*`, `wumms`, `treffer-metall`, `schild`, `einschlag` | Kenney Sci-Fi Sounds (`sounds/sci-fi-sounds/`), nach Opus gewandelt | CC0 |
| mitgenutzt: `ir/R1NuclearReactorHall.m4a` | OpenAIR (siehe oben) | **CC BY-SA** — Nennung auf dem Titelschirm |
| mitgenutzt: `texturen/sterne/milchstrasse_nasa_4k.jpg`, `texturen/planeten/erde/nacht.jpg`, `texturen/metal_plate/` | siehe oben | wie oben |
| mitgenutzt: `sektor/drohne.glb` (+ Karten) | SEKTOR-7-Bestand | eigen |
| `astroglide/modelle/heldenschiff.glb` | eigenes Blender-Modell, per Skript gebaut (`tools/astroglide/blender/heldenschiff.py`, Bau `tools/astroglide/schiff-bauen.sh`), AO in Cycles gebacken | eigen |
| `astroglide/modelle/orbital_*.glb` (Welt 3) | Astras Blender-Module der Godot-Welt „Orbitalwerft" (`godot/kernflucht/assets/orbital_*`), mit gltfpack gepresst; die Einspritzplatte der Triebwerksglocke schneidet die Laufzeit heraus | eigen |
| `astroglide/ton/musik-glasbruch.ogg`, `musik-werft.ogg` | eigene Partituren der Godot-Fassung (`glasmeer-score.wav`, `orbital-score.ogg`), Werft 11 dB leiser auf −30 LUFS angeglichen | eigen |
| `astroglide/ton/servo.ogg` | eigener Klang der Godot-Fassung (`orbital-servo.ogg`) | eigen |
| `astroglide/ton/zuendung.ogg` | Mischung aus Kenney `spaceEngineLarge_001`, `thrusterFire_002`, `lowFrequency_explosion_000` (Rezept in `tools/astroglide/ton-bauen.sh`) | CC0 |
| `astroglide/ton/glas-a/b/c.ogg` | Kenney Impact Sounds (`impactGlass_heavy_000/002/004`) | CC0 |
| `astroglide/texturen/eis-normal.jpg` | ambientCG Ice004 NormalGL (Lennart Demes, siehe `kernflucht/oberflaechen/ice004/QUELLEN.md`), neu kodiert (JPEG q90) | CC0 |
| mitgenutzt: `texturen/planeten/saturn/` (Welt 2, Ringplanet) | Solar System Scope | **CC BY 4.0** — Nennung auf dem Titelschirm |

## FOX DASH · three.js-Neubau (28.09.2026)

Seite `fox-dash.html`, Module `src/foxdash/`, eigene Laufzeitdateien in `foxdash/`. Ersetzt die Godot-Fassung (`godot/fennek/`, bleibt lokal als Quelle, reist nicht mehr mit).

| Datei / Bestand | Herkunft | Lizenz |
|---|---|---|
| `foxdash/fennek.glb` | Eigenproduktion: Blender-Skript `tools/blender/foxdash-fennek.py` (Metaballs → Remesh, 29 Knochen, eigene Gewichtung) | eigen |
| `foxdash/visual-meerglas.glb`, `visual-palm/-fern/-grass/-flower/-cliff/-cliff-b/-spire.glb` | Kopien der Eigenproduktionen aus der Godot-Fassung (siehe „FENNEK · lokale Wiederverwendung"); Felsen, Nadel und Palme 28.09. mit gltfpack vereinfacht | eigen |
| `foxdash/musik/act1–3.m4a`, `sieg.m4a` (+ `.json` Schleifenpunkte) | Eigene Kompositionen, gerendert mit dem Offline-Synthesizer `tools/foxdash-musik.mjs`; Schlagzeug-Samples aus `audio/drums/` und `audio/edrums/` (drum_sklad, Public Domain, siehe oben) | eigen / PD |
| Klänge | Synthese in `src/foxdash/ton.js` plus Kenney-Samples aus `sounds/impact-sounds/`, `sounds/sci-fi-sounds/`, `sounds/interface-sounds/` (Glas, Planken, Glocke, Punch, Metall, explosionCrunch, thrusterFire, select/confirmation/back) — zur Laufzeit direkt aus dem Zentralbestand geladen | CC0 |
| Texturen | Vorhandene CC0-Sätze: `texturen/wohn_rasen`, `texturen/grotte_tuff`, `ascent/sand`, `texturen/wohn_eiche`; Himmel `ascent/himmel-4k.jpg` (Wolkenmaske) und `hdri/kloofendal_48d_partly_cloudy_puresky_1k.hdr` (Poly Haven) | CC0 |
| Fahrbahn, Bordsteine, Loop-Band, Sandstein-Quader, Pads | im Canvas berechnet (`src/foxdash/welt/texturen.js`) | eigen |
| Schrift | `schrift/archivo-latin-breite-var.woff2` (Archivo, vorhandener Bestand) | SIL OFL 1.1 |

Keine fremden Spielfiguren, Melodien oder Markenzeichen; der Fennek ist bewusst keine Igel-Silhouette (keine Stacheln, Handschuhe oder roten Schuhe), Meerglas statt Ringe.

## AUGENMASS · Schätzspiel (29.09.2026)

Seite `augenmass.html`, Module `src/augenmass/`. Die 247 Silhouetten liegen nicht als Bilddateien vor, sondern als Pfaddaten in `src/augenmass/daten/<kategorie>.json`: gerastert, geschwellt und mit potrace neu vektorisiert (`tools/augenmass/silhouette.mjs`). **Jeder Eintrag trägt Autor, Lizenz und Quell-URL** und erscheint im Spiel unter „Bildnachweise & Quellen“; dort steht auch je Maß die belegende Quelle. Quelldateien und Listen liegen in `tools/augenmass/roh/` und `tools/augenmass/quellen/`.

| Bestand | Herkunft | Lizenz |
|---|---|---|
| Tierreich (42), Urzeit (38) | vor allem PhyloPic (phylopic.org), einzelne Wikimedia Commons | CC0 / PDM; **CC BY 3.0/4.0** (u. a. Scott Hartman, Russell Engelman, DBCLS, Edwin Price, Roberto Díaz Sibaja); **CC BY-SA** nur Pferd (Commons, 4.0) und Salzwasserkrokodil (Smokeybjb, 3.0), weil keine passende freie Seitenansicht existierte |
| Bauwerke (39) | Wikimedia Commons (Jahobr, GDJ/Openclipart, Mirefek, PD-Zeichnungen); **CC BY 3.0**: One WTC, Empire State, Chrysler (FOX 52, Ausschnitt), Olympiaturm (chris 論, Ausschnitt); 21 eigene Zeichnungen nach belegten Maßen (`roh/bauwerke/_zeichnungen.py`) | CC0 / PD / CC BY 3.0 / eigen |
| Fahrzeuge (38) | Wikimedia Commons (PD, u. a. Vergleichsgrafik von Fosnez; CC0); **CC BY**: Optimist (Gustavb, 2.5), Chinook (Jetijones, 3.0), ASK 21 (Andrew Watson, 4.0), Concorde (bagera3005, 3.0); **CC BY-SA 4.0**: U-Boot VII C (Goran tek-en); 7 eigene Zeichnungen | PD / CC0 / CC BY / CC BY-SA / eigen |
| Alltag & Sport (41) | 40 eigene Zeichnungen exakt nach Normmaß (`roh/alltag/_zeichnungen.py`), Mensch von PhyloPic | eigen / CC0 |
| Raumfahrt & All (49) | NASA/JPL-Aufnahmen und -Zeichnungen (PD-USGov) über Commons; **CC BY 4.0**: Itokawa und Ryugu (JAXA/ISAS); Planeten, Monde, Sterne als berechnete Kreise/Ellipsen, Raketen nach Maßen gezeichnet (`roh/weltall/zeichnungen/`) | PD / CC BY 4.0 / eigen |
| Klänge | Kenney Interface- und Impact-Sounds (`sounds/…`, zur Laufzeit aus dem Zentralbestand) | CC0 |
| Schriften | `schrift/imbue-latin-var.woff2`, `newsreader-latin*.woff2`, `ibm-plex-mono-latin-normal-*.woff2` (Bestand) | SIL OFL 1.1 |

CC-BY-SA-Umrisse (3 Stück) stehen als Bearbeitung unter derselben Lizenz; Nennung im Spiel. Keine Logos, keine Markenzeichen im Bild; Burj al Arab und Atomium bewusst weggelassen (Formmarke bzw. aktiv durchgesetzte Bildrechte).

## INSELPOST — Motor und Möwen (29.09.2026)

`inselpost/motor-leerlauf.mp3`, `motor-reise.mp3`, `motor-voll.mp3`: Sternmotor-Aufnahmen einer C-47 von
**craigsmith** (Freesound 437838, 437836), **CC0**. `inselpost/moewen.mp3`: „Many seagulls“ von
**Ambientsoundapp** (Freesound 537853), **CC0**. `inselpost/turbo-leerlauf.mp3`, `turbo-reise.mp3`,
`turbo-voll.mp3`: Dash 8 Q400 von **mycompasstv** (Freesound 476932), **CC0**, für die Turboprops der Flotte.
Ausschnitte, Schleifen-Rezept und Prüfdatum: [inselpost/QUELLEN.md](inselpost/QUELLEN.md).

`inselpost/flotte/beaver.glb`, `twinotter.glb`, `loeschboot.glb`, `linie.glb` (30.09.2026): **komplett selbst gebaut**
(`tools/blender/inselpost-flotte.py`, Blender 5.2, gebackene AO, `gltfpack -cc -kn -km`); Kennungen als Geometrie aus
Blenders eingebauter Textobjekt-Schrift. Details: [inselpost/QUELLEN.md](inselpost/QUELLEN.md).

## Spieleecke · Das Baumhaus (29.09.2026) — `spieleecke/`

Hub-Diorama der neuen Spieleecke, **komplett selbst gebaut**: Geometrie aus
`tools/blender/baumhaus.py` (Blender 5.2, headless), Licht in Cycles gebacken
(COMBINED, nur diffus) und als Atlas entwickelt.

| Datei | Inhalt | Herkunft |
|---|---|---|
| `spieleecke/baumhaus.glb` | Insel, Baum, Haus, Stube, Flammen, Glas + leere Marken (Glut, Dinge, Kameraziele) | eigenes Skript |
| `spieleecke/baumhaus-aussen.webp` | Lichtatlas außen (4096²) | eigener Bake |
| `spieleecke/baumhaus-stube.webp` | Lichtatlas Stube (4096²) | eigener Bake |

**Schrift im Namensschild „VIOLA & CARLO":** Fredoka (Google Fonts, Milena
Brandão), **SIL Open Font License 1.1** — die Buchstaben sind als Geometrie in
das Modell eingebaut (erlaubt; die Schrift wird nicht weiterverteilt). Die
TTF liegt nur lokal unter `tmp/baumhaus/` als Bauzutat.

## Spieleecke · Die Teichschlacht (29.09.2026) — `spieleecke/teich-*`

Bühne für „Schiffe versenken" (Etappe B5), **komplett selbst gebaut**:
Geometrie aus `tools/blender/teich.py` (Blender 5.2, headless), Licht in
Cycles gebacken (COMBINED, nur diffus), ausgeliefert mit
`tools/spieleecke-teich-ausliefern.mjs`. Keine fremden Assets; Klänge
synthetisch (`src/spieleecke/teich/klang.js`).

| Datei | Inhalt | Herkunft |
|---|---|---|
| `spieleecke/teich.glb` | Teich-Diorama (Wiese, Ufer, Schilf, zwei Stege, Froschfelsen) + Figuren (Seerosen, Papierschiffe, Kapitän Frosch, Kiesel, Boje, Überraschungstiere) + Marken | eigenes Skript |
| `spieleecke/teich-umgebung-2048.ktx2` / `-1024.ktx2` / `.webp` | Lichtatlas Umgebung | eigener Bake |
| `spieleecke/teich-figuren.webp` | Lichtatlas Figuren | eigener Bake |

## PORTAL · Klang, Runde 3 (29.09.2026) — `portalwelt/ton/`

Schritte auf Stein und der tiefe Schlag für Ereignisse kommen aus dem vorhandenen
Kenney-Bestand (`sounds/`), alles andere ist Laufzeit-Synthese in `src/portal/ton.js`.
Ausführlich: `portalwelt/QUELLEN.md`.

| Datei | Herkunft | Lizenz |
|---|---|---|
| `portalwelt/ton/schritt-stein-0…4.mp3` | `sounds/impact-sounds/footstep_concrete_000…004.ogg` (Kenney Impact Sounds), Mono, normalisiert, MP3 96 kbit/s | CC0 |
| `portalwelt/ton/boom-tief-0.mp3`, `boom-tief-1.mp3` | `sounds/sci-fi-sounds/lowFrequency_explosion_000/001.ogg` (Kenney Sci-Fi Sounds), Mono, normalisiert, MP3 96 kbit/s | CC0 |

- Zombie-Korridor / Fluchtfinale (29.09.2026): eigene Blender-Ausfahrtsperre, Transporthindernisse und Trittstufe sowie fünf eigene Piper/Thorsten-Funksprüche; rund 411 KB zusätzliche komprimierte Assets. Reproduktion und Herkunft: `zombie-korridor/zug/QUELLEN.md`.

---

## MAUERSEGLER — Oberflächen (Poly Haven · CC0)

Quelle: **Poly Haven** (https://polyhaven.com) · Lizenz **CC0** · JPG, 1k · Normalen in OpenGL-Konvention (`nor_gl`).
Geladen am 2026-09-29 auf Saschas Freigabe („ok, los“). Einsatz: Detail über den prozeduralen Fassaden- und Straßen-Shadern
von MAUERSEGLER (`src/mauersegler/stadt/fassade.js`, `boden.js`) — aus der Nähe (Wandlauf, Straße) echte Oberfläche.

| Datei (in `mauersegler/texturen/`) | Poly-Haven-ID | Autor | Zweck |
|---|---|---|---|
| `large_red_bricks_{diff,nor_gl}_1k.jpg` | large_red_bricks | Rob Tuytel | Backsteinfassaden (rot/braun, eingefärbt nach Palette) |
| `large_sandstone_blocks_{diff,nor_gl}_1k.jpg` | large_sandstone_blocks | Rob Tuytel | Kalkstein-/Quaderfassaden |
| `clean_asphalt_{diff,nor_gl}_1k.jpg` | clean_asphalt | Dimitrios Savva | Fahrbahn der Alleen und Querstraßen (Farbe und Relief) |


### MAUERSEGLER — Held und Stadtbausätze (Blender, 30.09.2026)

Alles unter `mauersegler/` außer den Poly-Haven-Texturen und der Musik (vier CC0-Titel von opengameart.org, unten) ist Eigenbau (Blender headless, Python; Stimme lokal mit Piper).

| Datei | Erzeuger | Inhalt | Herkunft / Lizenz |
|---|---|---|---|
| `held.glb` | `tools/blender/mauersegler-held.py` | Heldenkörper (MakeHuman-Athlet auf dem UAL-Skelett), Helm, Flosse, Manschetten, Rückenplatte, Stiefel, 9 Bewegungen | Körper: MPFB 2 / MakeHuman, Ausgabe **CC0**; Skelett + Clips: Quaternius Universal Animation Library, **CC0**; Ausrüstung: Eigenbau |
| (nicht ausgeliefert) `tools/blender/quellen/mauersegler/ual-skelett.glb` | — | Quellablage: Quaternius-Gliederpuppe mit Skelett und neun Bewegungen, Eingang für `mauersegler-held.py` | Quaternius UAL, **CC0** |
| `modelle/fahrzeuge.glb` | `tools/blender/mauersegler-fahrzeuge.py` | Limousine, SUV, Lieferwagen, Stadtbus, Taxischild — generisch, ohne Marken | Eigenbau |
| `modelle/bausatz.glb` | `tools/blender/mauersegler-bausatz.py` | 21 Dach- und Straßenrequisiten (Klima, Lüfter, Dachaufgang, Oberlicht, Antenne, Wasserturm, Laterne, Ampel, Hydrant, U-Bahn-Abgang …) | Eigenbau |
| `modelle/baeume.glb`, `modelle/laub.png` | `tools/blender/mauersegler-baeume.py` | vier Bäume mit Fernstufen, Blattatlas (in Blender gerendert) | Eigenbau |
| `modelle/passanten.glb`, `modelle/passanten.json` | `tools/blender/mauersegler-passanten.py` | vier Passanten (je < 900 Dreiecke) plus Nahstufe `<name>_nah` (1,8–2,2 k Dreiecke, Gesicht, Kleidungsdetail, Tasche/Rucksack), Körperteil/Farbzone in den Vertexfarben | Körperform: MPFB 2 / MakeHuman, Ausgabe **CC0**; Kleidung: Eigenbau |
| `modelle/auftrag.glb` | `tools/blender/mauersegler-auftrag.py` | Auftrags-Bausatz: Lastendrohne mit Rotor, Kuriertasche, Kurierstation (Schrank mit Rundumleuchte), Landeplatz — 85 KB | Eigenbau |
| `modelle/platz.glb` | `tools/blender/mauersegler-platz.py` | Platzmöbel für den Lichtplatz: Cafétisch mit drei Stühlen, Pflanzkübel mit Beet, Imbisswagen, Zeitungskiosk, Litfaßsäule (Plakat-UV), Poller, Bank — 7,6 k Dreiecke, 162 KB | Eigenbau |
| `werbung/*.jpg` | `tools/blender/mauersegler-werbung.py` | Zehn Werbefotos für die Tafeln am Lichtplatz (Studio-Renderings, Cycles, 820 × 512), Produkte aus eigener Geometrie; Taxi aus `fahrzeuge.glb`, Oper mit `held.glb` | Eigenbau |
| `funk/*.mp3`, `funk/funk.json` | `tools/mauersegler-funk.mjs` | 25 Funksprüche der Leitstelle (Aufträge), 577 KB | Piper-Stimme `de_DE-thorsten-medium` (Thorsten-Voice-Datensatz, **CC0**), lokal gesprochen; Funkstrecke mit sox |
| `musik/erkundung.mp3` | `tools/mauersegler-musik.mjs` | „Star On The Horizon“ von **vitalezzz** — https://opengameart.org/content/star-on-the-horizon (geschnitten 0–193,5 s, auf −16 LUFS, MP3) | **CC0** (Seite: „License(s): CC0“), Download 30.09.2026 auf Saschas Freigabe |
| `musik/schwung.mp3` | `tools/mauersegler-musik.mjs` | „Planetary Assault“ von **vitalezzz** — https://opengameart.org/content/planetary-assault (36–197,5 s) | **CC0**, Download 30.09.2026 auf Saschas Freigabe |
| `musik/nacht.mp3` | `tools/mauersegler-musik.mjs` | „Lights at Night“ von **Tsorthan Grove** — https://opengameart.org/content/lights-at-night (0–248 s) | **CC0** („No Rights Reserved“), Download 30.09.2026 auf Saschas Freigabe |
| `musik/fanfare.mp3` | `tools/mauersegler-musik.mjs` | „Just a random fanfare“ von **Spring** — https://opengameart.org/content/just-a-random-fanfare (0–9 s, ausgeblendet) | **CC0**, Download 30.09.2026 auf Saschas Freigabe |


---

## PORTAL · Nyra N2 Fassaden (30.09.2026) — `portalwelt/tex/fassade-a.jpg`, `fassade-b.jpg` (Poly Haven · CC0)

Quelle: **Poly Haven** (https://polyhaven.com) · Lizenz **CC0** · 1k, JPG (`diff`, `nor_gl`, `arm`), geladen am 30.09.2026 auf Saschas Freigabe.
Vier Sätze, zu zwei Datenatlanten (je 1024 x 1024, 2 x 2 Kacheln) gepackt; die Farbe kommt aus dem Shader
(`src/portal/bau/fassade.js`), aus den Fotos nur Relief, Rauheit, Helligkeitsstreuung, AO und Metallmaske.

| Poly-Haven-ID | Autor | Download (3 Karten) | Rolle |
|---|---|---|---|
| `white_stucco` | Amal Kumar | 1,81 MB | Feinkorn Elfenbein-Keramik (Familie 0) |
| `concrete_tile_facade` | Charlotte Baglioni | 2,20 MB | geriffelte Obsidian-Paneele (Familie 1) |
| `metal_plate_02` | Rob Tuytel | 1,89 MB | Kupferbleche mit Abrieb (Familie 2) |
| `blue_metal_plate` | Rob Tuytel | 1,05 MB | lackierte Bronzefläche (Familie 3) |

Roh-Download zusammen 6,95 MB (nicht im Repo); Laufzeitdateien `fassade-a.jpg` 329.098 B + `fassade-b.jpg` 325.187 B.
Reproduzierbar mit `bash tools/portal/fassaden-atlas.sh`; Einzelheiten in `portalwelt/QUELLEN.md`.

## Sonnensystem · Tranquility Base (P2, 30.09.2026) — `sonnensystem/tranquility/`

Das Mond-Panorama zeigt den Apollo-11-Landeplatz am 21.07.1969 (Mondspaziergang).

- `gelaende.bin`: Radialnetz um den Standpunkt 18 m südsüdöstlich der Fähre, aus dem **LROC NAC DTM `NAC_DTM_APOLLO11`** (2 m/px) über den PDS-Pfad `pds.lroc.im-ldi.com/data/LRO-L-LROC-5-RDR-V1.0/LROLRC_2001/DATA/SDP/NAC_DTM/APOLLO11/` — PDS-Daten sind gemeinfrei; Nennung „NASA/GSFC/Arizona State University". Aufbereitung mit `tools/sonnensystem/tranquility-gelaende.py` (DTM leicht geglättet gegen Stereo-Stufen, Mondkrümmung, Kleinkrater und richtungsloses Feinrelief unter der DTM-Auflösung, gebackene Sonnensicht und Verdeckung; der ~1-m-Buckel der Abstiegsstufe im DTM herausgerechnet).
- `eagle.glb`: **Apollo Lunar Module**, NASA/Michael D. Carbajal ([NASA 3D Resources](https://science.nasa.gov/3d-resources/apollo-lunar-module/), NASA-Medien, frei nutzbar ohne behauptete Unterstützung durch NASA). Mit `tools/blender/lm-eagle.py` maßstäblich gemacht und das Fahrwerk nach den Maßen des LM (Spannweite 9,45 m, Teller Ø 0,94 m, Sonden 1,73 m) neu gebaut; Folien aus **ambientCG Foil001/Foil002** (CC0, https://ambientcg.com); gltfpack/KTX2.
- `fels1.glb` … `fels7.glb`: **Poly Haven moon_rock_01 … 07** (CC0, https://polyhaven.com) — je drei Detailstufen, `tools/blender/mondfelsen-kit.py`, gltfpack/KTX2 (Farbe 1k, Normalen 512).
- `regolith-a.ktx2`/`regolith-a-normal.jpg`, `regolith-b.ktx2`/`regolith-b-normal.jpg`, `spuren.ktx2`/`spuren-normal.jpg`: **Poly Haven moon_02, moon_dusted_01, moon_footprints_01** (CC0) — Farbe als KTX2 (ETC1S, 2k), Normalen 1k JPG.
- `eagle-has-landed.mp3`: Funkspruch „Tranquility Base here. The Eagle has landed." (Neil Armstrong, 20.07.1969) aus den NASA Historical Sounds (`569462main_eagle_has_landed.mp3`), NASA, gemeinfrei.
- Flagge, Seismometer, Laserreflektor, Fernsehkamera und Sonnenwindsegel sind im Code aus den Maßen gebaut (`src/sonnensystem/tranquility/faehre.js`, `experimente.js`).
- Sonne und Erde zum Zeitpunkt: eigene Rechnung nach Meeus, *Astronomical Algorithms* (`tools/sonnensystem/apollo11-himmel.py`).

## Sonnensystem · Nahansicht (P3/N1–N2, 30.09.2026) — `texturen/planeten/`

- `mond/albedo_4k.jpg`: LRO/LROC-WAC-Farbmosaik (`lroc_color_poles_8k.tif`) aus dem **NASA SVS CGI Moon Kit** (https://svs.gsfc.nasa.gov/4720; NASA, gemeinfrei; Nennung „NASA's Scientific Visualization Studio"), auf 4096 × 2048 verkleinert und kanalweise an Ton und Kontrast der Bestandskarte angeglichen. Nur im Lern-Modus (Desktop) geladen.
- `mond/hoehe.webp`: Mondrelief aus **LRO/LOLA** (`ldem_16_uint.tif`, derselbe Kit): Höhe minus 115-km-Tiefpass, ±4,2 km auf 8 bit, verlustfreies WebP 4096 × 2048 — `tools/sonnensystem/mond-hoehe.py`. Ersetzt im Lern-Modus das aus der Helligkeit geratene Relief.
- `erde/tag_4k.jpg`: aus der vorhandenen `erde/tag_8k.jpg` (Solar System Scope, CC BY 4.0) auf 4096 × 2048 verkleinert, für den Lern-Modus.
- `erde/wolken_4k.jpg` (P3-Jury, 30.09.2026): aus der vorhandenen `erde/wolken_8k.jpg` (Solar System Scope, CC BY 4.0) auf 4096 × 2048 verkleinert, Graustufen, JPEG q80 (2,1 MB) — Wolkendecke der Nahansicht, nur Desktop.

## Sonnensystem · Nebel aus echten Bildern (P4/W1–W2, 01.10.2026) — `sonnensystem/orion/`, `sonnensystem/krebs/`

Je drei Dateien aus `tools/sonnensystem/nebel-bild.py` (Sterne herausgelöst und als Punkte in die Tiefe gestellt, Lücken per normierter Faltung gefüllt): `nebel.jpg` (4096², Gas ohne Sterne), `sterne.json` (Bildort, Fluss, Farbe), `tiefe.png` (256², weichgezeichnete Helligkeit als Relief). Rohbilder liegen ungetrackt unter `tmp/sonnensystem-stufe3/quellen/`, mit Sascha 01.10.2026 freigegeben.

- `orion/` (1,1 MB): **Hubble heic0601a** „Orion Nebula“ (ESA/Hubble, Large JPEG 18000², 42,5 MB), **CC BY 4.0** · „NASA, ESA, M. Robberto (Space Telescope Science Institute/ESA) and the Hubble Space Telescope Orion Treasury Project Team“ — https://esahubble.org/images/heic0601a/
- `krebs/` (2,4 MB): **Webb weic2326a** „Crab Nebula“ (ESA/Webb, Large JPEG 10509 × 9151, 20,1 MB; auf ein Quadrat gepolstert), **CC BY 4.0** · „NASA, ESA, CSA, STScI, T. Temim (Princeton University)“ — https://esawebb.org/images/weic2326a/ ; Sterne nur blauweiße Punkte (`--blau`), sonst hielt die Kette Filamentknoten für Sterne.
- Nennung im Willkommenstext der Seite (Bildnachweise).

## Sonnensystem · Sonden (P5, 01.10.2026) — `sonnensystem/sonden/`

NASA-Modelle (NASA-Medien, frei nutzbar ohne behauptete Unterstützung durch NASA), mit Sascha 01.10.2026 freigegeben; Draco-Dateien mit Blender headless entpackt, dann `gltfpack -cc` (+ `-tc -tq 8 -tl 1024` für Texturen, `-si` zum Vereinfachen). Rohdateien ungetrackt unter `tmp/sonnensystem-stufe3/quellen/sonden/`.

- `voyager.glb` (0,50 MB): „Voyager 3D Model“, NASA Visualization Technology Applications and Development (VTAD) — https://science.nasa.gov/resource/voyager-3d-model/
- `new-horizons.glb` (0,51 MB): „New Horizons 3D Model“, NASA VTAD — https://science.nasa.gov/resource/new-horizons-3d-model/
- `jwst.glb` (0,42 MB, auf 45 % vereinfacht): „James Webb Space Telescope (B)“, NASA/Christopher R. Meaney — https://science.nasa.gov/3d-resources/james-webb-space-telescope-b/
- `iss.glb` (0,20 MB, auf 25 % vereinfacht): „International Space Station (ISS) (B)“, NASA/Michael D. Carbajal — https://science.nasa.gov/3d-resources/international-space-station-iss-b/
- `huygens.glb` (0,14 MB): „Cassini-Huygens (A) (without Cassini)“, NASA/Brian E. Kumanchik — https://science.nasa.gov/3d-resources/cassini-huygens-a/ (Eintrittskapsel im Flugzustand, Hauptszene; auf der Titan-Landestelle steht ein eigenes Modell des Abstiegsmoduls, s. u.)
- Bahn New Horizons: JPL Horizons (Vektoren, heliozentrisch-ekliptisch, 2006–2026).

## Sonnensystem · Echter Klang (P8, 01.10.2026) — `sonnensystem/klang/`

NASA-Sonifikationen aus dem Photojournal (NASA-Medien), mit Sascha 01.10.2026 freigegeben. Tonspur mit ffmpeg herausgelöst, mono, auf −18 LUFS (EBU R128) angeglichen, weich ein-/ausgeblendet, MP3. Rohdateien ungetrackt unter `tmp/sonnensystem-stufe3/quellen/klang/`.

- `juno-ganymed.mp3` (0,39 MB, 49 s): PIA25030 „Audio of Juno's Ganymede Flyby“ · NASA/JPL-Caltech/SwRI/Univ of Iowa — https://science.nasa.gov/photojournal/audio-of-junos-ganymede-flyby
- `cassini-saturn.mp3` (0,44 MB, 73 s): PIA07966 „Eerie Sounds of Saturn's Radio Emissions“ · NASA/JPL/University of Iowa — https://science.nasa.gov/photojournal/eerie-sounds-of-saturns-radio-emissions
- `voyager-plasma.mp3` (0,49 MB, 61 s): PIA17045 „Voyager Captures Sounds of Interstellar Space“ · NASA/JPL-Caltech/University of Iowa — https://science.nasa.gov/photojournal/voyager-captures-sounds-of-interstellar-space
- Nennung in der Hörkarte selbst („Aufnahme: …“).

## Sonnensystem · Jezero (P6, 01.10.2026) — `sonnensystem/jezero/`

Mars-Panorama am Perseverance-Landeplatz, Moment: 6. April 2021 (Sol 46, Tag des Selfies mit Ingenuity), 8:00 Uhr wahre Ortszeit. Downloads mit Sascha 01.10.2026 freigegeben; Rohdateien ungetrackt unter `tmp/sonnensystem-stufe3/quellen/jezero/`.

- `gelaende.bin` (1,0 MB): aus dem HiRISE-Höhenmodell **DTEEC_045994_1985_046060_1985_U01** (Jezero-Krater, 1 m/px, IMG 381 MB) · NASA/JPL-Caltech/UArizona, PDS, gemeinfrei — https://www.uahirise.org/PDS/DTM/ESP/ORB_045900_045999/ESP_045994_1985_ESP_046060_1985/ ; gebacken mit `tools/sonnensystem/jezero-gelaende.py` (Radialnetz um 18,4447° N 77,4508° O, Marskrümmung, Feinrelief, Sonnensicht und Verdeckung; Sonnenstand nach Mars24, Allison & McEwen 2000).
- `perseverance.glb` (2,2 MB): **Mars 2020 Perseverance Rover** · NASA/JPL-Caltech (NASA 3D Resources, NASA-Medien, frei nutzbar ohne behauptete Unterstützung durch NASA) — https://science.nasa.gov/3d-resources/mars-2020-perseverance-rover/ ; Mast und Kopf mit `tools/blender/perseverance-mast.py` aus der modelleigenen Ausklapp-Animation aufgerichtet und zum Hubschrauber gedreht, Draco entpackt, `gltfpack -cc -tc -tq 8 -tl 1024 -si 0.5` (200 k → 100 k Dreiecke).
- `ingenuity.glb` (0,97 MB): **Mars Ingenuity Helicopter** · NASA/JPL-Caltech — https://science.nasa.gov/resource/mars-ingenuity-helicopter-3d-model/ ; `gltfpack -cc -tc -tq 8 -tl 1024`.
- `sand-farbe.ktx2`, `sand-normal.ktx2`: Kopie von `gizeh/texturen/sand` (Poly Haven **sandy_gravel**, CC0 — https://polyhaven.com/a/sandy_gravel); `platten-farbe.ktx2`, `platten-normal.ktx2`: Kopie von `gizeh/texturen/schutt` (Poly Haven **rocks_ground_06**, CC0 — https://polyhaven.com/a/rocks_ground_06). Die Laufzeit nimmt nur die Helligkeitsstruktur, die Farbe kommt aus einer Marspalette.
- Steine: `sonnensystem/tranquility/fels1–7.glb` (Poly Haven moon_rock_01–07, CC0, siehe Tranquility), umgefärbt mit Staubhaube.
- Himmel, Dunst, Kraterrand (Jezero Ø 45 km, Mittelpunkt 18,38° N 77,58° O), Radspuren: eigene Rechnung (`src/sonnensystem/jezero/`).

## Sonnensystem · Huygens-Landestelle (P6, 01.10.2026) — `sonnensystem/titan/`

Titan-Panorama an der Landestelle der ESA-Sonde Huygens (14. Januar 2005, 10,3° S 192,3° W). Keine neuen Downloads.

- `huygens.glb` (0,06 MB): das **Abstiegsmodul**, eigenes Modell nach ESA-Maßen (Ø 1,3 m: Bodenkuppel mit 36 Spinflügeln, Äquatorband, Heckkonus mit Kapton-Isolierdecke, Deck mit Antennen und Gaschromatographen-Einlass, DISR-Kopf mit Oberflächenlampe, HASI-Ausleger) — `tools/blender/huygens-landemodul.py`, `gltfpack -cc`. Das NASA-Modell „Cassini-Huygens (A)“ (`sonden/huygens.glb`) zeigt die Eintrittskapsel im Flugzustand und passt deshalb nicht auf den Boden.
- Boden: `jezero/sand-*.ktx2` und `jezero/platten-farbe.ktx2` (Poly Haven sandy_gravel / rocks_ground_06, CC0, siehe Jezero), umgefärbt. Eiskiesel, Gelände, Dunst und Lampenmaske: eigene Rechnung (`src/sonnensystem/titan/`).
- Fakten: Aufschlag mit 4,5 m/s, 12-cm-Delle, 30–40 cm Rutschen, danach auf der Fläche liegend (JPL/ESA-Auswertung „bounce, skid, wobble“, 2009); Kieselgrößen und Bodenbild nach DISR (ESA/NASA/JPL/University of Arizona). Saturn steht an der Landestelle stets unter dem Horizont (Titan rotiert gebunden, 192° W liegt auf der abgewandten Seite).
