Kapitel 3 — Einstellungen
Das Einstellungs-Fenster öffnet sich über RadianceKit → Einstellungen… oder die Standard-Tastenkombination ⌘,. Es enthält zwei Tabs: General und AI Helpers. Anders als die Inspector-Werte aus Kapitel 2 wirken die Einstellungen aus diesem Fenster app-global (über alle Projekte hinweg) — sie werden in persistiert und überleben App-Neustarts. Der General-Tab gruppiert vier inhaltliche Abschnitte: Interface, Viewport, Training und eine experimentelle Sektion zur Outdoor-Floater-Reduktion. Der AI-Helpers-Tab schaltet die On-Device-Machine-Learning-Helfer (Vision, CoreML) für SfM- und Trainings-Vorverarbeitung an.
Frühere Bedienelemente zum gesammelten Aktivieren oder Deaktivieren aller AI-Helpers existieren in der aktuellen Version nicht mehr — entsprechend werden sie hier nicht dokumentiert. Auch der frühere „Coming Soon"-Bereich für noch nicht ausgelieferte Helfer wurde entfernt und ist hier nicht referenziert.
General-Tab

S1Default Mode
WO
Settings → General → Interface → Default Mode-Picker. Bound:. Default: .simple.
TECHNISCH
Steuert, in welchem von zwei UI-Modi die App nach dem nächsten Start öffnet. „Simple Mode" ist der geführte Wizard-Workflow in 4 Schritten (Import → Processing → Preview → Export, dokumentiert in Kapitel 10 unter Z1–Z4), „Expert Mode" das klassische Drei-Panel-Layout mit Navigator, 3D-Viewport und Expert-Inspector aus Kapitel 2. Der Wert wird über Neustarts gemerkt. Identische Wirkung wie das Menü Mode → Simple Mode (⌘1) / Mode → Expert Mode (⌘2), nur dass das Menü die laufende Sitzung umschaltet, während dieser Picker den Default für künftige Sitzungen setzt. Beide Modi greifen auf denselben Projekt-State zu — Projekte, Kameras und Trainingskonfiguration bleiben beim Modus-Wechsel erhalten. Mode-spezifische Toolbar-Buttons werden sofort neu gerendert.
S2Language
WO
Settings → General → Interface → Language-Picker. Bound:. Default: .system (folgt der macOS-Sprache).
TECHNISCH
Wählt die Anzeigesprache der gesamten App-UI, unabhängig von der macOS-System-Sprache. RadianceKit ist in 17 Sprachen lokalisiert (de, en, pl, en-AU, ar-SA, plus 12 weitere). Bei „System" folgt die App der macOS-Sprache. Bei einer expliziten Wahl wird die Spracheinstellung über Neustarts gemerkt; vollständige Wirkung braucht in der Regel einen App-Neustart, weil Lokalisierungs-Bundles nur beim Start geladen werden. Die 298 dokumentierten Lokalisierungs-Schlüssel im Projekt werden alle berücksichtigt, einschließlich aller Texte in Sub-Views und Hilfe-Tooltips.
S3Viewport Background
WO
Settings → General → Viewport → Background-Picker. Bound:. Default: .darkGray (RGB 0.1, 0.1, 0.1).
TECHNISCH
Setzt die Standard-Hintergrundfarbe für den 3D-Viewport. Drei Optionen: „Dark Gray" (RGB 0.1, 0.1, 0.1 — Default), „Black" (0, 0, 0) und „White" (1, 1, 1). Das Setting persistiert den Default für neue Projekte und Sitzungen über Neustarts und aktualisiert gleichzeitig den laufenden Metal-Renderer sofort. Identische Optionen finden sich im Menü Viewport → Background (M21, M22, M23), aber der Settings-Picker setzt den Default, während das Menü die laufende Anzeige umschaltet. Wichtig für Screenshots und Demo-Videos: weiße Hintergründe heben grüne/blaue Floater stärker hervor, dunkle Hintergründe sind besser für saubere Render-Aufnahmen.
S4Auto-Rotate After Training
WO
Settings → General → Viewport → Toggle „Auto-Rotate After Training". Bound:. Default: false.
TECHNISCH
Startet unmittelbar nach Trainings-Ende eine kontinuierliche Turntable-Rotation der Viewport-Kamera um den Szenen-Schwerpunkt (Standard-Drehrate ~0.3 rad/s). Praktisch nützlich für Demo-Sessions, A/B-Vergleiche und um aus 360°-Sicht direkt zu beurteilen, ob „Floater" am Szenen-Rand entstanden sind. Effekt ist visuell identisch zum Menü Viewport → Toggle Auto-Rotation (M16, ⌘⌥T), nur dass der Toggle hier das Verhalten automatisch nach Trainings-Ende auslöst statt manuell. Lässt sich später jederzeit über das Menü oder durch Klick in den Viewport (was die Rotation pausiert) unterbrechen. Hat keinen Einfluss auf Trainings-Performance — die Rotation läuft erst, wenn das Training fertig ist.
S5Live Preview Interval
WO
Settings → General → Training → Live Preview-Picker. Bound: AppState.trainingConfig.livePreviewInterval. Default: 0 (Off).
TECHNISCH
Bestimmt, in welchem Iterations-Abstand der laufende Trainings-Snapshot in den 3D-Viewport gerendert wird. Vier diskrete Werte: 0 („Off"), 50, 250, 1000 Iterationen. Bei aktivem Live Preview kopiert der Trainer den Gaussian-Buffer aus der GPU in einen separaten Render-Buffer und triggert einen Viewport-Redraw. Bei „Off" wird der Viewport erst nach Trainings-Abschluss aktualisiert. Performance-Kosten: alle 50 Iterationen ~5–10% langsamer auf M3 Ultra, alle 250 Iterationen ~1–2% langsamer, alle 1000 Iterationen unmessbar. Memory-Overhead konstant ~2 GB für den Snapshot-Buffer, unabhängig vom Intervall. Der Wert dient als Default für neue Trainings; nach Trainings-Start zeigt der Trainings-Inspector den realen Live-Wert dieses Trainings an. Bei Intervall 50 ist der Visual-Eindruck ein flüssiges „Aufwachsen" der Punktwolke, bei 1000 wirkt es stockend.
S6Throttle Delay
WO
Settings → General → Training → Throttle-Picker. Bound: AppState.trainingConfig.throttleDelayMs. Default: 0 (Off).
TECHNISCH
Fügt zwischen Trainings-Iterationen eine artifizielle Verzögerung in Millisekunden ein. Vier diskrete Werte: 0 („Off"), 2 („Light"), 5 („Moderate"), 10 („Eco"). Sinn: bei längeren Trainings (mehrere Stunden) wird die GPU sonst zu 100% ausgelastet, was zu spürbar langsamer System-UI führt (Mauszeiger ruckelt, andere Apps werden träge). Die Throttle-Verzögerung gibt der GPU Pausen, in denen andere Tasks ausgeführt werden können. Performance-Kosten sind erheblich: bei 5 ms Throttle dauert ein typisches 40K-Training etwa 50–80% länger als ohne Throttle. Im Performance-Modus „Eco" (10 ms) ist die Verzögerung pro Iteration länger als die Iteration selbst — Faktor 2–3× langsamer. Bei aktivem Throttle erscheint unter dem Picker ein Hinweis: „Throttle is on. Training will be slower than usual." Die App selbst reagiert nicht spürbar besser — nur andere Apps profitieren.
S7Sky Masking
WO
Settings → General → Experimental — Outdoor Floater Reduction → Toggle „Sky Masking". Bound: AppState.trainingConfig.skyMaskingEnabled. Default: false.
TECHNISCH
Aktiviert pre-training Apple-Vision-basierte Sky-Pixel-Segmentation. Vor Trainings-Start wird für jede Eingabe-Kamera die Sky-Region per Apple-Vision-Foreground-Mask extrahiert (Sky = Background) und als Pro-Pixel-Maske der jeweiligen Kamera zugeordnet. Während des Trainings wird der Loss-Beitrag pro Pixel mit dem Komplement der Sky-Maske multipliziert — Sky-Pixel tragen 0 zum Gradient bei, sodass Gaussians, die in den Himmel projizieren, keine Optimierungs-Signale erhalten und damit nicht „dichter" oder „heller" werden. Reduziert Floater (dunkle Klümpchen im Himmel) bei Outdoor-/Drohnen-Szenen signifikant. Kostet ~3% L1-Regression bei klassischem 40K-Training (siehe memory/dev_outdoor-floater-reduction.md). Nur sinnvoll bei Outdoor-Szenen mit klar erkennbarem Himmel; bei Innenraum-Szenen oder weißem Hintergrund identifiziert die Sky-Segmentierung falsche Bereiche und blockt valide Loss-Signale. Anders als die übrigen experimentellen Toggles wird der Wert nicht über App-Neustarts gemerkt — beim nächsten App-Start ist er wieder aus.
S8Mid-Training Floater Cleanup
WO
Settings → General → Experimental — Outdoor Floater Reduction → Toggle „Mid-Training Floater Cleanup". Bound:. Default: false.
TECHNISCH
Schaltet bei Classic-40K-Training (Preset „P4 Quality") zwei zusätzliche Density-Control-Passes ein: bei Iteration 20,000 und bei Iteration 30,000. Beide Passes durchsuchen alle Gaussians nach drei Kriterien: (a) sehr niedrige Opacity (Standard 0.005), (b) winzige Screen-Space-Größe, (c) keine Loss-Beiträge in den letzten 1000 Iterationen. Gaussians, die alle drei Bedingungen erfüllen, werden gepurged. Effekt: ~5–15% weniger Gaussians am Ende des Trainings, sichtbar weniger dunkle Klümpchen im Himmel bei Drohnen-/Outdoor-Szenen. Kostet ~1–3% L1-Regression bei Close-Up-Indoor-Szenen, daher nicht als Default aktiviert. Der Wert wird über Neustarts gemerkt (im Gegensatz zu S7). Die zwei Cleanup-Iterationen (20K, 30K) sind hart definiert und können aktuell nicht per UI verändert werden; bei kürzeren Trainings (z.B. P2 Preview 5K) hat der Toggle keinen Effekt, weil er die Iterationsmarken nie erreicht. Details: memory/dev_outdoor-floater-reduction.md.
S9Reduce Elongated Gaussians
WO
Settings → General → Experimental — Outdoor Floater Reduction → Toggle „Reduce Elongated Gaussians". Bound:. Default: false.
TECHNISCH
Aktiviert eine zusätzliche Anisotropy-Regularization im Loss-Term. Während der Optimierung wird für jeden Gaussian die Anisotropie als Verhältnis zwischen größter und kleinster Skalierungsachse berechnet. Liegt das Verhältnis über einem Threshold (, Standard 10.0), wird ein Penalty-Term zum Loss hinzugefügt, der proportional zum Überschreiten skaliert. Effekt: nadelförmige Gaussians, die typisch für Cross-Hatch- und Streak-Artefakte in Gras und dichtem Laub sind, werden während des Trainings entweder zu runderen Formen gezwungen oder gepurged. Im Gegenzug ~6 % L1-Regression bei Standard-Indoor-Szenen, kein Effekt bei strikten Object-Captures. Sweet Spot ist bei Drohnenflug-Aufnahmen über Vegetation. Schreibt auf, persistiert via. Implementierung in optimizer.metal als zusätzlicher Penalty in der Gradienten-Berechnung. Sieh den Hinweis im Projekt-Memory: V549d war die geshippte Version, eine spätere V549f mit aggressiverem Scale-Reg wurde wieder revertiert wegen catastrophic regression. Details: memory/dev_outdoor-floater-reduction.md und memory/dev_v549f-needle-reduction.md.
S10Reconstruct Sky Dome
WO
Settings → General → Experimental — Outdoor Floater Reduction → Toggle „Reconstruct Sky Dome". Bound:. Default: false.
TECHNISCH
Aktiviert die Pre-Training-Sky-Dome-Projektion (V549e MVP). Nach SfM und vor Trainings-Start wird für jede Eingabe-Kamera die in S7 gemeinsam genutzte Apple-Vision-Sky-Maske aus dem Bild extrahiert, die Sky-Pixel werden mit den Kamera-Intrinsics ent-projiziert auf eine virtuelle Kugel-Oberfläche (Standard-Radius 8× Szenen-Radius). Auf dieser Kugel werden ~5000 neue Gaussians initialisiert mit Farb-Mittelwerten aus den projizierten Sky-Pixeln, sehr großer Skalierung (1.0 in Szenen-Einheiten) und Anfangs-Opacity 0.95. Diese 5000 Gaussians sind kein Sky-Mask im klassischen Sinn — sie werden trainiert wie alle anderen, aber durch die hohe Anfangs-Opacity in einer dünnen Schale belassen. Ergebnis: bei 360°-Novel-Views in Outdoor-/Drohnen-Szenen erscheinen statt dunkler Confetti-Klümpchen tatsächliche Himmels-Farbe und Wolken-Strukturen. Der Wert wird über Neustarts gemerkt. Sinnvoll nur bei Outdoor-Szenen mit zumindest 360°-Kamera-Abdeckung; bei reinen Object-Captures ohne Himmel-Sicht hat es keinen Effekt. Status: experimentell, breitere A/B-Validierung über weitere Outdoor-Sets steht noch aus.
AI-Helpers-Tab

S11AI Helpers enabled (Master)
WO
Settings → AI Helpers → erste Section → Toggle „AI Helpers enabled". Bound:. Default: true.
TECHNISCH
Master-Schalter über sämtliche AI-Helpers-Features in der Pipeline. Wenn aus, überspringt die Import- und SfM-Pipeline alle ML-basierten Vorverarbeitungs-Stages komplett — kein Apple-Vision-Aufruf, kein CoreML-Model-Load, keine NPU-Aufweckung. Wenn an, werden die individuellen Sub-Toggles (S12–S14) konsultiert. Der Wert wird über Neustarts gemerkt. Wirkt sich auf folgende Stages aus: (a) Frame-Quality-Pre-Check vor SfM (S12), (b) Loop-Closure-Erkennung (S13), (c) Auto-Sky-Masking als Default-Wert für neue Trainings (S14). Wichtig: bei aus sind die drei Sub-Toggles deaktiviert und visuell ausgegraut. Footer-Hinweis betont, dass alle AI-Helpers strikt on-device laufen — kein Bild-Upload, keine Cloud-Verarbeitung. Datenschutz-Garantie kommt durch die Verwendung von ausschließlich Apple-Vision-Framework (lokal auf der Neural Engine) und CoreML-Models, die direkt im App-Bundle liegen.
S12Frame quality check
WO
Settings → AI Helpers → Available-Section → Toggle „Frame quality check". Bound:. Default: true.
TECHNISCH
Aktiviert den Frame-Quality-Screener (Phase 3.11), der vor dem SfM-Aufruf jeden importierten Frame analysiert. Pipeline-Schritte pro Frame: (a) Laplacian-Variance-Filter aus Apple Vision (Blur-Erkennung — Schwellwert ~150), (b) Histogramm-basiertes Over/Under-Exposure-Check (Schwellwert: >5% Pixel bei 0 oder 255), (c) Blank-Frame-Detect (Standardabweichung < 5 über alle Pixel). Frames, die alle drei Checks bestehen, gehen direkt durch. Frames, die mindestens einen Check failen, lösen einen modalen Confirmation-Dialog aus, der jeden problematischen Frame mit Thumbnail und Begründung listet und fragt, ob er entfernt werden soll. Wichtig: keine automatische Löschung — der Dialog ist immer erforderlich, der Nutzer behält die letzte Entscheidung. Performance: ~50 ms pro Frame auf M3 Ultra, läuft parallel. Bei aus werden alle Frames ungeprüft an SfM weitergereicht. Bei deaktiviertem Master (S11) ist dieser Toggle visuell ausgegraut und ohne Wirkung. Geshippter Status laut Memory: SHIPPED 2026-05-23.
S13Loop closure detection
WO
Settings → AI Helpers → Available-Section → Toggle „Loop closure detection". Bound:. Default: true.
TECHNISCH
Aktiviert die Apple-Vision-Feature-Print-basierte Loop-Closure-Erkennung. Für jeden importierten Frame wird ein ~768-dimensionaler Feature-Vektor berechnet, der ein neuronales Embedding des Bildinhalts darstellt. Anschließend werden alle Feature-Prints paarweise per Cosine-Similarity verglichen. Paare mit Similarity > 0.85 und Distanz im Frame-Index > 50 (also nicht-benachbarte Frames) werden als „Loop-Closure-Kandidaten" identifiziert und in eine Sidecar-JSONL-Datei im Projekt-Ordner geschrieben. Informational only — die importierte Bilder-Sequenz wird nicht modifiziert. Sinn: gibt dem SfM-Solver (insbesondere COLMAP) einen Hinweis, dass diese Frames im 3D-Raum zusammen-cluster gehören. Für native SfM ist die Sidecar-Information aktuell nur dokumentierend; COLMAP nutzt die Hints intern via custom matches-file (manuelle Integration möglich, nicht automatisch verknüpft). Performance: ~200 ms pro Frame auf M3 Ultra, läuft parallel. Bei aus werden keine Feature-Prints generiert. Bei deaktiviertem Master (S11) visuell ausgegraut.
S14Auto sky masking (AI)
WO
Settings → AI Helpers → Available-Section → Toggle „Auto sky masking". Bound: UserDefaults.standard.bool(forKey: "aiHelpersSkyMaskingDefault") (via Custom-Binding). Default: false.
TECHNISCH
Setzt den Default-Wert für das Sky-Masking-Setting aus S7 bei neuen Trainings-Konfigurationen. Anders als S11–S13 lebt das eigentliche Sky-Masking-Setting pro Training-Session und wird nicht über App-Neustarts gemerkt (siehe S7). Damit die AI-Helpers-UI dennoch einen persistenten Default für „neue Trainings" anbieten kann, gibt es diesen Schatten-Wert: er wird über Neustarts gemerkt und beim Setup eines neuen Trainings (z.B. neuer Projekt-Import) als initialer Default für das Sky-Masking übernommen. Bei deaktiviertem Master (S11) visuell ausgegraut.
Inspector-Spiegel-Settings
Die übrigen Settings-Einträge (S17–S33) aus der Inventar-Tabelle sind Spiegelungen aus dem Expert-Inspector und in Kapitel 2 (Inspector-Controls I12–I29) dokumentiert. Sie erscheinen nicht physisch im Settings-Fenster, sondern wurden im Inventar nur deshalb gelistet, weil sie über TrainingConfig-Properties laufen, die per persistiert werden und insofern formal Settings-Charakter haben. Für inhaltliche Erläuterungen siehe dort.
Wann was?
| Setting | Geltungsbereich | Persistenz |
|---|---|---|
| S1 Default Mode | App-Global | App-Neustart |
| S2 Language | App-Global | App-Neustart |
| S3 Viewport Background | App-Global (Default) + Runtime | App-Neustart |
| S4 Auto-Rotate After Training | App-Global | App-Neustart |
| S5 Live Preview Interval | Default für neue Trainings | App-Neustart |
| S6 Throttle Delay | Default für neue Trainings | App-Neustart |
| S7 Sky Masking | Aktuelles Training | nur Session |
| S8 Mid-Training Floater Cleanup | App-Global | App-Neustart |
| S9 Reduce Elongated Gaussians | App-Global | App-Neustart |
| S10 Reconstruct Sky Dome | App-Global | App-Neustart |
| S11 AI Helpers Master | App-Global | App-Neustart |
| S12 Frame quality check | App-Global | App-Neustart |
| S13 Loop closure detection | App-Global | App-Neustart |
| S14 Auto sky masking | Default für neue Trainings | App-Neustart |
App-Global = wirkt auf alle Projekte. Default für neue Trainings = wirkt nur auf das nächste angelegte Training, laufende Sitzungen bleiben unverändert. Aktuelles Training = wirkt sofort auf die laufende Trainings-Konfiguration, persistiert aber nicht ohne expliziten Reimport.