Brugervejledning

Kapitel 3 — Indstillinger

Indstillingsvinduet åbnes via RadianceKit → Indstillinger… eller standardgenvejen ⌘,. Det indeholder to faner: General og AI Helpers. I modsætning til Inspector-værdierne fra kapitel 2 virker indstillingerne fra dette vindue app-globalt (på tværs af alle projekter) — de persisteres og overlever app-genstart. General-fanen grupperer fire indholdsmæssige sektioner: Interface, Viewport, Training og en eksperimentel sektion til outdoor-floater-reduktion. AI-Helpers-fanen tænder for on-device-machine-learning-hjælperne (Vision, CoreML) til SfM- og trænings-forbehandling.

Tidligere betjeningselementer til samlet aktivering eller deaktivering af alle AI-helpers findes ikke længere i den aktuelle version — de er derfor ikke dokumenteret her. Også det tidligere „Coming Soon"- område til endnu ikke leverede hjælpere er fjernet og refereres ikke her.

General-fanen

Indstillinger → General-fanen med brugerflade, viewport, training og experimental-sektion
Indstillinger → General-fanen med brugerflade, viewport, training og experimental-sektion

S1Default Mode

HVOR

Settings → General → Interface → Default Mode-vælger. Bound:. Default: .simple.

TEKNISK

Styrer, hvilken af to UI-tilstande appen åbner i ved næste opstart. „Simple Mode" er den guidede wizard-workflow i 4 trin (Import → Processing → Preview → Export, dokumenteret i kapitel 10 under Z1–Z4), „Expert Mode" det klassiske tre-panel-layout med Navigator, 3D-viewport og Expert-Inspector fra kapitel 2. Værdien huskes på tværs af genstart. Identisk virkning som menuen Mode → Simple Mode (⌘1) / Mode → Expert Mode (⌘2), bortset fra at menuen skifter den løbende session, mens denne vælger sætter standarden for fremtidige sessioner. Begge tilstande tilgår samme projekt-state — projekter, kameraer og træningskonfiguration bevares ved tilstandsskift. Tilstandsspecifikke værktøjslinjeknapper gen-rendres med det samme.

S2Language

HVOR

Settings → General → Interface → Language-vælger. Bound:. Default: .system (følger macOS-sproget).

TEKNISK

Vælger visningssproget for hele app-UI'en, uafhængigt af macOS-systemsproget. RadianceKit er lokaliseret til 17 sprog (de, en, pl, en-AU, ar-SA plus 12 yderligere). Ved „System" følger appen macOS-sproget. Ved et eksplicit valg huskes sprogindstillingen på tværs af genstart; fuld virkning kræver som regel en app-genstart, fordi lokaliserings-bundles kun indlæses ved opstart. De 298 dokumenterede lokaliseringsnøgler i projektet medtages alle, inklusive alle tekster i sub-views og hjælpe-tooltips.

S3Viewport Background

HVOR

Settings → General → Viewport → Background-vælger. Bound:. Default: .darkGray (RGB 0.1, 0.1, 0.1).

TEKNISK

Sætter standardbaggrundsfarven for 3D-viewporten. Tre muligheder: „Dark Gray" (RGB 0.1, 0.1, 0.1 — default), „Black" (0, 0, 0) og „White" (1, 1, 1). Indstillingen persisterer standarden for nye projekter og sessioner på tværs af genstart og opdaterer samtidig den kørende Metal-renderer med det samme. Identiske muligheder findes i menuen Viewport → Background (M21, M22, M23), men Settings-vælgeren sætter standarden, mens menuen skifter den løbende visning. Vigtigt for screenshots og demo-videoer: hvide baggrunde fremhæver grønne/blå floaters tydeligere, mørke baggrunde er bedre til rene render-optagelser.

S4Auto-Rotate After Training

HVOR

Settings → General → Viewport → Toggle „Auto-Rotate After Training". Bound:. Default: false.

TEKNISK

Starter umiddelbart efter trænings-slut en kontinuerlig turntable-rotation af viewport-kameraet om scenens tyngdepunkt (standard-rotationshastighed ~0.3 rad/s). Praktisk nyttig til demo-sessioner, A/B-sammenligninger og til direkte at vurdere fra 360°-perspektiv, om der er opstået „floaters" ved scene-kanten. Effekten er visuelt identisk med menuen Viewport → Toggle Auto-Rotation (M16, ⌘⌥T), bortset fra at toggle'en her udløser adfærden automatisk efter trænings-slut i stedet for manuelt. Lader sig senere afbryde til enhver tid via menuen eller ved klik i viewporten (som pauser rotationen). Har ingen indflydelse på trænings-performance — rotationen kører først, når træningen er færdig.

