Brugervejledning

Kapitel 2 — Inspector (Expert View)

Expert-tilstand tom — til venstre Project Navigator med Images/Cameras/Log, overskrift „Images (0)” og aflæsningsområde „Drop images here / or tap + to import”, i midten en tom Viewport, til højre Inspector med seks sammenklappede sektioner (Presets, Cameras & Capture, Training, Progress, Look, Export), hver med overskrift og grå fase-underlinje; nederst statuslinjen „Idle” med grøn start- og rød stopknap
Expert-tilstand tom — til venstre Project Navigator med Images/Cameras/Log, overskrift „Images (0)" og aflæsningsområde „Drop images here / or tap + to import", i midten en tom Viewport, til højre Inspector med seks sammenklappede sektioner (Presets, Cameras & Capture, Training, Progress, Look, Export), hver med overskrift og grå fase-underlinje; nederst statuslinjen „Idle" med grøn start- og rød stopknap

Tom Inspector før import: Venstre kolonne viser punkterne Images, Cameras og Log, derunder overskriften „Images (0)" og aflæsningsområdet „Drop images here / or tap + to import". Viewport i midten er tomt. Til højre står Inspector med seks sammenklappede sektioner: Presets, Cameras & Capture, Training, Progress, Look og Export. Under hver overskrift fortæller en grå linje, hvad sektionen gør, og hvornår den træder i kraft — „Ready-made recipes — they replace the training settings" (Presets), „Before training · decides how camera positions are solved · applies to the next run" (Cameras & Capture), „Before training · drives scene build-up and optimization · applies to the next run" (Training), „Display only" (Progress), „After training · applies immediately · reversible any time" (Look) og „Leveling the floor turns the view at once; the chosen orientation and format apply when saving" (Export). Helt nederst kører statuslinjen med status „Idle" samt den grønne start- og den røde stopknap; øverst til højre findes skifteren Simple/Expert, her sat til Expert.

Inspector med 35 importerede billeder — overskrift „Images (35)”, filnavne IMG_0953.JPG i stigende rækkefølge, Viewport stadig tomt, status „Idle”
Inspector med 35 importerede billeder — overskrift „Images (35)", filnavne IMG_0953.JPG i stigende rækkefølge, Viewport stadig tomt, status „Idle"

Inspector efter import: Overskriften på billedlisten viser „Images (35)", derunder står de importerede optagelser med stigende filnavne fra IMG_0953.JPG. Billederne i denne testserie foreligger med 4032×3024 pixels; Auto-Render-Scale-logikken læser denne opløsning og foreslår en passende Render Scale. Viewport er stadig tomt, statuslinjen viser „Idle". Den grønne startknap nederst til venstre er nu aktiv og starter træningen med det aktive preset.

Inspector mid-training — titellinje „RadianceKit — Training 23%”, i Viewport livevisningen af en stofand på et fåreskind, fremskridt 4,700/20,000 med ETA 1m9s, metriklinje Loss 0.0109 / LR 2.0e-04 / SH 1 / Gaussians 16.0K, i Inspector den udfoldede gruppe CLASSIC med grønt markeret „Balanced 20K iters”
Inspector mid-training — titellinje „RadianceKit — Training 23%", i Viewport livevisningen af en stofand på et fåreskind, fremskridt 4,700/20,000 med ETA 1m9s, metriklinje Loss 0.0109 / LR 2.0e-04 / SH 1 / Gaussians 16.0K, i Inspector den udfoldede gruppe CLASSIC med grønt markeret „Balanced 20K iters"

Inspector under træning: Titellinjen viser den samlede fremgang, her „RadianceKit — Training 23%". Viewport renderer den igangværende rekonstruktion i realtid — en stofand på et fåreskind, allerede tydeligt genkendelig (opdateringsintervallet for livevisningen findes under Settings → General → Training → Live Preview). Under Viewport kører fremskridtet („4,700/20,000", „ETA 1m9s") og metriklinjen med Loss 0.0109, LR 2.0e-04, SH 1 og Gaussians 16.0K; nederst til venstre ligger pause- og stopknappen. I Inspector er gruppen CLASSIC udfoldet, „Balanced 20K iters" har det grønne flueben. Et „Modified"-mærke vises først, når en parameter afviger fra preset'et — her ses ingen. Sidebaren „Log" samler SfM- og Training-Stage-events.

Inspector efter afsluttet træning — titellinje „RadianceKit — Training Complete — 8,708 Gaussians”, til venstre „Complete” med 8,708 Gaussians, Images 25 og Cameras 35, statuslinje „Completed” ved 20,000/20,000, metriklinje Loss 0.0075 / LR 0.0e+00 / SH 3 / Gaussians 9.7K, i Viewport den færdige rekonstruktion af anden i fuld format
Inspector efter afsluttet træning — titellinje „RadianceKit — Training Complete — 8,708 Gaussians", til venstre „Complete" med 8,708 Gaussians, Images 25 og Cameras 35, statuslinje „Completed" ved 20,000/20,000, metriklinje Loss 0.0075 / LR 0.0e+00 / SH 3 / Gaussians 9.7K, i Viewport den færdige rekonstruktion af anden i fuld format

Inspector efter træning: Titellinjen angiver resultatet: „Training Complete — 8,708 Gaussians". I venstre kolonne står „Complete" med samme tal, samt Images 25 og Cameras 35 — 25 billeder, fordi Frame-Quality-dialogen har sorteret ti slørede optagelser fra ud af 35. Statuslinjen melder „Completed" ved 20,000/20,000, metriklinjen Loss 0.0075, LR 0.0e+00, SH 3 og Gaussians 9.7K. Viewport viser den færdige punktsky i fuld format — orbital træk-navigation aktiv (roterer om scenens centrum).

At der her står to forskellige Gaussian-tal, er tilsigtet: Metriklinjen og Training Metrics angiver status ved slutningen af træningen (her 9,660, afrundet 9.7K), titellinjen og scenen status efter de automatiske oprydningsrunder (8,708). Imellem dem ligger Post-Training Compactification og fjernelsen af nåle- og skiveformede splats. Det mindre tal er det, der står i Viewport og som gemmes ved eksport. Grupperne Training Metrics og Loss History er nu fyldt med slutværdierne, og Export-sektionen er aktiv.

Inspector er den højre sidebjælke i Expert Mode (⌘2). Den samler alle træningsrelevante parametre i seks sammenklappelige sektioner, som siden 2026-07-18 er grupperet efter domæne. Standardrækkefølgen fra top til bund er: Presets, Kameras & Optagelse, Training, Fremskridt, Look og Export. Under hver overskrift står en anden linje, som angiver fasen — hvornår sektionen træder i kraft, og hvor reversibel den er (f.eks. „Before training · decides how camera positions are solved · applies to the next run" ved Kameras & Optagelse, „After training · applies immediately · reversible any time" ved Look, „Display only" ved Fremskridt). To tidligere sektioner er blevet slået sammen: Metrikker og Tabsdiagram er nu to separat sammenklappelige grupper („Training Metrics" og „Loss History") inden for Fremskridt, og den tidligere Enhancements-sektion sidder nu fuldstændigt i Training. „Look"-sektionen (billedtilpasninger efter træning) er den reelle UI-omdøbning af den tidligere „Finishing"-sektion — dens interne navn forbliver af kompatibilitetshensyn „Finishing", mens den viste overskrift hedder „Look" (samme mønster gælder Training, som internt hedder „Training Configuration"). Hver sektion kan klappes sammen ved klik på headeren, og rækkefølgen kan omarrangeres via træk-og-slip. Ved første start er sektionerne sammenklappede — på billedet ovenfor er alle seks lukket; app-tilstanden gemmer derefter præferencer for sammenklapning og rækkefølge på tværs af app-starter. En allerede gemt gammel opsætning migreres én gang til den nye gruppering ved første start; Viewport ▸ Reset Inspector Layout gendanner leveringstilstanden.

