Hoofdstuk 3 — Instellingen
Het instellingenvenster opent via RadianceKit → Instellingen… of de standaardtoetscombinatie ⌘,. Het bevat twee tabbladen: General en AI Helpers. Anders dan de Inspector-waarden uit hoofdstuk 2 werken de instellingen uit dit venster app-globaal (over alle projecten heen) — ze worden gepersisteerd en overleven app-herstarts. Het General-tabblad groepeert vier inhoudelijke secties: Interface, Viewport, Training en een experimentele sectie voor outdoor-floater-reductie. Het AI-Helpers-tabblad schakelt de on-device-machine-learning-helpers (Vision, CoreML) voor SfM- en trainings-voorverwerking aan.
Eerdere bedieningselementen voor het gezamenlijk activeren of deactiveren van alle AI-helpers bestaan in de huidige versie niet meer — overeenkomstig worden ze hier niet gedocumenteerd. Ook het eerdere „Coming Soon"-gedeelte voor nog niet uitgeleverde helpers werd verwijderd en wordt hier niet meer genoemd.
General-tabblad

S1Default Mode
WAAR
Instellingen → General → Interface → Default Mode-keuze. Bound:. Default: .simple.
TECHNISCH
Bepaalt in welke van twee UI-modi de app na de volgende start opent. „Simple Mode" is de begeleide wizard-workflow in vier stappen (Import → Processing → Preview → Export, gedocumenteerd in hoofdstuk 10 onder Z1–Z4), „Expert Mode" de klassieke drie-paneel-layout met navigator, 3D-viewport en Expert-Inspector uit hoofdstuk 2. De waarde wordt over herstarts onthouden. Identiek effect als het menu Mode → Simple Mode (⌘1) / Mode → Expert Mode (⌘2), behalve dat het menu de lopende sessie omschakelt, terwijl deze keuze de standaard voor toekomstige sessies vastlegt. Beide modi grijpen op dezelfde projecttoestand — projecten, camera's en trainingsconfiguratie blijven bij de moduswissel behouden. Modusspecifieke toolbar-knoppen worden meteen opnieuw gerenderd.
S2Language
WAAR
Instellingen → General → Interface → Language-keuze. Bound:. Default: .system (volgt de macOS-taal).
TECHNISCH
Kiest de weergavetaal van de gehele app-UI, onafhankelijk van de macOS-systeemtaal. RadianceKit is in 17 talen gelokaliseerd (de, en, pl, en-AU, ar-SA, plus 12 andere). Bij „System" volgt de app de macOS-taal. Bij een expliciete keuze wordt de taalinstelling over herstarts onthouden; volledige werking vereist meestal een app-herstart, omdat lokalisatie-bundles alleen bij de start worden geladen. Alle 298 gedocumenteerde lokalisatie-sleutels in het project worden meegenomen, inclusief alle teksten in sub-views en hulp-tooltips.
S3Viewport Background
WAAR
Instellingen → General → Viewport → Background-keuze. Bound:. Default: .darkGray (RGB 0,1, 0,1, 0,1).
TECHNISCH
Stelt de standaard achtergrondkleur voor het 3D-viewport in. Drie opties: „Dark Gray" (RGB 0,1, 0,1, 0,1 — standaard), „Black" (0, 0, 0) en „White" (1, 1, 1). De instelling persisteert de standaard voor nieuwe projecten en sessies over herstarts en actualiseert tegelijk de lopende Metal-renderer onmiddellijk. Identieke opties zitten in het menu Viewport → Background (M21, M22, M23), maar de instellingen-keuze legt de standaard vast, terwijl het menu de lopende weergave omschakelt. Belangrijk voor screenshots en demo-video's: witte achtergronden laten groene/blauwe floaters sterker uitkomen, donkere achtergronden zijn beter voor schone render-opnames.
S4Auto-Rotate After Training
WAAR
Instellingen → General → Viewport → Toggle „Auto-Rotate After Training". Bound:. Default: false.
TECHNISCH
Start direct na het einde van de training een continue turntable-rotatie van de viewport-camera om het scènecentrum (standaardrotatiesnelheid ~0,3 rad/s). Praktisch nuttig voor demosessies, A/B-vergelijkingen en om vanuit 360°-zicht direct te beoordelen of „floaters" aan de scènerand zijn ontstaan. Effect is visueel identiek aan het menu Viewport → Toggle Auto-Rotation (M16, ⌘⌥T), behalve dat de toggle hier het gedrag automatisch na het einde van de training start, in plaats van handmatig. Laat zich later op elk moment via het menu of door te klikken in het viewport (wat de rotatie pauzeert) onderbreken. Heeft geen invloed op trainingsperformance — de rotatie loopt pas wanneer de training klaar is.
S5Live Preview Interval
WAAR
Instellingen → General → Training → Live Preview-keuze. Bound: AppState.trainingConfig.livePreviewInterval. Default: 0 (Off).
TECHNISCH
Bepaalt met welke iteratie-afstand de lopende trainings-snapshot in het 3D-viewport wordt gerenderd. Vier discrete waarden: 0 („Off"), 50, 250, 1000 iteraties. Bij actieve live preview kopieert de trainer de Gaussian-buffer vanuit de GPU naar een aparte render-buffer en triggert een viewport-redraw. Bij „Off" wordt het viewport pas na voltooiing van de training geactualiseerd. Performancekosten: elke 50 iteraties ~5–10% langzamer op M3 Ultra, elke 250 iteraties ~1–2% langzamer, elke 1000 iteraties onmeetbaar. Memory-overhead constant ~2 GB voor de snapshot-buffer, onafhankelijk van het interval. De waarde dient als standaard voor nieuwe trainingen; na trainingsstart toont de trainings-inspector de werkelijke live-waarde van deze training. Bij interval 50 is de visuele indruk een vloeiend „opgroeien" van de puntenwolk, bij 1000 oogt het schokkerig.
S6Throttle Delay
WAAR
Instellingen → General → Training → Throttle-keuze. Bound: AppState.trainingConfig.throttleDelayMs. Default: 0 (Off).
TECHNISCH
Voegt tussen trainingsiteraties een kunstmatige vertraging in milliseconden in. Vier discrete waarden: 0 („Off"), 2 („Light"), 5 („Moderate"), 10 („Eco"). Doel: bij langere trainingen (meerdere uren) wordt de GPU anders voor 100% belast, wat tot merkbaar tragere systeem-UI leidt (muisaanwijzer hapert, andere apps worden traag). De throttle-vertraging geeft de GPU pauzes waarin andere taken kunnen worden uitgevoerd. Performancekosten zijn aanzienlijk: bij 5 ms throttle duurt een typische 40K-training circa 50–80% langer dan zonder throttle. In performance-modus „Eco" (10 ms) is de vertraging per iteratie langer dan de iteratie zelf — factor 2–3× langzamer. Bij actieve throttle verschijnt onder de keuze een opmerking: „Throttle is on. Training will be slower than usual." De app zelf reageert niet merkbaar beter — alleen andere apps profiteren.
S7Sky Masking
WAAR
Instellingen → General → Experimental — Outdoor Floater Reduction → Toggle „Sky Masking". Bound: AppState.trainingConfig.skyMaskingEnabled. Default: false.
TECHNISCH
Activeert pre-training Apple-Vision-gebaseerde sky-pixel-segmentatie. Vóór de trainingsstart wordt voor elke invoercamera de lucht-regio via Apple-Vision-Foreground-Mask geëxtraheerd (Sky = Background) en als per-pixel-masker aan de betreffende camera toegewezen. Tijdens de training wordt de loss-bijdrage per pixel met het complement van het sky-masker vermenigvuldigd — sky-pixels dragen 0 bij aan de gradiënt, zodat Gaussians die in de lucht projecteren geen optimalisatie-signalen ontvangen en daarmee niet „dichter" of „lichter" worden. Reduceert floaters (donkere klontjes in de lucht) bij outdoor/drone-scènes significant. Kost ~3% L1-regressie bij klassieke 40K-training (zie memory/dev_outdoor-floater-reduction.md). Alleen zinvol bij outdoor-scènes met duidelijk herkenbare lucht; bij binnenscènes of witte achtergrond identificeert de sky-segmentatie verkeerde gebieden en blokkeert valide loss-signalen. Anders dan de overige experimentele toggles wordt de waarde niet over app-herstarts onthouden — bij de volgende app-start staat hij weer uit.
S8Mid-Training Floater Cleanup
WAAR
Instellingen → General → Experimental — Outdoor Floater Reduction → Toggle „Mid-Training Floater Cleanup". Bound:. Default: false.
TECHNISCH
Schakelt bij Classic-40K-training (voorinstelling „P4 Quality") twee extra density-control-passes in: bij iteratie 20.000 en bij iteratie 30.000. Beide passes doorzoeken alle Gaussians op drie criteria: (a) zeer lage opacity (standaard 0,005), (b) zeer kleine screen-space-grootte, (c) geen loss-bijdragen in de laatste 1.000 iteraties. Gaussians die alle drie voorwaarden vervullen, worden gepurged. Effect: ~5–15% minder Gaussians aan het einde van de training, zichtbaar minder donkere klontjes in de lucht bij drone-/outdoor-scènes. Kost ~1–3% L1-regressie bij close-up-binnenscènes, daarom niet als standaard geactiveerd. De waarde wordt over herstarts onthouden (in tegenstelling tot S7). De twee cleanup-iteraties (20K, 30K) zijn hard gedefinieerd en kunnen momenteel niet via UI worden aangepast; bij kortere trainingen (bijv. P2 Preview 5K) heeft de toggle geen effect, omdat de iteratiemarkeringen nooit worden bereikt. Details: memory/dev_outdoor-floater-reduction.md.
S9Reduce Elongated Gaussians
WAAR
Instellingen → General → Experimental — Outdoor Floater Reduction → Toggle „Reduce Elongated Gaussians". Bound:. Default: false.
TECHNISCH
Activeert een extra anisotropy-regularization in de loss-term. Tijdens de optimalisatie wordt voor elke Gaussian de anisotropie berekend als verhouding tussen grootste en kleinste schaal-as. Ligt de verhouding boven een drempel (, standaard 10.0), wordt een penalty-term aan de loss toegevoegd die proportioneel schaalt met de overschrijding. Effect: naaldvormige Gaussians, die typisch zijn voor cross-hatch- en streak-artefacten in gras en dicht gebladerte, worden tijdens de training ofwel tot rondere vormen gedwongen ofwel gepurged. In ruil daarvoor ~6% L1-regressie bij standaard-binnenscènes, geen effect bij strikte object-captures. Sweet spot is bij dronevlucht-opnames boven vegetatie. Schrijft op, persisteert via. Implementatie in optimizer.metal als extra penalty in de gradiëntberekening. Zie de opmerking in het project-memory: V549d was de uitgeleverde versie, een latere V549f met agressievere scale-reg werd weer teruggedraaid wegens catastrophic regression. Details: memory/dev_outdoor-floater-reduction.md en memory/dev_v549f-needle-reduction.md.
S10Reconstruct Sky Dome
WAAR
Instellingen → General → Experimental — Outdoor Floater Reduction → Toggle „Reconstruct Sky Dome". Bound:. Default: false.
TECHNISCH
Activeert de pre-training-sky-dome-projectie (V549e MVP). Na SfM en vóór de trainingsstart wordt voor elke invoercamera het in S7 gedeelde Apple-Vision-sky-masker uit het beeld geëxtraheerd, de sky-pixels worden met de camera-intrinsics geprojecteerd op een virtueel boloppervlak (standaardradius 8× scènradius). Op deze bol worden ~5.000 nieuwe Gaussians geïnitialiseerd met kleur-gemiddelden uit de geprojecteerde sky-pixels, zeer grote schaal (1,0 in scène-eenheden) en begin-opacity 0,95. Deze 5.000 Gaussians zijn geen sky-masker in klassieke zin — ze worden getraind zoals alle andere, maar door de hoge begin-opacity in een dunne schaal gehouden. Resultaat: bij 360°-novel-views in outdoor/drone-scènes verschijnen in plaats van donkere confetti-klontjes daadwerkelijke luchtkleur en wolkstructuren. De waarde wordt over herstarts onthouden. Alleen zinvol bij outdoor-scènes met minstens 360°-camera-dekking; bij pure object-captures zonder zichtbare lucht heeft het geen effect. Status: experimenteel, bredere A/B-validatie over verdere outdoor-sets staat nog open.
AI-Helpers-tabblad

S11AI Helpers enabled (Master)
WAAR
Instellingen → AI Helpers → eerste sectie → Toggle „AI Helpers enabled". Bound:. Default: true.
TECHNISCH
Hoofdschakelaar over alle AI-Helpers-functies in de pipeline. Als uit, slaat de import- en SfM-pipeline alle ML-gebaseerde voorverwerkingsstappen volledig over — geen Apple-Vision-aanroep, geen CoreML-model-load, geen NPU-wakeup. Als aan, worden de individuele sub-toggles (S12–S14) geraadpleegd. De waarde wordt over herstarts onthouden. Werkt op de volgende stappen: (a) frame-quality-pre-check vóór SfM (S12), (b) loop-closure-detectie (S13), (c) auto-sky-masking als standaardwaarde voor nieuwe trainingen (S14). Belangrijk: bij uit zijn de drie sub-toggles gedeactiveerd en visueel grijs. Footer-opmerking benadrukt dat alle AI-helpers strikt on-device draaien — geen beeld-upload, geen cloud-verwerking. Privacy-garantie komt door het gebruik van uitsluitend Apple-Vision-framework (lokaal op de Neural Engine) en CoreML-modellen, die rechtstreeks in de app-bundle staan.
S12Frame quality check
WAAR
Instellingen → AI Helpers → Available-sectie → Toggle „Frame quality check". Bound:. Default: true.
TECHNISCH
Activeert de frame-quality-screener (fase 3.11), die vóór de SfM-aanroep elke geïmporteerde frame analyseert. Pipeline-stappen per frame: (a) Laplacian-variance-filter uit Apple Vision (blur-detectie — drempel ~150), (b) histogram-gebaseerde over-/onderbelichtings-check (drempel: >5% pixel bij 0 of 255), (c) blank-frame-detectie (standaarddeviatie < 5 over alle pixels). Frames die alle drie checks doorstaan, gaan direct door. Frames die minstens één check falen, openen een modaal bevestigingsdialoogvenster dat elke problematische frame met thumbnail en motivatie toont en vraagt of hij moet worden verwijderd. Belangrijk: geen automatische verwijdering — het dialoogvenster is altijd verplicht, de gebruiker behoudt de laatste beslissing. Performance: ~50 ms per frame op M3 Ultra, loopt parallel. Bij uit worden alle frames ongecontroleerd aan SfM doorgegeven. Bij gedeactiveerde master (S11) is deze toggle visueel grijs en zonder werking. Uitgeleverde status volgens memory: SHIPPED 2026-05-23.
S13Loop closure detection
WAAR
Instellingen → AI Helpers → Available-sectie → Toggle „Loop closure detection". Bound:. Default: true.
TECHNISCH
Activeert de Apple-Vision-Feature-Print-gebaseerde loop-closure-detectie. Voor elke geïmporteerde frame wordt een ~768-dimensionale feature-vector berekend, die een neurale embedding van de beeldinhoud voorstelt. Vervolgens worden alle feature-prints paarsgewijs via cosine-similarity vergeleken. Paren met similarity > 0,85 en afstand in frame-index > 50 (dus niet-naburige frames) worden als „loop-closure-kandidaten" geïdentificeerd en in een sidecar-JSONL-bestand in de projectmap geschreven. Informational only — de geïmporteerde beeldsequentie wordt niet gewijzigd. Doel: geeft de SfM-solver (in het bijzonder COLMAP) een hint dat deze frames in de 3D-ruimte samen-cluster horen. Voor native SfM is de sidecar-informatie momenteel alleen documenterend; COLMAP gebruikt de hints intern via custom matches-file (handmatige integratie mogelijk, niet automatisch gekoppeld). Performance: ~200 ms per frame op M3 Ultra, loopt parallel. Bij uit worden geen feature-prints gegenereerd. Bij gedeactiveerde master (S11) visueel grijs.
S14Auto sky masking (AI)
WAAR
Instellingen → AI Helpers → Available-sectie → Toggle „Auto sky masking". Bound: UserDefaults.standard.bool(forKey: "aiHelpersSkyMaskingDefault") (via custom-binding). Default: false.
TECHNISCH
Stelt de standaardwaarde voor de sky-masking-instelling uit S7 bij nieuwe trainingsconfiguraties in. Anders dan S11–S13 leeft de eigenlijke sky-masking-instelling per trainingssessie en wordt niet over app-herstarts onthouden (zie S7). Om de AI-helpers-UI desondanks een persistente standaard voor „nieuwe trainingen" te kunnen bieden, bestaat deze schaduwwaarde: hij wordt over herstarts onthouden en bij het opzetten van een nieuwe training (bijv. nieuwe project-import) als initiële standaard voor het sky-masking overgenomen. Bij gedeactiveerde master (S11) visueel grijs.
Inspector-spiegel-instellingen
De overige instellingen-items (S17–S33) uit de inventaristabel zijn spiegelingen uit de Expert-Inspector en in hoofdstuk 2 (Inspector-Controls I12–I29) gedocumenteerd. Ze verschijnen niet fysiek in het instellingenvenster, maar werden in de inventaris alleen daarom opgenomen, omdat ze via TrainingConfig-properties lopen die per gepersisteerd worden en in zoverre formeel het karakter van instellingen hebben. Voor inhoudelijke uitleg zie daar.
Wanneer wat?
| Instelling | Reikwijdte | Persistentie |
|---|---|---|
| S1 Default Mode | App-globaal | App-herstart |
| S2 Language | App-globaal | App-herstart |
| S3 Viewport Background | App-globaal (standaard) + runtime | App-herstart |
| S4 Auto-Rotate After Training | App-globaal | App-herstart |
| S5 Live Preview Interval | Standaard voor nieuwe trainingen | App-herstart |
| S6 Throttle Delay | Standaard voor nieuwe trainingen | App-herstart |
| S7 Sky Masking | Huidige training | alleen sessie |
| S8 Mid-Training Floater Cleanup | App-globaal | App-herstart |
| S9 Reduce Elongated Gaussians | App-globaal | App-herstart |
| S10 Reconstruct Sky Dome | App-globaal | App-herstart |
| S11 AI Helpers Master | App-globaal | App-herstart |
| S12 Frame quality check | App-globaal | App-herstart |
| S13 Loop closure detection | App-globaal | App-herstart |
| S14 Auto sky masking | Standaard voor nieuwe trainingen | App-herstart |
App-globaal = werkt op alle projecten. Standaard voor nieuwe trainingen = werkt alleen op de volgende aangelegde training, lopende sessies blijven ongewijzigd. Huidige training = werkt direct op de lopende trainingsconfiguratie, persisteert echter niet zonder expliciete re-import.