S5Live Preview Interval

HVOR

Settings → General → Training → Live Preview-vælger. Bound: AppState.trainingConfig.livePreviewInterval. Default: 0 (Off).

TEKNISK

Bestemmer, med hvilket iterations-interval det løbende træningssnapshot rendres ind i 3D-viewporten. Fire diskrete værdier: 0 („Off"), 50, 250, 1000 iterationer. Ved aktiv Live Preview kopierer træneren Gaussian-bufferen fra GPU'en til en separat render-buffer og udløser en viewport-redraw. Ved „Off" opdateres viewporten først efter trænings-afslutning. Performance-omkostning: hver 50 iterationer ~5–10% langsommere på M3 Ultra, hver 250 iterationer ~1–2% langsommere, hver 1000 iterationer umålelig. Memory-overhead konstant ~2 GB til snapshot-bufferen, uafhængigt af intervallet. Værdien fungerer som standard for nye træninger; efter trænings-start viser trænings-Inspectoren den reelle live-værdi for den pågældende træning. Ved interval 50 er det visuelle indtryk en flydende „opvækst" af punktskyen, ved 1000 virker det hakkende.

S6Throttle Delay

HVOR

Settings → General → Training → Throttle-vælger. Bound: AppState.trainingConfig.throttleDelayMs. Default: 0 (Off).

TEKNISK

Indsætter en kunstig forsinkelse i millisekunder mellem trænings-iterationer. Fire diskrete værdier: 0 („Off"), 2 („Light"), 5 („Moderate"), 10 („Eco"). Mening: ved længere træninger (flere timer) bliver GPU'en ellers belastet 100 %, hvilket fører til mærkbart langsommere system-UI (musemarkøren hakker, andre apps bliver trægme). Throttle-forsinkelsen giver GPU'en pauser, hvor andre opgaver kan udføres. Performance-omkostningen er betragtelig: ved 5 ms throttle varer en typisk 40K-træning omkring 50–80% længere end uden throttle. I performance-tilstanden „Eco" (10 ms) er forsinkelsen pr. iteration længere end selve iterationen — faktor 2–3× langsommere. Ved aktiv throttle vises der under vælgeren en bemærkning: „Throttle is on. Training will be slower than usual." Selve appen reagerer ikke mærkbart bedre — kun andre apps har gavn af det.

S7Sky Masking

HVOR

Settings → General → Experimental — Outdoor Floater Reduction → Toggle „Sky Masking". Bound: AppState.trainingConfig.skyMaskingEnabled. Default: false.

TEKNISK

Aktiverer pre-training Apple-Vision-baseret sky-pixel-segmentering. Før trænings-start ekstraheres sky-regionen for hvert input-kamera via Apple-Vision-Foreground-Mask (Sky = Background) og tilknyttes det pågældende kamera som pr.-pixel-maske. Under træningen multipliceres loss-bidraget pr. pixel med komplementet af sky-masken — sky-pixel bidrager 0 til gradienten, så gaussians, der projicerer ind i himlen, ikke modtager optimerings-signaler og dermed ikke bliver „tættere" eller „lysere". Reducerer floaters (mørke klumper i himlen) ved outdoor-/drone-scener signifikant. Koster ~3% L1-regression ved klassisk 40K-træning (se memory/dev_outdoor-floater-reduction.md). Kun meningsfuld ved outdoor-scener med klart genkendelig himmel; ved indendørs scener eller hvid baggrund identificerer sky-segmenteringen forkerte områder og blokerer valide loss-signaler. I modsætning til de øvrige eksperimentelle toggles huskes værdien ikke på tværs af app-genstart — ved næste app-start er den slukket igen.

S8Mid-Training Floater Cleanup

HVOR

Settings → General → Experimental — Outdoor Floater Reduction → Toggle „Mid-Training Floater Cleanup". Bound:. Default: false.

TEKNISK

Aktiverer ved klassisk 40K-træning (preset „P4 Quality") to ekstra density-control-passes: ved iteration 20,000 og ved iteration 30,000. Begge passes gennemsøger alle gaussians efter tre kriterier: (a) meget lav opacity (standard 0.005), (b) lille screen-space-størrelse, (c) ingen loss-bidrag i de seneste 1000 iterationer. Gaussians, der opfylder alle tre betingelser, purges. Effekt: ~5–15% færre gaussians ved trænings-slut, synligt færre mørke klumper i himlen ved drone-/outdoor-scener. Koster ~1–3% L1-regression ved nærbillede-indoor-scener, derfor ikke aktiveret som default. Værdien huskes på tværs af genstart (i modsætning til S7). De to cleanup-iterationer (20K, 30K) er hårdt definerede og kan p.t. ikke ændres via UI; ved kortere træninger (f.eks. P2 Preview 5K) har toggle'en ingen effekt, fordi den aldrig når iterations-mærkerne. Detaljer: memory/dev_outdoor-floater-reduction.md.

S9Reduce Elongated Gaussians

HVOR

Settings → General → Experimental — Outdoor Floater Reduction → Toggle „Reduce Elongated Gaussians". Bound:. Default: false.

TEKNISK

Aktiverer en yderligere anisotropi-regularisering i loss-termen. Under optimeringen beregnes for hver gaussian anisotropien som forholdet mellem største og mindste skaleringsakse. Ligger forholdet over en threshold (, standard 10.0), tilføjes en penalty-term til loss'en, der skalerer proportionalt med overskridelsen. Effekt: nålformede gaussians, der er typiske for cross-hatch- og streak-artefakter i græs og tæt løv, tvinges under træningen enten til rundere former eller purges. Til gengæld ~6 % L1-regression ved standard-indoor-scener, ingen effekt ved strikte object-captures. Sweet spot er ved droneflyvningsoptagelser over vegetation. Skriver til, persisterer via. Implementering i optimizer.metal som en yderligere penalty i gradient-beregningen. Se bemærkningen i projekt-memory: V549d var den shippede version, en senere V549f med mere aggressiv scale-reg blev rullet tilbage på grund af katastrofal regression. Detaljer: memory/dev_outdoor-floater-reduction.md og memory/dev_v549f-needle-reduction.md.

S10Reconstruct Sky Dome

HVOR

Settings → General → Experimental — Outdoor Floater Reduction → Toggle „Reconstruct Sky Dome". Bound:. Default: false.

TEKNISK

Aktiverer pre-training sky-dome-projektionen (V549e MVP). Efter SfM og før trænings-start ekstraheres for hvert input-kamera den i S7 fælles brugte Apple-Vision-sky-maske fra billedet, sky-pixlene af-projiceres med kamera-intrinsics på en virtuel kugleoverflade (standard-radius 8× scene-radius). På denne kugle initialiseres ~5000 nye gaussians med farve-middelværdier fra de projicerede sky-pixler, meget stor skalering (1.0 i scene-enheder) og start-opacity 0.95. Disse 5000 gaussians er ikke en sky-mask i klassisk forstand — de trænes som alle andre, men holdes via den høje start-opacity i et tyndt skal. Resultat: ved 360°-novel-views i outdoor-/drone-scener fremstår faktiske himmelfarver og skyformationer i stedet for mørke konfetti-klumper. Værdien huskes på tværs af genstart. Kun meningsfuld ved outdoor-scener med mindst 360°-kameradækning; ved rene object-captures uden himmel har det ingen effekt. Status: eksperimentel, bredere A/B-validering på tværs af yderligere outdoor-sæt udestår.

AI-Helpers-fanen

Indstillinger → AI-helpers-fanen med master-kontakt og sub-toggles
Indstillinger → AI-helpers-fanen med master-kontakt og sub-toggles

S11AI Helpers enabled (Master)

HVOR

Settings → AI Helpers → første sektion → Toggle „AI Helpers enabled". Bound:. Default: true.

TEKNISK

Master-kontakt over alle AI-helpers-funktioner i pipelinen. Når slukket, springer import- og SfM-pipelinen alle ML-baserede forbehandlingsstadier helt over — intet Apple-Vision- kald, ingen CoreML-model-load, ingen NPU-opvågning. Når tændt, konsulteres de individuelle sub-toggles (S12–S14). Værdien huskes på tværs af genstart. Påvirker følgende stadier: (a) frame-quality- pre-check før SfM (S12), (b) loop-closure-detektion (S13), (c) auto-sky-masking som default-værdi for nye træninger (S14). Vigtigt: ved slukket er de tre sub-toggles deaktiveret og visuelt grånet ud. Footer-bemærkning understreger, at alle AI-helpers strikt kører on-device — ingen billed-upload, ingen sky-behandling. Privatlivsgarantien kommer ved udelukkende brug af Apple-Vision-framework (lokalt på Neural Engine) og CoreML-modeller, der ligger direkte i app-bundlen.

S12Frame quality check

HVOR

Settings → AI Helpers → Available-sektion → Toggle „Frame quality check". Bound:. Default: true.

TEKNISK

Aktiverer frame-quality-screeneren (fase 3.11), som før SfM-kaldet analyserer hver importeret frame. Pipeline-trin pr. frame: (a) Laplacian-variance-filter fra Apple Vision (sløringsdetektion — tærskel ~150), (b) histogram-baseret over/under-eksponerings-check (tærskel: >5% pixel ved 0 eller 255), (c) blank-frame-detect (standardafvigelse < 5 over alle pixel). Frames, der består alle tre tjek, går direkte igennem. Frames, der fejler mindst ét tjek, udløser en modal bekræftelsesdialog, der lister hvert problematisk frame med thumbnail og begrundelse og spørger, om det skal fjernes. Vigtigt: ingen automatisk sletning — dialogen er altid påkrævet, brugeren beholder den sidste beslutning. Performance: ~50 ms pr. frame på M3 Ultra, kører parallelt. Ved slukket sendes alle frames uprøvet videre til SfM. Ved deaktiveret master (S11) er denne toggle visuelt grånet ud og uden virkning. Shipped status ifølge memory: SHIPPED 2026-05-23.

S13Loop closure detection

HVOR

Settings → AI Helpers → Available-sektion → Toggle „Loop closure detection". Bound:. Default: true.

TEKNISK

Aktiverer Apple-Vision-Feature-Print-baseret loop-closure-detektion. For hver importeret frame beregnes en ~768-dimensional feature-vektor, som repræsenterer en neural indlejring af billed­indholdet. Derefter sammenlignes alle feature-prints parvis via cosine-similarity. Par med similarity > 0.85 og afstand i frame-index > 50 (altså ikke-naboliggende frames) identificeres som „loop-closure-kandidater" og skrives i en sidecar-JSONL-fil i projektmappen. Kun informativ — den importerede billed-sekvens modificeres ikke. Mening: giver SfM-solveren (især COLMAP) et hint om, at disse frames hører sammen i klyngen i 3D-rummet. For native SfM er sidecar-informationen p.t. kun dokumenterende; COLMAP bruger hintsene internt via custom matches-file (manuel integration mulig, ikke automatisk koblet). Performance: ~200 ms pr. frame på M3 Ultra, kører parallelt. Ved slukket genereres ingen feature-prints. Ved deaktiveret master (S11) visuelt grånet ud.

S14Auto sky masking (AI)

HVOR

Settings → AI Helpers → Available-sektion → Toggle „Auto sky masking". Bound: UserDefaults.standard.bool(forKey: "aiHelpersSkyMaskingDefault") (via custom-binding). Default: false.

TEKNISK

Sætter default-værdien for sky-masking-indstillingen fra S7 ved nye trænings-konfigurationer. I modsætning til S11–S13 lever den egentlige sky-masking-indstilling pr. training-session og huskes ikke på tværs af app-genstart (se S7). For at AI-helpers-UI'en alligevel kan tilbyde en persistent default for „nye træninger", findes denne skygge-værdi: den huskes på tværs af genstart og overtages som initial default for sky-masking ved opsætning af en ny træning (f.eks. ny projekt-import). Ved deaktiveret master (S11) visuelt grånet ud.

Inspector-spejls-settings

De øvrige settings-poster (S17–S33) fra inventartabellen er spejlinger fra Expert-Inspectoren og dokumenteret i kapitel 2 (Inspector-Controls I12–I29). De optræder ikke fysisk i indstillingsvinduet, men er kun listet i inventaret, fordi de kører via TrainingConfig-properties, der persisteres via, og dermed formelt har settings-karakter. For indholdsmæssige forklaringer henvises der dertil.

Hvornår hvad?

SettingGyldighedsområdePersistens
S1 Default ModeApp-globaltApp-genstart
S2 LanguageApp-globaltApp-genstart
S3 Viewport BackgroundApp-globalt (default) + runtimeApp-genstart
S4 Auto-Rotate After TrainingApp-globaltApp-genstart
S5 Live Preview IntervalDefault for nye træningerApp-genstart
S6 Throttle DelayDefault for nye træningerApp-genstart
S7 Sky MaskingAktuel træningkun session
S8 Mid-Training Floater CleanupApp-globaltApp-genstart
S9 Reduce Elongated GaussiansApp-globaltApp-genstart
S10 Reconstruct Sky DomeApp-globaltApp-genstart
S11 AI Helpers MasterApp-globaltApp-genstart
S12 Frame quality checkApp-globaltApp-genstart
S13 Loop closure detectionApp-globaltApp-genstart
S14 Auto sky maskingDefault for nye træningerApp-genstart

App-globalt = virker på alle projekter. Default for nye træninger = virker kun på den næste oprettede træning, løbende sessioner forbliver uændrede. Aktuel træning = virker med det samme på den løbende trænings-konfiguration, men persisterer ikke uden eksplicit reimport.