En række betjeningselementer fra Inspector optræder i næsten identisk form også i indstillingerne (kapitel 3) — typisk SfM-backend, Sky-Masking og lignende standardværdier. Adskillelsen er tilsigtet: Indstillingerne leverer den app-globale skabelon til nyoprettede projekter, Inspector overskriver disse værdier for det aktuelt åbne projekt. Den, der først kender betjeningslogikken på den ene side, kan bruge den anden blindt.

Venstre kolonne i Expert Mode — Project Navigator — hører ikke til Inspector, men er dens direkte nabo. Der kan importerede billeder vælges med et klik, vises i Quick Look med mellemrumstasten og slettes via minus-knappen eller slet-tasten (med Cmd-Z til fortrydelse). Inspector følger det aktuelle sidebar-valg med kontekstspecifikke detaljeoplysninger, men de syv hovedsektioner forbliver altid tilgængelige.

Look-sektion (L1–L5)

Look-sektionen (internt fortsat kaldet „Finishing") er siden domæne-omgrupperingen den femte Inspector-sektion — mellem fremskridt og eksport — og samler post-training -billedjusteringerne ét sted. Alle skydere arbejder ikke destruktivt: Hver slider anvender look-beregningen igen på et uændret pristine-snapshot (original DC-farve, opacity, skalering) — justeringen er dermed idempotent, ikke kumulativ. Resultatet vises live i viewporten (WYSIWYG, nøjagtigt som den senere eksport) og bages ind i hver eksport. Sektionen er først tilgængelig efter afslutningen af et træningsforløb (før det står „Available after a training run completes."); dens værdier nulstilles ved hvert nyt træningsforløb. Så længe en eksport kører, er alle skydere låst — en lock-note „Locked while exporting — the file uses the current settings." vises og GroupBoxen er deaktiveret.

L1Saturation-slider

HVOR

Inspector → Look-sektion → GroupBox → Saturation.

TEKNISK

Slider 0.5–1.2, tocifret visning (f.eks. „1.00"). Skalerer SH-DC-kroma for hver splat omkring luminans-værdien: 1.0 = uændret, < 1.0 = afmættet (farve trukket mod gråtone), > 1.0 = kraftigere. Matematisk beregnes DC-farven altid tilbage fra pristine-snapshottet, så gentagen skub ikke summerer sig op. Er valideret på DJI-drone-materiale (Pensford-viadukten), som har en tendens til at være overtegnet — drone-defaulten ligger på 0.82. Virker kun på farve-basen (SH-grad 0), højere SH-koefficienter forbliver upåvirket.

L2Splat length-slider

HVOR

Inspector → Look-sektion → GroupBox → Splat length.

TEKNISK

Slider 0.3–1.0, tocifret visning. Trækker de tre skaleringsakser for hver gaussian i log-rummet mod deres gennemsnit (jo mindre værdien, desto stærkere): 1.0 = uændret, mindre værdier gør aflange „nåle"-splats rundere, 0 ville være rene kugler. Angriber nåleagtige, overstrakte splats uden at ændre den samlede størrelse, og reducerer dermed typiske „konfetti"-artefakter. Anvendes ud fra pristine-snapshottet (original log-skalering), derfor idempotent. Kommuterer med Splat size (L3), fordi begge arbejder i log-rummet.

L3Splat size-slider

HVOR

Inspector → Look-sektion → GroupBox → Splat size.

TEKNISK

Slider 0.5–2.0, tocifret visning. Skalerer hver gaussian uniformt på alle tre akser: 1.0 = uændret, < 1.0 = mindre/tættere/skarpere, > 1.0 = større/„fluffigere" (fylder huller mellem splats). Da skaleringerne ligger i log-rummet, bliver multiplikationen der til en additiv forskydning — det kommuterer med Splat length (L2), fordi en konstant offset lader afvigelsen-fra-gennemsnittet stå urørt. Ud fra pristine-snapshottet, altså idempotent. Nyt i denne version.

L4Fade far region (med under-slidere)

HVOR

Inspector → Look-sektion → GroupBox → Toggle „Fade far region" plus under-sliderne „Fade start ×radius" og „Fade floor".

TEKNISK

Toggle, der aktiverer et radialt opacity-fald med afstanden fra kameraets tyngdepunkt — de svagt observerede „fjern-konfetti" i baggrunden blændes ud. Kun til orbit-optagelser: Toggle'en er gråtonet, hvis scenen ikke er egnet til det (lineære flyvninger, for få eller degenererede kameraer); i så fald vises i stedet for under-sliderne noten „Far-fade applies only to orbit captures (not this scene)." Egnetheden fastslås via azimut-dækningen af kamerapositionerne (en orbit kredser om tyngdepunktet og fylder mange kompas-sektorer, en lineær flyvning kun ~2). To under-slidere styrer geometrien: Fade start ×radius (1.0–3.0) sætter indre radius som et multiplum af orbit-radiussen, inden for hvilken der gælder fuld opacity; Fade floor (0.0–1.0) er opacity-faktoren langt uden for fade-radiussen. Vigtigt: Fade'en springer sky-dome- området over (kuplens fastfrosne gaussians), så den bevidste baggrundskuppel ikke også dæmpes.

L5Reset finishing-knap

HVOR

Inspector → Look-sektion → GroupBox → „Reset finishing" (nederst, lille knap).

TEKNISK

Nulstiller alle look-indstillinger til standardværdierne (Saturation 1.0, Fade fra, Splat length 1.0, Splat size 1.0) og udløser straks en fornyet finishing, så viewporten springer tilbage til den uændrede trænede tilstand. Da hele look-stakken regner idempotent ud fra pristine-snapshottet, er „tilbage til standard" nøjagtigt det oprindelige trænings-output — intet kvalitetstab pga. gentagen frem og tilbage. Ligesom alle skydere i sektionen låst under en igangværende eksport.

Presets-sektion (I1–I11)

Presets-sektionen er den hurtigste vej til at anvende en testet konfiguration. Indbyggede presets (Capture Class, Classic, MCMC, Hybrid) giver afprøvede, reproducerbare udgangspunkter; egne presets kan gemmes, eksporteres, importeres og deles. Listen er grupperet efter kategorier (Capture Class, Classic, MCMC, Hybrid, Custom) og mere end én kategori kan være udfoldet samtidig. Via kontekstmenu-mekanismen (højreklik på en række) kan du nå Export, Duplicate og — for egne presets — Delete.

I1Save…-knap

HVOR

Inspector → Presets-sektion → Save…-knap (handlingslinje nederst).

TEKNISK

Åbner et popover med tekstfelt og Save-/Cancel-knapper. Den aktuelle tilstand af trænings-indstillingerne bliver gemt som et nyt brugerdefineret preset (JSON-kodet, gemt app-bredt). Save-processen kopierer alle 81 trænings-parametre plus den aktuelle densification-strategi. Presettet havner automatisk i kategorien Custom, uanset hvilket indbygget preset det er afledt fra. Tomme navne og ren whitespace-indtastning bliver kasseret. Allerede eksisterende navne bliver ikke afvist — hvert preset har sit eget interne ID, dublerede navne er teknisk tilladt, men praktisk forvirrende.

I2Preset Name-tekstfelt

HVOR

Save-popover → tekstfelt „Preset Name".

TEKNISK

Simpelt tekstfelt med afrundet ramme, bred form. Værdien bliver overtaget som preset-navn ved klik på Save-knappen. Ingen længdebegrænsning i UI'et, men det gemte navn skal kunne JSON-kodes og vises i UI-listerne — emoji og æøå fungerer. Indholdet bliver automatisk nulstillet til en tom streng ved åbning af popoveret. Save-knappen forbliver disabled, så længe feltet er tomt efter trim. Der er ingen auto-suggest og ingen forudfyldning med navnet på det aktuelt aktive preset.

I3Cancel-knap (Save-dialog)

HVOR

Save-popover → Cancel-knap (til venstre).

TEKNISK

Lukker popoveret uden at gemme. Kasserer tekstfeltets indhold — ved næste åbning bliver det igen nulstillet til tomt af Save…-knap-logikken (I1). Standard-knapstil, ingen bekræftelses-dialoger, ingen genvejstaster. Den aktuelle TrainingConfig forbliver uændret, da save-processen slet ikke blev udført.

I4Save-knap (Save-dialog)

HVOR

Save-popover → Save-knap (til højre, fremhævet stil).

TEKNISK

Udløser selve lagringen. Validerer igen ikke-tomt navn (defensivt check) og skriver derefter den aktuelle TrainingConfig som JSON til app-lageret. Lukker derefter popoveret. Blå fremhævet, udgrået så længe tekstfeltet er tomt. Hvis lagringen mislykkes (f.eks. fordi app-lageret er fuldt — meget usandsynligt), er der i øjeblikket ingen synlig fejldialog; presettet ville så ved næste app-start simpelthen ikke dukke op.

I5Export…-knap

HVOR

Inspector → Presets-sektion → handlingslinje → Export…-knap.

TEKNISK

Eksporterer det aktuelt valgte preset som en .radiancepreset-fil (internt JSON). Disabled, hvis intet preset er valgt. Ved klik åbner appen en gem-dialog med forudindstillet filnavn (preset-navn + .radiancepreset-endelse). Det gemte format indeholder den komplette TrainingConfig plus metadata (navn, kategori, ID, indbygget-flag). Dobbeltklik i Finder åbner appen — men ikke automatisk importen; brugeren skal bruge Import-knappen (I6).

I6Import…-knap

HVOR

Inspector → Presets-sektion → handlingslinje → Import…-knap.

TEKNISK

Åbner en fildialog, der kun tillader .radiancepreset-filer (multivalg deaktiveret). Ved valg bliver JSON-filen indlæst, valideret og indsat i Custom-kategorien — med nyt internt ID, så der ikke opstår kollisioner med indbyggede. Importen sætter automatisk kategorien til Custom, selv hvis det eksporterede preset oprindeligt f.eks. var et indbygget. Beskadigede eller med en ældre skema-version inkompatible filer bliver stiltiende afvist, uden fejldialog (konsol-log giver dog besked).

I7Preset-række (klik-aktivering)

HVOR

Inspector → Presets-sektion → hver preset-række i hver kategori.

TEKNISK

Klik på en preset-række erstatter alle felter i TrainingConfig med værdierne fra presettet, husker ID'et på det aktive preset og nulstiller modified-status. Aktiv-hakket foran rækken vises kun, hvis presettet er valgt OG uændret. Så snart en værdi i TrainingConfig ændres (slider, stepper, toggle i de andre inspector-sektioner), vises et orange „Modified"-badge bag navnet. Indbyggede presets kan ikke overskrives — ved ændring skal der via Save-knappen (I1) oprettes en egen kopi.

I8Kontekstmenu „Export…"

HVOR

Højreklik på hver preset-række → første punkt „Export…".

TEKNISK

Identisk funktionalitet som I5 (Export…-knap), men nemmere tilgængelig — uden at presettet først skal være valgt. Eksporterer direkte det preset, der er klikket på i rækken. Fungerer ens for alle preset-kategorier (indbygget eller custom), ingen begrænsning. Eksporten indeholder det indbygget-flag og den originale kategori, men ved gen-import bliver kategorien mappet til Custom som beskrevet under I6.

I9Kontekstmenu „Duplicate"

HVOR

Højreklik på hver preset-række → andet punkt „Duplicate".

TEKNISK

Kloner presettet ind i Custom-kategorien. Opretter et nyt internt ID, tilføjer „ Copy" til navnet og gemmer kopien. Fungerer også for indbyggede presets — klonen er så redigerbar. Originalen forbliver urørt. TrainingConfig bliver kopieret værdi-for-værdi (JSON-roundtrip), så der ikke opstår referencebindinger mellem original og kopi.

I10Kontekstmenu „Delete"

HVOR

Højreklik på egne preset-rækker → sidste punkt „Delete" (rød, destructive).

TEKNISK

Kun synlig for custom-presets. Indbyggede kan ikke slettes. Punktet er markeret som destruktivt, vises rødt i kontekstmenuen og er adskilt bag en divider, så man ikke klikker på det ved et uheld. Der er ingen bekræftelses- dialog — ét klik sletter presettet med det samme. Det slettede preset kan ikke gendannes (Cmd-Z virker ikke her — undo findes i den aktuelle build kun for billedlisten, ikke for preset- operationer). Var det slettede preset lige aktivt, forbliver den aktuelle TrainingConfig uændret, kun det aktive preset-valg bliver nulstillet.

I11Kategori-header (fold ud/sammen)

HVOR

Inspector → Presets-sektion → hver kategori-header (Capture Class, Classic, MCMC, Hybrid, Custom).

TEKNISK

Fold-status pr. kategori med forskellig standardværdi: den kuraterede gruppe Capture Class starter foldet ud, Classic, MCMC, Hybrid og Custom starter sammenfoldet. Statussen bliver ikke gemt permanent — ved app-genstart er alle kategorier igen i standardtilstanden. Chevron-pilen roterer animeret. Tallet til højre i headeren viser antallet af presets i denne kategori. Klik- hitarealet omfatter hele header-området.

Træningskonfiguration-sektion (I12–I22)

Udsnit af Training-sektionen — Densification som tredelt omskifter Classic | MCMC | Hybrid med Classic aktiv, derunder de nedtonede rækker MCMC Quality (fra), Auto-scale by scene (til) og Max Gaussians 150,000 samt låse-hint; adskilt derunder Depth-Priority Scatter (fra), Full-Resolution Training (fra), Max Iterations 5,000 og Densify Until 3,500 med blåt kæde-symbol, skydeknap SSIM Weight ved 0.20 og Render Scale ved 50%
Udsnit af Training-sektionen — Densification som tredelt omskifter Classic | MCMC | Hybrid med Classic aktiv, derunder de nedtonede rækker MCMC Quality (fra), Auto-scale by scene (til) og Max Gaussians 150,000 samt låse-hint; adskilt derunder Depth-Priority Scatter (fra), Full-Resolution Training (fra), Max Iterations 5,000 og Densify Until 3,500 med blåt kæde-symbol, skydeknap SSIM Weight ved 0.20 og Render Scale ved 50%

Her finder du de centrale håndtag for trænings-kørslen: hvordan Densification arbejder, hvor mange iterationer, hvor stor SSIM-vægtningen er — og i bunden de tidligere selvstændige Enhancements (Perceptual Loss, Outdoor-gruppen, Advanced Densifier, Post-Training-pas). Øverst finder du Densification som tredelt omskifter Classic | MCMC | Hybrid. SfM-backenden er ikke længere her, men i sin egen sektion Kameraer & Optagelse (I12, I13). De tre MCMC-rækker („MCMC Quality", „Auto-scale by scene" og „Max Gaussians") forsvinder ikke længere i Classic-tilstand, men forbliver synlige og bliver nedtonet; derunder står en række med lås-symbol, der fortæller, hvad der skal ændres („Only used by the MCMC and Hybrid densifiers — switch Densification above to change these."). En adskilt blok derunder samler de rækker, der gælder for enhver densifier: Depth-Priority Scatter, Full-Resolution Training, det koblede par Max Iterations / Densify Until samt skydeknapperne SSIM Weight og Render Scale.

I12Camera Alignment-picker

HVOR

Inspector → Kameraer & Optagelse → Camera Alignment (pop-up-menu under Projection-pickeren).

TEKNISK

Pop-up-menu, ikke en segmenteret picker — labels sprænger den smalle Inspector-kolonne. Hvilke poster der vises, afhænger af build: den sandboxede App Store-version tilbyder Apple Photogrammetry og Native, dev-/DMG-builds tilbyder desuden COLMAP. Grund: COLMAP er et eksternt kommandolinje-program, og sandboxede apps må ikke starte fremmede binærfiler (App Review-retningslinje 2.5.2) — derfor mangler backend-posten samt Mapper-picker og binærfil-sti i Store-buildet helt, i stedet for at være permanent nedtonet: en række, der aldrig kan lyse op, er ikke et hint, men støj. Skal ikke forveksles med: Import og eksport af et COLMAP-workspace er ren Swift-filparsing, kræver ikke en COLMAP-installation og fungerer i ethvert build (kapitel 1, M5). Tilføjelsen „(Beta)" på Native-posten er fjernet — Native har ikke været beta siden v1.5.2. Valget bestemmer SfM-backenden for den næste kørsel og styrer samtidig, hvilke rækker derunder kan betjenes (I13, High-Quality, Native SfM Recipe). Fodnote i UI'et: Ved et usorteret fotosæt retter pipelinen altid op med Native, uanset hvad pickeren viser — denne opskrift findes kun der. Pickeren låses bevidst ikke (værdien er ikke utilgængelig, den bliver blot overstyret); i stedet vises et hint med forgrenings-symbol.

I13FOV Override-felt (Native SfM)

HVOR

Inspector → Kameraer & Optagelse → FOV Override (altid synlig, kan kun betjenes ved Camera Alignment = Native).

TEKNISK

Numerisk tekstfelt (område 0-170°), standard 0 = automatisk bestemmelse ud fra EXIF eller heuristik. Den manuelle indtastning er nødvendig, hvis input-billederne er udtrukket fra en video, der ikke indeholder brændvidde-metadata. Typiske værdier: iPhone Wide ≈ 73°, DJI Mavic Wide-Crop ≈ 70°, drone med fuldformat-sensor ≈ 84°. Værdien klemmes til [0, 170] — værdier udenfor dette område skubbes straks tilbage. Påvirker kun den native SfM-pipeline (Q4/Q5); Apple Photogrammetry ignorerer denne værdi fuldstændigt. Siden 2026-07-18: Under andre backends bliver feltet ikke længere skjult, men nedtonet — sammen med „High-Quality" og „Native SfM Recipe" og en række med lås-symbol („These configure the Native aligner — choose Native under Camera Alignment to change them."). Den tidligere skjulning havde skjult, at disse knapper overhovedet findes. Spærren afhænger af det valgte backend, ikke det faktisk anvendte — omdirigeringen af usorterede fotosæt til Native rapporteres i stedet af hintet under I12. Rækken „Native SfM Recipe" kræver desuden et usorteret fotosæt og bærer ellers sin egen forklarende linje.

I15Densification-picker

HVOR

Inspector → Træningskonfiguration → Densification (segmenteret picker, altid synlig).

TEKNISK

Skifter mellem de to Densification-strategier: Classic (original-3DGS-metoden med Clone/Split/Prune og gradient-tærskel) og MCMC (Stochastic Gradient Langevin Dynamics med relocation, NeurIPS 2024). Ved skift fra Classic til MCMC sætter appen automatisk de MCMC-specifikke felter til afprøvede standardværdier (reg-weights = 0, MCMC-cap- multiplier 3.0, sample-/noise-schedule). Uden denne automatiske initialisering led sessioner med gamle presets under 1.4.4-MCMC-collapse-fejlen (460K→5 gaussians, watchdog-kill). Picker- valget bestemmer desuden, hvilke Inspector-elementer der er synlige — ved MCMC dukker I16/I17 op. Detaljeret felt-virkning i kapitel 6, T11–T16 (Classic) og T61–T73 (MCMC).

I16MCMC Quality-omskifter

HVOR

Inspector → Training → MCMC Quality (altid synlig, kan betjenes ved Densification = MCMC eller Hybrid).

TEKNISK

Skifter gradient-akkumuleringen til 2 trin (aktiv) hhv. 1 trin (inaktiv). Akkumulerer gradienterne fra to efterfølgende kamera-views, før optimizer-skridtet udføres. Det udjævner optimeringsstien og forbedrer slutresultatet lidt, men mærkbart. Prisen: fordoblet træningstid. Ved meget lange træninger (200K iterationer) fører det til yderligere 10+ minutters ventetid — kan altså kun betale sig, hvis de sidste procent kvalitet virkelig er nødvendige. Påvirker kun træningen, ikke eksport-formatet eller Viewport-visningen. Gælder også for Hybrid, som bruger samme MCMC-maskineri. Siden 2026-07-18: Under Classic forsvinder rækken ikke længere, men bliver sammen med I17 og „Max Gaussians" nedtonet; derunder står „Only used by the MCMC and Hybrid densifiers — switch Densification above to change these."

I17Auto-scale by scene-omskifter

HVOR

Inspector → Training → Auto-scale by scene (altid synlig, kan betjenes ved Densification = MCMC eller Hybrid).

TEKNISK

Hvis aktiv, skalerer den effektive Max-Gaussians- grænse med SfM-init-point-count × MCMC-cap-multiplier (standard 3.0). Eksempel: SfM leverer 250K init-punkter, basis-cap = 150K, multiplier 3.0 → effektiv grænse = max(150K, 750K) = 750K. Hvis deaktiveret, gælder kun basisværdien strikt. Basisværdien selv står i rækken Max Gaussians lige derunder (siden 1.8, standard 150 000, indtastning klemt til 10 000–30 000 000). Ligger den effektive grænse over basisværdien, viser appen den som klartekst („Effective cap for this scene: …") — samt en RAM-advarsel, hvis den bliver for høj. Blev indført til v1.4.5, fordi store outdoor-optagelser med over 1000 frames og tilsvarende høj SfM-punkttæthed sultede Densification med den faste 150K-cap-standard — overflødige punkter blev tilbage, nye kunne ikke opstå. Standard OFF i brugerdefinerede presets, ON i MCMC-indbyggede presets. Virker kun i træningstiden, ikke ved eksport. Siden 2026-07-18: Under Classic bliver rækken nedtonet i stedet for skjult (med samme forklarende linje som I16); klartekst-visningen og RAM-advarslen vises her bevidst ikke, fordi Classic slet ikke anvender en øvre grænse.

I18Max Iterations-stepper

HVOR

Inspector → Træningskonfiguration → GroupBox → Max Iterations.

TEKNISK

Stepper med interval 1 000–100 000, trinstørrelse 1 000. Bestemmer det samlede antal optimizer-iterationer. Lineært korreleret med træningstiden (halvering = ca. 50% tid). Afprøvede værdier er 20K (Classic Balanced), 40K (Classic Quality) og 200K (MCMC Full). Over 40K giver Classic næsten ingen forbedring mere — udbyttet flader ud. Ved ændring bliver, hvis link-funktionen (I19) er aktiv, Densify Until trukket proportionalt med (standard-forhold: 0.5, dvs. Densify-Until = Max/2).

I19Link/Unlink-knap (Densify ↔ Iterations)

HVOR

Inspector → Træningskonfiguration → GroupBox → lille link-knap mellem Max Iterations og Densify Until.

TEKNISK

Omskifter-knap, der fastfryser forholdet mellem Densify Until og Max Iterations. Ved aktiv (link-ikon fremhævet) trækkes Densify Until proportionalt med ved enhver ændring af Max Iterations. Ved unlink (link-plus-ikon) forbliver værdierne uafhængige. Standard er linked, fordi det afspejler den typiske korrelation — trækker du træningen op til dobbelt så mange iterationer, vil du som regel også lade Densification køre proportionalt længere. Forholdet beregnes ud fra den aktuelle værdi, når link-knappen sættes; et typisk forhold er 0.5 (Densify-Until = halvdelen af iterations-tallet).

I20Densify Until-stepper

HVOR

Inspector → Træningskonfiguration → GroupBox → Densify Until.

TEKNISK

Stepper med interval 500–50 000, trinstørrelse 500. Bestemmer det iterations-indeks, hvorefter der ikke længere tilføjes nye gaussians gennem Clone/Split (Classic) eller relocation (MCMC). Efter dette forfines kun position og farve. Højere værdier = flere gaussians = større fil, længere tid pr. iteration (+30-60% GPU-tid pr. skridt). Typiske værdier: 15K (for 30K max-iter), 20K (for 40K), 100K (for 200K MCMC). Ved aktiv link (I19) automatisk medskaleret. Virker forskelligt ved Classic vs. MCMC: Classic stopper væksten fuldstændigt, MCMC stopper relocation-logikken, men sample-/noise- adaption kører videre.

I21SSIM Weight-skydeknap

HVOR

Inspector → Træningskonfiguration → GroupBox → SSIM Weight.

TEKNISK

Skydeknap 0.0–1.0 i 0.05-trin, vises som „0.20". Blander L1-loss (0.0) og SSIM-loss (1.0). L1 strammer lysstyrken pr. pixel, SSIM den strukturelle lighed (kanter, lokale statistikker). Standard 0.2 er værdien fra det oprindelige 3DGS-paper (Kerbl 2023) og et robust kompromis for næsten enhver scene. Højere værdier (0.5+) foretrækker detaljebevarelse, men kan ignorere lokale lysstyrke-fejl. Lavere værdier (< 0.1) fører til detaljetab ved skarpe kanter. SSIM- beregningen kører i shaderen med et 11×11-gaussisk vindue. Ydelse: Ved 0.0 (kun L1) er træningen ca. 8-12% hurtigere, fordi SSIM-beregningen i shaderen springes over.

I22Render Scale-skydeknap

HVOR

Inspector → Træningskonfiguration → GroupBox → Render Scale.

TEKNISK

Skydeknap 0.25–1.0 i 0.25-trin, vises som „100%". Skalerer trænings-rendering-opløsningen relativt til kildebilledets størrelse. Størst indflydelse på ydelsen: 50% reducerer GPU-tiden med ca. 75% (fordi 4× færre pixels), 25% med ca. 94%. Gradient-tærsklen skaleres automatisk med. Under skydeknappen vises en live-opløsnings-visning i MP (f.eks. „2304×1296 (3.0 MP)"). Afviger den aktuelle værdi fra den anbefalede, vises i orange skrift „— recommended: 50%". Anbefalingen sigter mod ~3 MP effektiv opløsning — det område, som Apple Silicon-GPU'er behandler mest effektivt. 4K-kildebilleder får f.eks. automatisk anbefalet 25%, Full HD-billeder 100%. En ændring udløser desuden buffer-reallokering.

Enhancements-grupper (i Training-sektionen, I26–I29, I42–I44)

Crop af Enhancements-rækkerne, i dag i bunden af Training-sektionen — øverst skyderen Perceptual Loss helt til venstre på „Off”, nedenunder gruppen Outdoor med de fire slukkede kontakter Sky Masking, Person Masking, Floater Cleanup og Reconstruct Sky Dome, derefter den sammenklappede række „Advanced Densifier (Expert)” med advarselstrekant, til sidst gruppen „Runs automatically at the end of training” med Post-Training Compactification (tændt) og Remove Needle/Disc Floaters. Hver række har sin egen forklaringslinje
Crop af Enhancements-rækkerne, i dag i bunden af Training-sektionen — øverst skyderen Perceptual Loss helt til venstre på „Off", nedenunder gruppen Outdoor med de fire slukkede kontakter Sky Masking, Person Masking, Floater Cleanup og Reconstruct Sky Dome, derefter den sammenklappede række „Advanced Densifier (Expert)" med advarselstrekant, til sidst gruppen „Runs automatically at the end of training" med Post-Training Compactification (tændt) og Remove Needle/Disc Floaters. Hver række har sin egen forklaringslinje

Disse grupper samler features, der forbedrer billedkvaliteten, uden at ændre selve kerne-trænings-loopet. Frem til 2026-07-18 udgjorde de en selvstændig Inspector-sektion ved navn Enhancements; siden domæne-omgrupperingen sidder de nu i bunden af sektionen Training. Den tidligere Viewport-Scaling-picker (Off/MetalFX/Lanczos) er fjernet uden erstatning: den gjorde aldrig nogen forskel — blit-beslutningen i viewporten er rent geometrisk — og dens beskrivelse lovede desuden en opskalering, mens den reelle Lanczos-pass rent faktisk er en antialiasing-nedskalering af et oversamplet billede. Visningen i viewporten hedder derfor nu „Sampling" i stedet for „Scaling" (kapitel 4); ingen steder i appen opskaleres der med MetalFX. Perceptual Loss (I29) er på trods af gruppetilhørsforholdet en del af selve træningen — den aktiveres under træningen som et ekstra loss-led; den ligger øverst, med forklaringslinjen „Multi-scale blur feature matching for structural similarity". Nedenunder følger Outdoor-gruppen med fire kontakter — Sky Masking, Person Masking, Floater Cleanup og Reconstruct Sky Dome (I42–I44) —, trænings-indstillinger mod himmel-floatere, der tidligere lå i indstillingsvinduet og nu ligger her per projekt. Derefter følger den sammenklappede række „Advanced Densifier (Expert)", der bærer en advarselstrekant, fordi der bag den ligger regulatorer, som også kan ødelægge en træning. Til sidst kommer gruppen „Runs automatically at the end of training" med Post-Training Compactification (I26) og kontakten „Remove Needle/Disc Floaters".

I26Post-Training Compactification-kontakt

HVOR

Inspector → Training → gruppen „Runs automatically at the end of training" → Post-Training Compactification.

TEKNISK

Aktiverer en oprydnings-gennemgang til sidst: Når trænings-iterationerne er afsluttet, slettes Gaussians med opacity under 0.01 (1% synlighed). Det gør filstørrelsen typisk omkring halveret, uden at der bliver noget synligt kvalitetstab — fordi disse Gaussians alligevel ikke bidrager visuelt. Compactification kører som en GPU-compact-pass og tager — afhængigt af Gaussian-count — fra brøkdele af et sekund til få sekunder. Påvirker ikke trænings-performance. Er denne kontakt slukket, eksporteres også usynlige Gaussians — kun relevant, hvis du skal bruge formatet til endnu et trænings-stage (Continue Training), ellers spild af plads.

I29Perceptual Loss-skyder

HVOR

Inspector → Training → Perceptual Loss.

TEKNISK

Skyder 0.0–0.2 i trin af 0.01, viser ved 0.0 „Off", ellers f.eks. „0.05". Aktiverer et ekstra loss-led, der sammenligner multi-skaleret Gaussian-blur af renderingen med ground-truth-billedet (3 blur-skalaer). Fanger strukturelle forskelle, som L1+SSIM alene ikke opdager. Værdier mellem 0.05 og 0.1 forbedrer fine strukturer synligt og koster kun lidt trænings-tid — omkring 5% (ekstra forward-pass gennem blur-kernelerne). Over 0.15 bliver træningen ustabil, og kvaliteten falder igen, fordi dette loss-led dominerer optimeringen. Virker under træningen, ikke i efterbehandlingen — på trods af sin placering ved enhancement-rækkerne i bunden af Training-sektionen er det altså ikke en ren efterfølgende opgradering.

I42Sky Masking

HVOR

Inspector → Training (Outdoor-gruppen) → kontakten „Sky Masking". Gemmes per projekt; standard: fra.

TEKNISK

Aktiverer pre-training Apple-Vision-baseret sky-pixel-segmentering. Før træningsstart udtrækkes sky-regionen for hvert input-kamera via Apple-Vision-foreground-mask (himmel = baggrund) og tilknyttes som en pixel-vis maske til det pågældende kamera. Under træningen ganges loss-bidraget per pixel med komplementet af sky-masken — sky-pixels bidrager med 0 til gradienten, så Gaussians, der projicerer ind i himlen, ikke får noget optimerings-signal og dermed ikke bliver „tættere" eller „lysere". Reducerer floatere (mørke klumper i himlen) markant ved outdoor-/drone-scener. Koster ~3% L1-regression ved klassisk 40K-træning. Kun meningsfuldt ved outdoor-scener med tydeligt genkendelig himmel; ved indendørs-scener eller hvid baggrund identificerer sky-segmenteringen forkerte områder og blokerer gyldige loss-signaler. Værdien gemmes per projekt (ikke længere app-globalt) og følger preset eller scenefil.

I43Floater Cleanup

HVOR

Inspector → Training (Outdoor-gruppen) → kontakten „Floater Cleanup" (undertekst „Remove Gaussians outside all camera views"). Gemmes per projekt; standard: fra.

TEKNISK

Kontakten styrer to effekter med forskellige betingelser; begge udledes ved start til den kørsels-lokale config og skrives ikke til den gemte konfiguration (ellers ville de hænge fast som en engangs-fastlåsning). (1) Frustum-union-cull ved trænings-slutning — Gaussians uden for foreningen af alle kamera-frusta fjernes ("aldrig observeret" = "aldrig begrænset", og det er netop de fleste floatere). Denne del har ingen strategi-betingelse og kører ved Classic, MCMC og Hybrid på samme måde — kontakten er opkaldt efter den. (2) To ekstra density-control-pass midt i kørslen — kun ved Classic og kun fra 30.000 iterationer, sat til 55% og 85% af kørselens længde (ved 35–40K altså omkring 20K og 30K). Begge pass søger Gaussians med meget lav opacity, minimal screen-space-størrelse og uden loss-bidrag og fjerner dem. Effekt: ~5–15% færre Gaussians til sidst, synligt færre mørke klumper i himlen ved drone-/outdoor-scener. Koster ~1–3% L1-regression ved close-up indendørs-scener, derfor ikke aktiveret som standard. Værdien gemmes per projekt og følger preset eller scenefil. Rettelse i forhold til tidligere udgaver: Kontakten er ikke længere begrænset til Classic-densifieren og bliver heller ikke længere gråtonet under MCMC/Hybrid — det havde netop udelukket MCMC- og Hybrid-brugere fra den cull, der virker for dem. Ved korte kørsler (f.eks. P2 Preview 5K) udgår kun midt-i-kørslen-delen.

I44Reconstruct Sky Dome

HVOR

Inspector → Training (Outdoor-gruppen) → kontakten „Reconstruct Sky Dome". Gemmes per projekt; standard: fra.

TEKNISK

Aktiverer sky-dome-projektionen før træningen. Efter SfM og før træningsstart udtrækkes den i S7 fælles brugte Apple-Vision-sky-maske fra billedet for hvert input-kamera, sky-pixlene de-projiceres med kamera-intrinsics ud på en virtuel kugle-overflade (standard-radius 8× scene-radius). På denne kugle initialiseres ~5000 nye Gaussians med farve-gennemsnit 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 ligesom alle andre, men holdes via den høje start-opacity i en tynd skal. Resultat: ved 360°-novel-views i outdoor-/drone-scener vises faktisk himmel-farve og sky-strukturer i stedet for mørke konfetti-klumper. Værdien huskes over genstarter. Meningsfuldt kun ved outdoor-scener med i det mindste 360°-kamera-dækning; ved rene object-captures uden himmel-udsyn har det ingen effekt. Status: eksperimentel, bredere A/B-validering over flere outdoor-sæt udestår stadig.

Metrik-sektion (I30–I37)

Crop af gruppen „Training Metrics” efter afsluttet træning — otte linjer: Iteration 20000 / 20000, Loss 0.007471, Learning Rate 0.00e+00, SH Degree 3, Gaussians 9,660, GPU Memory 5.7 MB, Speed 223.7 it/s, Elapsed 1:29
Crop af gruppen „Training Metrics" efter afsluttet træning — otte linjer: Iteration 20000 / 20000, Loss 0.007471, Learning Rate 0.00e+00, SH Degree 3, Gaussians 9,660, GPU Memory 5.7 MB, Speed 223.7 it/s, Elapsed 1:29

Mens en træning kører, viser metrik-gruppen („Training Metrics", en af de to sammenklappelige grupper i sektionen Fremskridt) otte live-værdier fra trænings-loopet. Før start af en træning er den tom („Start training to see live metrics"). Alle værdier opdateres hver ~30 iterationer (opdateringsfrekvens for live-metrikkerne). Sektionen er read-only — intet element kan klikkes på eller ændres. Til dybere analyse kan du bruge JSONL-trænings-loggene under ~/Documents/RadianceKit/Logs/.

I30Iteration

HVOR

Inspector → Fremskridt → Training Metrics → Iteration. Read-only.

TEKNISK

Visning i formatet „4523 / 40000" — aktuel iteration ud af det samlede antal planlagte iterationer. Tæller synkront med trænings-loopet, som pusher værdierne hver ~30 iter. Det andet tal svarer til Max-Iterations-værdien på start-tidspunktet; den ændrer sig ikke længere, selv hvis brugeren senere justerer stepperen — det igangværende forløb bruger sin egen snapshot-kopi. Hvis appen lægger flere iterationer oveni via trænings-menuen (Continue Training +5K/+10K/+20K), øges nævneren.

I31Loss

HVOR

Inspector → Fremskridt → Training Metrics → Loss. Read-only.

TEKNISK

Float-værdi med seks decimaler (f.eks. „0.024385"). Måler det kombinerede L1+SSIM-loss (mix styret via I21 SSIM Weight) plus valgfrit Perceptual Loss (I29) og andre regularizere. Skalaen er ikke absolut, men scene-afhængig — kræver samme datasæt for de fleste sammenligninger. Typiske slutværdier ved gode konfigurationer: - Classic Quality 40K iters: 0.022–0.025 (Horse, Truck, Garden) - MCMC Full 200K iters: 0.024–0.028 - Outdoor drone 30K: 0.030–0.060 (dårligere pga. geometri) - Indoor Apartments: 0.018–0.025

Værdier over 0.10 efter 5K iterationer tyder på SfM-problemer (dårlige kamera-positioner) — afbryd og genberegn SfM.

I32Learning Rate

HVOR

Inspector → Fremskridt → Training Metrics → Learning Rate. Read-only.

TEKNISK

Visning i videnskabelig notation (f.eks. „1.60e-04"). Aktuel learning rate for positions-parametrene (3DGS har seks uafhængige learning rates for position, SH-DC, SH-Rest, opacity, scale, rotation — her vises position-LR som repræsentativ størrelse). Standard-startværdi 1.6e-4, som via en eksponentiel decay falder til ~1.6e-6 ved trænings-slut. Forfaldet kan justeres via LR-schedule-feltet i trænings- konfigurationen (T-feltet i kap. 6). Hvis LR forbliver usædvanligt høj (f.eks. 1e-3 eller mere efter 10K iterationer), kan det tyde på en fejlagtigt indlæst konfiguration.

I33SH Degree

HVOR

Inspector → Fremskridt → Training Metrics → SH Degree. Read-only.

TEKNISK

Heltal 0-3. Spherical-harmonics-grad for farve-repræsentationen. Starter ved 0 (kun DC-komponenten, dvs. retningsuafhængig farve pr. gaussian — altså kun en RGB-konstant) og stiger gradvist til 3 i løbet af træningen. Standard-schedulen hæver graden ved 1000/2000/3000 iterationer med 1 ad gangen. SH-3 svarer til 48 farve-koefficienter pr. gaussian (3 RGB-kanaler × 16 SH-basisfunktioner). Højere SH-grad = mere retningsafhængig refleksion (blanke overflader ser korrekt forskellige ud fra forskellige synsvinkler), men også mere hukommelse og langsommere træning.

I34Gaussians

HVOR

Inspector → Fremskridt → Training Metrics → Gaussians. Read-only.

TEKNISK

Aktuelt antal gaussians i modellen, formateret med lokal separator (f.eks. „524.318"). Vækst: - Classic: starter ved SfM-init-punkterne (typisk 50K-300K), vokser via clone/split indtil lige før Densify Until, derefter statisk til trænings-slut (modulo pruning) - MCMC: sample-punkter tilføjes indtil MCMC-loftet, derefter kun relocation

Sunde slutværdier: - Classic Quality: 400K-700K (Horse 524K, Garden 800K) - MCMC Full: nøjagtigt på loftet (standard 150K, med auto-scale multiplier × SfM-antal afhængigt af scene 500K-1.5M)

Ved MCMC falder tallet til < 60% af loftet → anomali (collapse-indikator, tyder på for aggressive regularizere).

I35GPU Memory

HVOR

Inspector → Fremskridt → Training Metrics → GPU Memory. Read-only.

TEKNISK

Estimat af gaussian-buffer-hukommelsesforbruget som gaussian-antal × 616 bytes (formateret i memory-stil). 616 bytes er størrelsen på en fuldt udstyret gaussian (position, skalering, rotation, opacity, SH-koefficienter grad 3, gradient- akkumulator). Visningen omfatter ikke renderer-overhead (tile-buffer, sort-buffer, backward-buffer) — det reelle GPU- hukommelsesbehov ligger typisk 2-3× over denne værdi. Ved 500K gaussians: vist ~290 MB, reelt ~700 MB. Ved 1.5M gaussians: vist ~880 MB, reelt ~2.5 GB. På M3 Max med 64+ GB unified memory ukritisk, på M3 Pro med 18 GB allerede en grænse.

I36Speed

HVOR

Inspector → Fremskridt → Training Metrics → Speed. Read-only.

TEKNISK

Iterationer pr. sekund med ét decimal („24.3 it/s"). Beregnes af traineren som et glidende gennemsnit over de sidste ~100 iterationer. Typiske værdier: - Quick preset (1K iters): 80-120 it/s (kort, ingen steady-state) - Classic 20K @ 1.0 Render Scale (Truck-scene, M3 Max): 25-35 it/s - Classic 20K @ 0.5 Render Scale: 80-120 it/s - MCMC 200K @ 0.5 Render Scale: 25-50 it/s (langsommere pga. relocation) - Ved 1M+ gaussians og fuld opløsning: < 10 it/s

Faldende speed i løbet af træningen er normalt — flere gaussians = mere compute pr. iteration. Pludselige fald (f.eks. fra 30 → 5 it/s) tyder på GPU-thermal-throttling eller konkurrerende apps.

I37Elapsed

HVOR

Inspector → Fremskridt → Training Metrics → Elapsed. Read-only.

TEKNISK

Allerede forløbet tid som „4:23" (m:ss) eller „1:23:45" (h:mm:ss). Format skifter fra 1 time. Måler kun den rene trænings-tid, ikke de forudgående faser (SfM-beregning, billed- import). Ved pause/genoptagelse fortsætter uret — er altså wall-clock, ikke CPU-tid.

Loss-diagram-sektion (I39–I41)

Crop der Gruppe „Loss History” nach abgeschlossenem Training — Current: 0.0075, rechts grün Min: 0.0051, blaue Kurve von etwa 0.14 steil herunter und danach ausgefranst absinkend bis 20K, Achse links 0.14 / 0.071 / 0.0051; darunter das orangefarbene Diagramm „Gaussian Count” mit Achse von 16K bis 9K und Endwert 9,660
Udsnit af gruppen „Loss History" efter afsluttet træning — Current: 0.0075, til højre i grønt Min: 0.0051, blå kurve fra ca. 0.14 stejlt nedad og derefter takket faldende ned til 20K, akse til venstre 0.14 / 0.071 / 0.0051; nedenunder det orangefarvede diagram „Gaussian Count" med akse fra 16K til 9K og slutværdi 9.660

Gruppen med loss-diagrammet („Loss History", den anden foldbare gruppe i sektionen Fremskridt) visualiserer træningsforløbet over tid. Den består af to diagrammer: et loss-curve-chart (stort, øverst, blåt) og et Gaussian-count-chart (mindre, nederst, orange). Begge opbygges live under træningen og bevares indtil næste træningsstart. Før den første træning er området tomt („Loss curve will appear during training"). Diagrammerne er rene SwiftUI-path-drawings (ikke Swift-Charts-frameworket), så de også ved 100K+ punkter renderer flydende.

I39Current Loss (visning)

HVOR

Inspector → Fremskridt → Loss History → venstre label-område „Current: 0.0075". Read-only.

TEKNISK

Float-værdi af det seneste loss-sample-punkt, formateret med fire decimaler. Identisk med I31 (Loss i Metrics-sektionen), blot mere kompakt formateret her. Kilden er loss- history — en liste, som får en indgang for hver ~30 iterationer. Kun endelige værdier optages i listen — NaN/Infinity (meget sjældent, i tilfælde af en gradient-explosion-bug) bliver filtreret fra.

I40Min Loss (visning)

HVOR

Inspector → Fremskridt → Loss History → højre label-område „Min: 0.0051" (grøn). Read-only.

TEKNISK

Minimum af alle nogensinde sete loss-værdier for det aktuelle træningsforløb. Genberegnes live ud fra loss-history — ingen separat persistens. Vises med grøn skrift, fordi „Min" = „bedste indtil videre". Den stiplede grønne linje ved den nederste diagramkant markerer denne Y-position visuelt. Ved Continue-Training- sessioner starter min-sporingen forfra — den gamle history erstattes i UI'et af den nye (tilføjes ikke). Hvis den aktuelle træning forløber dårligere end den foregående, kan min-visningen altså være større end det forrige slutresultat.

I41Gaussian Count Chart

HVOR

Inspector → Fremskridt → Loss History → andet diagram nedenunder (orange). Read-only.

TEKNISK

Linjediagram over antallet af gaussians over træningsiterationerne. Kilde: gaussian-count-history (liste af (iter, count)-par, fyldt af traineren hver ~30 iter). Y-skala dynamisk mellem historikkens minimum og maksimum. Ved Classic- strategi ser kurven typisk sådan ud: stigende jævnt til Densify Until, derefter flad (med små pruning-udsving). Ved MCMC: stejl stigning til Cap, derefter horisontal linje (relocation holder antallet konstant). Et fald helt til sidst er normalt — i billedet ovenfor falder kurven fra ca. 16K til 9.660, fordi oprydningspassene griber ind efter den sidste iteration (I26). Alarmerende er kun et fald midt i forløbet: så prunes densification for aggressivt — indikation for forkerte defaults eller en kendt MCMC-collapse-bug (v1.4.4-hotfix-emne).

Hvordan læser man loss-kurven?

Loss-diagrammet er det vigtigste diagnoseværktøj i Inspector — ingen anden indikator viser så direkte, om træningen gør nyttige fremskridt eller sidder fast. Den typiske sunde form er et hurtigt fald i de første 1000-3000 iterationer (fra ~0.15 til ~0.05), efterfulgt af et langsomt, jævnt fald frem til træningens afslutning (til 0.020-0.030). Logaritmisk fremstår kurven derved som en glat diagonal.

Hvad betyder et plateau i loss? Hvis kurven forbliver flad over flere tusind iterationer, er der to mulige fortolkninger: (a) Træningen er „konvergeret" — loss kan ikke længere falde signifikant, fordi modellen er så god, som den kan blive med de givne data og indstillinger. Det er ønskeligt; det er „færdigt". (b) Træningen „hænger" — loss kan reelt stadig falde, men optimeringen stagnerer (lokalt minimum, læringsrate for lille, densification slået fra). Sådan skelner du: Hvis loss-værdien ligger i et typisk godt område (0.020-0.030 ved indendørs/objekt, 0.040-0.060 ved udendørs), og kurven har været flad i 5K iterationer, er den konvergeret. Hvis værdien er tydeligt højere end ved sammenlignelige scener (f.eks. 0.08), hænger den.

Bemærk: Gaussian-plateau ≠ loss-plateau. Et plateau i gaussian-antallet betyder ikke „træningen er færdig". Det betyder blot, at densification er holdt op med at tilføje nye punkter — enten fordi er nået (Classic), eller fordi MCMC-cappen er fuld. Træningen fortsætter derefter og forfiner kun de eksisterende punkter yderligere. Det egentlige „færdig"-signal aflæser du på loss-kurven og på iterationsvisningen (I30), ikke her.

Tommelfingerregel for afbrydelse: Hvis loss-kurven efter 5000+ iterationer ligger over 0.08 og næsten ikke falder mere, skyldes det med stor sandsynlighed en skæv SfM-rekonstruktion. Afbryd træningen, tjek i kapitel 9, om det valgte SfM-backend passer til scenen, skift evt. til COLMAP/Native, og genstart derefter. Det er bedre at investere 10 minutter i bedre SfM end at bruge 2 timer på træning med dårlig kameraudretning.

Hvornår skal du bruge Inspector?

Hurtig-reference: Hvilken sektion + hvilke controls til hvilken typisk use-case?

Common-TaskSektionControl-IDs
Afmætte farverne i den færdige splatLookL1 (Saturation)
Runde nål-/konfetti-splatsLookL2 (Splat length)
Fyld hullet sky / forstør splatsLookL3 (Splat size)
Skjul fjern „far-konfetti" ved orbitsLookL4 (Fade far region)
Kassér look-justeringerLookL5 (Reset finishing)
Indlæs et færdigt setupPresetsI7 (klik på rækken)
Gem dit eget setupPresetsI1 → I2 → I4
Del setup med kollegerPresetsI5 (Export) hhv. I6 (Import)
Skift SfM-backend (f.eks. fordi Apple-PG er for ustabil)Kameraer & optagelseI12 (se kap. 9)
Behandl video-frames uden EXIF-brændviddeKameraer & optagelseI13 (FOV Override)
COLMAP-performance: GLOMAP i stedet for klassiskKameraer & optagelseI14 — kun i udvikler-builds, i App Store-builden mangler COLMAP som backend
Skift fra Classic til MCMCTrænings­konfigurationI15
Lad træningen køre længereTrænings­konfigurationI18 (Max Iter) + I20 (Densify Until) — koblet via I19
Halvér GPU-tidenTrænings­konfigurationI22 (Render Scale til 50%)
Trænings­kvalitet +6% (MCMC)Trænings­konfigurationI16 (MCMC Quality)
Udendørsscene med mange SfM-punkterTrænings­konfigurationI17 (Auto-scale by scene)
Opsæt / skift COLMAP-stiKameraer & optagelseI23 / I24 / I25 — kun i udvikler-builds
Gør eksport-filer mindreTrainingI26 (lad den altid være slået til)
Sidste smule detalje ved fine strukturerTrainingI29 (Perceptual Loss 0.05-0.1)
Overvåg træningenFremskridt ▸ Training MetricsI30 (Fremskridt), I36 (Tempo) — resttiden står i transport-linjen under viewporten
Vurdér kvaliteten tidligtFremskridt ▸ Training MetricsI31 (Loss < 0.05 efter 5K = godt)
Mistanke om SfM-problemFremskridt (begge grupper)I31 + I39 (Loss > 0.08 efter 5K → SfM forfra)
Skeln mellem convergence og stuckFremskridt ▸ Loss HistoryI39 + I40 (læs loss-plateau)
Genkend densification-problemFremskridt ▸ Loss HistoryI41 (Gaussian-kurven falder → bug)