Brugervejledning

Kapitel 4 — Aux-vinduer

Ud over hovedvinduet (3D-viewport plus inspector) administrerer RadianceKit seks yderligere vinduer, som alle åbnes via Hjælp-menuen. Menuen har otte punkter, fra top til bund: User Guide (⌘?), Keyboard Shortcuts (⌘/), Open Training Logs… (⇧⌘L), Open Exports Folder…, Manage Storage…, Pareto Dashboard… (⇧⌘D), Holdout Analysis… (⇧⌘H), BayesOpt Console… (⇧⌘B). De to „Open …"-punkter åbner ikke et app-vindue, men Finder; derfor bliver de ikke yderligere behandlet her. Tre af vinduerne — Dashboard, Holdout, BayesOpt — er selvstændige analyseværktøjer: de fungerer uafhængigt af hovedvinduet og læser eller skriver JSON-filer på disken. Hvert af disse tre vinduer åbner du via Hjælp-menuen og vælger derefter selv den fil eller mappe, du vil analysere — via „Open Reports Folder…", „Open transforms.json…" eller „Start"-knappen. Disse tre vinduer er de eneste, der ikke er oversat: deres knapper, skydere og kolonneoverskrifter er på engelsk i alle sprogversioner. Betegnelserne, der nævnes her, finder du derfor præcis sådan igen på skærmen.

De tre enkle vinduer (User Guide, Keyboard Shortcuts, Manage Storage) og de to mappe-menupunkter (Open Training Logs / Open Exports Folder) får et kort afsnit pr. betjeningselement. De tre analysevinduer er dokumenteret mere udførligt — hver med en introduktion, der forklarer, hvad du ser i vinduet, hvornår du bør åbne det, og hvordan du fortolker det viste billede.

I slutningen af kapitlet er der et krydshenvisningsafsnit til inspectoren i hovedvinduet: hvad du med fordel kan aflæse i live-loss-diagrammet og Gaussian-count-visningen under en igangværende træning.

Brugervejledning (W1–W4)

Brugervejledningsvindue med sidebjælke til venstre og gengivet Markdown-indhold til højre
Brugervejledningsvindue med sidebjælke til venstre og gengivet Markdown-indhold til højre

Hvad det er: Et indbygget hjælpevindue, der viser den guide_<sprog>.md, som følger med appen. Sproget udledes fra indstillingerne (fanen General → Language) eller, hvis der står „System", fra macOS' sprogpræferencer. Layoutet er klassisk: til venstre en sidebjælke med alle overskrifter, til højre selve teksten.

Når du hurtigt skal genopfriske et enkelt punkt — altså som stikordserstatning. Den udførlige reference er denne manual; det indbyggede hjælpevindue er kortversionen til hurtigt opslag. Det opdateres ved hver app-udgivelse, men holdes indholdsmæssigt mere overfladisk.

W1NavigationSplitView (sidebjælke + detalje)

HVOR

Help → User Guide (⌘?).

TEKNISK

To-kolonne-layout med en smal sidebjælke (mindst 180 pt bred) til indholdstræet og et rullende detaljeområde til selve Markdown-indholdet. Vinduet har en minimumsstørrelse på 700 × 500 pt. Ved første åbning indlæser vinduet den relevante guide_<lang>.md fra app-bundlet (fallback guide_en.md), parser den til blok-records (overskrifter H1–H4, afsnit, lister, tabeller, skillelinjer) og udtrækker separat overskriftsstrukturen til sidebjælken. Inline-formatering (fed, kursiv, kode-span) rendres via den indbyggede Markdown-motor. Sproget læses fra app-indstillingerne, med specialtilfældene kinesisk (zh-Hans) og brasiliansk portugisisk (pt-BR), som bevares som fulde locale-tags, fordi disse varianter adskiller sig fra hhv. zh og pt.

W2List (overskrifts-sidebjælke)

HVOR

Venstre kolonne i brugervejledningsvinduet.

TEKNISK

Liste over alle H2- og H3-overskrifter i det aktuelle Markdown-dokument. H2-elementer vises uden indrykning med medium skrifttykkelse, H3-elementer med 16 pt indrykning til venstre og reduceret forgrundsstil. Alle andre niveauer — H1 såvel som H4 og dybere — vises ikke i sidebjælken, da de ellers ville gøre den uoverskuelig. Anker-ID'er genereres fra overskriftsteksten via slugificering (lowercase + mellemrum til bindestreger + filtrering til bogstaver/tal/bindestreger — samme algoritme, som GitHub bruger til sine Markdown-ankre, så eksterne URL'er til dokumentationen potentielt også ville lande på det samme anker). Listen bruger den native macOS-stil.

W3Button (overskrift → anker-hop)

HVOR

Én knap pr. sidebjælke-linje.

TEKNISK

Hvert sidebjælke-element er en knap, der sætter det aktuelle anker, men visuelt ligner et listeelement. En observer-variabel udløser derefter scroll-hoppet til det tilsvarende anker med en blød animation over 0,3 s. Efter hoppet nulstilles ankerværdien, så det næste klik på samme anker udløses igen (ellers ville observeren ikke udløse igen, fordi værdien ikke har ændret sig).

W4ScrollView (detalje-indhold)

HVOR

Højre kolonne.

TEKNISK

Rullende, vertikalt stablende indholdsområde med lazy rendering, fordi længere guides let kan have over 200 Markdown-blokke — en ikke-lazy variant ville instantiere alle samtidig. Hver blok får sit eget ID, enten overskrifts-ankeret (det får hver overskrift, uanset niveau) eller en indeks-pladsholder. Maksimal bredde er 720 pt, padding 32 horisontalt / 24 vertikalt, så lange linjer bevarer et letlæseligt layout. Tabeller rendres celle for celle med horisontale stacks og skillelinjer; inline-kode via den indbyggede Markdown-motor. Rigtige kodeblokke behandles i øjeblikket som afsnit — en kendt begrænsning i hjælpevinduet.

Tastaturgenveje (W5–W6)

Keyboard Shortcuts-vindue — fem grupper Navigation/Views/Capture/Editor/Training med genvejs-kolonne til venstre og beskrivelse til højre
Keyboard Shortcuts-vindue — fem sektioner Navigation/Views/Capture/Editor/Training med genvejs-kolonne til venstre og beskrivelse til højre

Statisk referenceliste i fem sektioner. Navigation: Mouse Drag (Orbit/Fly), Shift+Drag/Right-Drag (Pan), Scroll (Zoom), WASD (Fly-Through-bevægelse), Q/E (Up/Down), F (Toggle Orbit/Fly), Double-click (Re-center), Cmd+Scroll (FoV-justering). Views: R (Reset Camera), T (Auto-Rotation), P (Camera Playback), B (Background-Cycle), 0–9 (Spring til Training-Cam 1=10%/5=50%/0=last), Left/Right Arrow (Prev/Next Cam). Capture: S (Screenshot to Desktop), V (Turntable-Video), C (Copy Camera Info). Editor: Tab (Edit-Modus), Click/Drag (Paint-Select), Option+Click (Deselect), X / Delete (Slet markering), Cmd-Z (Fortryd seneste sletning), [ / ] (Pensel mindre/større), Esc (Ophæv markering). Training: Option+Space (Sæt træning på pause/genoptag), Cmd+E (Eksportér scene). Mere står der ikke her — Start, Cancel og forlængelserne finder du i menuen Training (kapitel 1).

Hvad det er: Et enkelt statisk overblik over alle tastaturgenveje — Navigation, Views, Capture, Editor, Training. Indholdet er fast indbygget og hentes ikke fra en fil.

Når du leder efter den hurtigste vej til at gøre noget i viewporten. WASD-Fly-Through, R til Camera-Reset, B til Background-Cycling — alle står her.

W5ScrollView (indholdsområde)

HVOR

Help → Keyboard Shortcuts (⌘/).

TEKNISK

Et simpelt scroll-område med en vertikal liste indeni. Padding på 20 rundtomkring, intet sidebar-navigationstræ (listen er kort nok). Indholdet er grupperet i fem sektioner (Navigation, Views, Capture, Editor, Training). Pr. tastekombination en linje med oversætbar tekst i begge kolonner. Venstre kolonne (tastekode) er fastlåst til 180 pt bredde, så beskrivelserne til højre forbliver vertikalt justeret. Ingen interaktion udover scrolling — klik på en linje udløser intet, tastaturgenvejene er rigtige tastatur-modifikatorer i menuen og på viewporten.

W6VStack (genvejssektioner)

HVOR

Inde i ScrollView.

TEKNISK

Venstrejusterede stablede sektioner med 16 pt mellemrum. Inden for de fem sektioner hver en overskrift + række-sekvens. Overskrifterne bruger en sekundær subheadline-stil — bevidst ikke title-format, fordi sektionerne ikke behøver at være navigerbare. Indholdet er bevidst fladt (ingen disclosure, ingen search, ingen filter), så komponenten kører uændret på enhver macOS-version, og filen forbliver læsbar.

Manage Storage (W7–W12)

Manage Storage-vindue — header viser „1,356 items · 55.1 GB total”, tabel med Export-PLY-filer sorteret efter dato, hver med ikon + filnavn + størrelse + dato
Manage Storage-vindue — header viser „1,356 items · 55.1 GB total", tabel med Export-PLY-filer sorteret efter dato, hver med ikon + filnavn + størrelse + dato

Tabelvisning af alle filer, som RadianceKit administrerer. Header tæller 1.356 elementer, 55,1 GB samlet størrelse. Værktøjslinje øverst: „Show in Finder" + „Refresh". Hver række: eksport-ikon, filnavn (f.eks. training_20260718T194416Z.ply), eksportdato, størrelse (varierer her fra 7,8 MB til 2,24 GB), forstørrelsesglas-ikon (Reveal) og papirkurv-ikon (Move to Trash). Sorteringen sker først efter kategori og inden for en kategori efter dato, nyeste øverst. På denne optagelse dominerer PLY-eksporter, fordi der i denne mappe primært er blevet gemt træningsresultater.

Hvad det er: En disk-forbrugs-oversigt over alt, hvad RadianceKit gemmer under ~/Documents/RadianceKit/ — logs, eksporter, scener, capture-bundles (fra iOS-følgeappen), imports (staging-kopier af inputbillederne). Pr. post en størrelse i bytes og to knapper: „vis i Finder" og „flyt til papirkurven". Er IKKE automatisk oprydning — appen sletter ikke selv noget; du beslutter pr. post. Dette vindue er oversat: på dansk hedder det „Administrer lagerplads", de to knapper i headeren hedder „Vis i Finder" og „Opdater", rækkeknapperne „Vis i Finder" og „Flyt til papirkurven". De engelske navne i posterne nedenfor er betegnelserne fra den engelske udgave.

Når disken bliver fuld. Især logfilerne samler sig (en JSONL pr. træningsforsøg, plus _qualityMetrics.json); eksporterne naturligvis også (PLY er 100% rå data, en pr. eksport). Også nyttigt efter et nedbrud, hvor imports-staging-mappen stadig ligger med gamle kopier af inputbillederne.

W7Knappen „Show in Finder"

HVOR

Header øverst til højre i storage-browser-vinduet.

TEKNISK

Åbner RadianceKit-datamappen i Finder — netop den mappe, hvis indhold dette vindue viser. Dermed ser du mappestrukturen (logs, eksporter, scener, captures, imports) direkte og kan også selv flytte eller kopiere filerne med Finder. Handlingen åbner et nyt Finder-vindue; listen i vinduet ændrer sig ikke af den grund — det er derfor „Refresh" findes (W8).

W8Knappen „Refresh"

HVOR

Header, ved siden af Finder-knappen.

TEKNISK

Udløser en baggrundsscanning, der kører på en brugerinitieret asynkron opgave, så scanning af store mappetræer ikke blokerer UI'et. Selve gennemgangen går alle kendte undermapper (logs, eksporter, scener, captures, imports) igennem og opretter en storage-post pr. direkte underelement. For hver post beregnes den rekursive størrelse — fortrinsvis det faktiske diskforbrug (inklusive APFS-hardlinks-deling) med fallback til den logiske filstørrelse.

W9List (storage-poster)

HVOR

Hovedindhold under headeren.

TEKNISK

Liste med dette layout pr. række: kategori- specifikt SF Symbol-ikon (dokument for logs, upload-pil for eksporter, terning for scener, iPhone for capture-bundles, bakke for imports), navn + undertekst (kind-label + formateret ændringsdato), byte-tæller til højre (højrestillet, monospaced), reveal-knap (forstørrelsesglas-ikon), papirkurv-knap. Sortering: primært efter kind (scener først, derefter eksporter, logs, captures, imports, andet), sekundært efter ændringsdato faldende (nyeste øverst). Hvis scanningen stadig kører, viser stedet i stedet en „Scanning…"-fremdriftsindikator. Hvis intet blev fundet, vises en tom-tilstand med bakke-ikon.

W10Række-knappen „Reveal in Finder"

HVOR

Pr. række, forstørrelsesglas-ikon til højre.

TEKNISK

Åbner Finder og markerer det specifikke element (fil eller mappe). Forskel til W7: W7 åbner rodmappen; W10 markerer netop denne ene post. Praktisk workflow: identificer en stor post, klik på forstørrelsesglasset, kopiér den derefter for eksempel til et eksternt drev.

W11Række-knappen „Move to Trash"

HVOR

Pr. række, papirkurv-ikon til højre for forstørrelsesglasset.

TEKNISK

Udløser bekræftelsesdialogen (W12). Først efter bekræftelse køres macOS' standardhandling „flyt til papirkurven" (altså reversibel, ikke direkte sletning). Efter en vellykket flytning til papirkurven fjernes posten fra listen, og den samlede byte-tæller opdateres. Ved fejl vises en modal fejldialog.

W12ConfirmationDialog (sletningsbekræftelse)

HVOR

Udløses af W11, vises som et macOS-sheet.

TEKNISK

Standard-bekræftelsesdialog med dynamisk titel „Delete <name>?" og en meddelelseslinje, der eksplicit gør opmærksom på, at posten havner i papirkurven og kan gendannes derfra (indtil papirkurven tømmes). To knapper: „Move to Trash" som destruktiv handling (vist i rødt) og „Cancel" med automatisk Esc-binding. Dialogen er non-modal i den forstand, at den kun blokerer dette vindue, ikke hele appen — det er macOS-standard for reversible sletninger.

Pareto Dashboard (W13–W22)

Pareto Dashboard — tom tilstand før rapport-import
Pareto Dashboard — tom tilstand før rapport-import

Tom tilstand (efter første åbning) — Empty-State med Call-to-Action „Open Reports Folder…". Datapunkterne dukker op, så snart trænings-rapporter er indlæst, se næste screenshot.

Pareto Dashboard med 384 indlæste benchmark-rapporter — Gaussians vs PSNR med Pareto-front, Scene/Strategy/Mip-Filter
Pareto Dashboard med 384 indlæste benchmark-rapporter — Gaussians vs PSNR med Pareto-front, Scene/Strategy/Mip-Filter

Header-værktøjslinjen viser til højre „384 reports of 384" (alle rapporter i den valgte mappe blev parset uden problemer); til venstre for knappen „Open Reports Folder…" står navnet på den indlæste mappe, her „Benchmarks". Akser: X-Axis-Picker på Gaussians, Y-Axis-Picker på PSNR (dB), ved siden af det aktive afkrydsningsfelt „Show Pareto Front". Forklaring øverst til venstre: blå

mcmc, grøn = classic, orange = hybrid, samt symbolformen for

Mip-Splatting On/Off. Den stiplede Pareto-front-linje følger de bedst opnåede PSNR-værdier og flader ud omkring PSNR≈30 dB fra ca. 300K Gaussians; punktskyen strækker sig op til over 1,5 mio. Gaussians. Filter-chips til højre: over 30 scener (bl.a. bicycle, bonsai, family, flowers, garden, kitchen, stump, truck samt de fortløbende 360-, drone- og photo-testrækker), 3 strategies (classic, hybrid, mcmc), 3 Mip-Splatting-muligheder (All, On, Off) med „All" aktiv. Der er aktuelt ikke sat noget scene- eller strategy-filter, derfor det tætte punkt-cluster.

Hvad det er: Et sammenligningsværktøj til flere kørsler. Tidligere har du trænet flere scener eller den samme scene med forskellige presets — fra en benchmark-evaluering opstår der pr. træningskørsel en JSON-rapportfil, som blandt andet indeholder Final-PSNR, SSIM, LPIPS, Gaussian-antal og wallclock-tid. Der findes ingen kontakt til denne evaluering i brugerfladen; dashboardet udevaluerer, hvad der allerede ligger som rapport i den valgte mappe. Det indlæser en hel mappe med sådanne rapporter på én gang og plotter dem som 2D-scatter med valgbare akser. Derudover indtegnes Pareto-fronten (mængden af ikke-dominerede punkter) som en stiplet linje.

Efter du har oprettet mindst tre eller fire trænings-rapporter. Med færre punkter er frontier-linjen ikke meningsfuld. Typisk use-case: du har forsøgt at rekonstruere en udendørs-scene og har efter hinanden gennemført P3 Balanced (Classic), P4 Quality (Classic), P8 Quality (MCMC) og P9 Drone / Aerial — nu vil du vide, hvilken konfiguration der giver bedst PSNR pr. sekund træningstid, eller hvilken der kræver færrest Gaussians for en given PSNR.

Begge akser kan vælges frit (X-akse: Gaussians, træningstid, PSNR, SSIM, LPIPS, …; Y-akse ligeledes). Pareto-front-beregningen ved for hver metrik, om „mindre = bedre" (LPIPS, Gaussians, Training Time, BRISQUE) eller „større = bedre" (PSNR, SSIM, FSIM, MS-SSIM) — linjen forløber altså afhængigt af aksevalget fra nederst til venstre til øverst til højre eller fra øverst til venstre til nederst til højre, altid langs den bedst opnåede kombination. Et punkt er Pareto-optimalt, hvis INTET andet punkt er mindst lige så godt i BEGGE dimensioner (altså intet andet dominerer det). Pareto-optimale punkter ligger på linjen, andre punkter til højre/over den (afhængigt af akseorienteringen). Punkter PÅ linjen er de reelle kandidater til „bedste preset"; punkter LANGT fra linjen er spildt træningstid.

Du kan begrænse udvalget til en bestemt scene (hvis du f.eks. kun vil sammenligne udendørs-kørsler), til en bestemt strategi (classic, hybrid eller mcmc), eller til Mip-Splatting til/fra (Mip-Splatting er en valgfri indstilling til øvede brugere, derfor kan den direkte sammenligning betale sig).

Du har tre rapporter for „truck"-scenen i en rapport-mappe: Run A (P4 Quality (Classic), 524K Gs, 105 s, PSNR 23,4), Run B (P8 Quality (MCMC), 150K Gs, 693 s, PSNR 24,6), Run C (P5 Ultra Detail, 1,25M Gs, 312 s, PSNR 25,8). Sæt X-aksen til Training Time, Y-aksen til PSNR. Run B ligger øverst til højre, Run C endnu længere øverst til højre, Run A nederst til venstre. Pareto-fronten forbinder A og C — begge ikke-domineret. Run B er „lost" (C er bedre i BÅDE Time OG PSNR). Erkendelse: for „truck" kan MCMC-vejen ikke betale sig; enten hurtig+ok (A) eller lang+meget god (C). Gem konfigurationen fra C som eget preset (Inspector → I1 Save Preset).

Næste handling: Gem den bedste konfiguration som preset. Konkret: se på Pareto-punkterne (hover viser PSNR/SSIM/LPIPS/Gs/Time i tooltippen), afgør hvilket der passer bedst til dit time-vs-kvalitet-trade-off, åbn den tilhørende rapport (filnavnet indeholder run-timestamp), kopiér dens træningskonfiguration i en ny kørsel, eller gem den efter næste træningssession som preset via Inspector.

W13Knappen „Open Reports Folder…"

HVOR

Værktøjslinje øverst til venstre.

TEKNISK

Åbner en mappe-vælger-dialog med opfordringen „Select a folder containing benchmark .json reports". Efter bekræftelse kører en baggrundsopgave, der parser alle .json-filer i mappen sekventielt. Fejlbehæftede rapporter (defekt JSON, forkert skema) samles og vises nederst i sidebaren som „N file failed to parse" — intet crash. Hvis der klikkes en anden gang, mens en første indlæsning stadig kører, afbrydes den forrige opgave, så ikke to resultater skriver til state samtidigt.

Den valgte mappe huskes ikke permanent: efter at have åbnet vinduet via Hjælp → Pareto Dashboard… (⇧⌘D) vælger du den her igen. Navnet på den indlæste mappe vises herefter til højre for knappen.

W14Picker „X-Axis"

HVOR

Over diagrammet, til venstre.

TEKNISK

Menu-picker med alle tilgængelige metrik-akser i dashboard-modulet (PSNR, SSIM, LPIPS, Gaussian-antal, træningstid og så videre). Default er Gaussian-antal. Ved skift nulstilles det hoverede punkt, fordi en tidligere fremhævet position i det gamle akse-koordinatsystem ikke giver mening efter et akseskift. Pickeren er begrænset til indholdsbredden, så den ikke strækker sig over hele bredden.

W15Picker „Y-Axis"

HVOR

Over diagrammet, ved siden af X-Axis.

TEKNISK

Identisk med W14, bortset fra at default er PSNR. Aksevalget gemmes uafhængigt, så brugeren også kan vælge meningsløse kombinationer (X=PSNR, Y=PSNR — ville kaste alle punkter på en diagonal). Sådanne kombinationer opfanges dog ikke; en bevidst beslutning, fordi en sammenligning „SSIM vs PSNR" faktisk er interessant for at se, hvor konsistent metrikkerne opfører sig.

W16Toggle „Show Pareto Front"

HVOR

Til højre for akse-pickerne.

TEKNISK

Et afkrydsningsfelt, som standard aktiveret. Pareto-fronten lægges som en linje over diagrammet ud over punktskyen — stiplet (stregmønster 4–4), grå halvtransparent, linjetykkelse 1,5 pt. Bemærk: I den udgivne version har afkrydsningsfeltet ingen effekt på diagrammet — front-linjen tegnes altid, uanset om feltet er markeret eller ej. Fronten genberegnes ved hvert akseskift og efter hver filterændring.

W17Chips „Scene"-filter

HVOR

Højre sidebar i dashboard-vinduet.

TEKNISK

Filter-chips for hver scene, der forekommer i de indlæste rapporter. Eget flow-layout, som automatisk fordeler chips over flere linjer, så snart bredden er udnyttet. Aktive chips får accent-baggrunden, inaktive en neutral standard-material-baggrund. Flervalg er muligt (set-semantik); hvis ingen chip er valgt, betragtes alle scener som „gennemsluppet" — dvs. set-logikken er „tomt valg = alt", ikke „tomt valg = intet".

W18Chips „Strategy"-filter

HVOR

Under Scene-filter i sidebaren.

TEKNISK

Ligesom W17, men for trænings-strategier — typisk de tre værdier „classic", „hybrid" og „mcmc", afledt af strategy-feltet i benchmark-rapport-JSON'erne. Nyttigt, hvis du har blandet rapporter fra flere strategier og kun vil se én slags (f.eks. „vis kun MCMC-kørsler, fordi jeg allerede har udelukket Classic").

W19Chips „Mip-Splatting"-filter

HVOR

Under Strategy-filter i sidebaren.

TEKNISK

Tre-værdi-filter (i modsætning til set som W17/W18): „All" / „On" / „Off". Baggrund: Mip-Splatting er en multi-skala-udvidelse, der hjælper eller ikke afhængigt af scenen — derfor forbliver den en bevidst til-/frakoblet indstilling og ikke en standard. Hvis du laver Mip-on/off-sammenligninger, vil du ofte kunne adskille meget skarpt. Derfor det dedikerede ternære filter med tilstandene „lad alt igennem", „kun Mip til", „kun Mip fra". Sidebar-sektionen vises, så snart den indlæste mængde overhovedet indeholder rapporter — altså praktisk talt altid; den forsvinder kun, hvis der slet ikke er indlæst noget.

W20ChipButton (Filter-toggle, all/on/off)

HVOR

Hjælpekomponent, bruges i W17/W18/W19.

TEKNISK

Minimalistisk button-wrapper. Indhold: label-tekst med caption-skriftstørrelse og padding 10 vandret / 5 lodret. Baggrund betinget: hvis aktiv → app-accentfarve med hvid tekst; ellers neutral standard-material-baggrund med den normale tekstfarve (tilpasser sig lyst og mørkt udseende). Formen er en capsule (pilleformet). Plain button-stil, så capsule-materialet ikke overlejres af en systemkant.

W21Diagram (Pareto-scatter)

HVOR

Midterfladen af dashboardet.

TEKNISK

Swift Charts-diagram med to lag: 1. et punkt pr. rapport — position ud fra de valgte X- og Y-metrikker, farve efter strategy, symbol efter Mip-status. Symbolstørrelse normalt 80, fremhævet 200 (hvis ID'en svarer til den aktuelt hoverede rapport). 2. en linje for Pareto-fronten (se W16 — den tegnes altid). Derudover viser det aktuelt hoverede punkt scenenavnet som en lille kapsel over sig.

Chart-overlay: et transparent rektangel registrerer musebevægelse; pr. frame beregnes den euklidisk nærmeste punktposition i plot-frame'n, og den hoverede rapport opdateres, hvis afstanden er under 24 px (ellers nulstilles den). Sådan får du tooltippen uden at klikke — hovering er nok.

W22Tooltip (hover-detalje)

HVOR

Under diagrammet, vises ved hover.

TEKNISK

Vandret stack: scenenavn (Headline), strategy-tag (Caption), skillelinje, derefter PSNR/SSIM/LPIPS/Gs/Time-metrikker hver i en lille lodret gruppe (label + monospaced værdi). Hvis Mip var aktiveret, desuden et „Mip"-capsule-tag i accentfarve. Baggrund halvtransparent blur, afrundet rektangel med 8 pt radius. Vises kun, når musen faktisk befinder sig over et punkt. Forsvinder automatisk, når musen forlader punktet.

Holdout Analysis (W23–W29)

Holdout Analysis — tom tilstand før indlæsning af en transforms.json
Holdout Analysis — tom tilstand før indlæsning af en transforms.json

Tom tilstand med Empty-State og Call-to-Action „Open transforms.json…". Accepterer NeRF-Studio- og Instant-NGP-format. Kamera- markørerne vises, så snart en transforms.json er indlæst — se næste illustration.

Holdout-globus med 86 kameraer, 5 folds, Angular-strategi aktiv
Holdout-globus med 86 kameraer, 5 folds, Angular-strategi aktiv

Header viser indlæst fil (transforms.json) og kamera-antal („86 cameras"). Venstre sidebar: Strategy-picker med to muligheder — Angular (longitudinal) aktiv (sorterer kameraerne efter deres længdegrads-vinkel omkring orbitten og fordeler dem derefter på skift til folds) vs Linear (round-robin) (samme rundgangs-fordeling, men efter billedrækkefølge i stedet for synsvinkel). k-Folds-slideren står på 5, Test-Fold-picker på Fold 1. Export-knappen genererer en fold-assignment.json til videre brug i eksterne evalueringsværktøjer. Midterpanel: 3D-globus-projektion af alle 86 kameraer, fordelt over hele kuglen — grønne punkter = Train, røde punkter = aktuel test-fold (Fold 1 med 18 kameraer). Højre sidebar (Angular Correlation): pr. fold antal kameraer + Mean Nearest Angle (Fold 1: 18 Cams / 8,5°, Fold 2: 17 / 6,1°, Fold 3: 17 / 6,2°, Fold 4: 17 / 6,7°, Fold 5: 17 / 6,4°) — mindre værdi betyder, at hvert test-kamera har et nærliggende trænings-kamera, og testen dermed er lettere.

Hvad det er: En 3D-visualisering af din kamera-opstilling med cross-validation-logik. Du indlæser en transforms.json (standard- formatet fra Nerfstudio / Instant-NGP for kamera-positioner), appen læser alle kameraer, projicerer deres synsretninger på en enhedskugle og viser dem som små kugle-markører på en virtuel globus. Derefter opdeler den kameraerne i k folds (efter valgt strategi: angular eller linear), markerer den grønne trænings-andel og den røde test-andel (holdout), og beregner pr. fold en angular-correlation-score, der fortæller dig hvor langt test-folden i synsvinkel-rummet befinder sig fra trænings-folden.

Når du vil lave holdout-evaluering — altså: hvor godt generaliserer din model til usete synsvinkler? Standard i træningen er „every-8th view som holdout" (Mip-NeRF360-konvention), men det er en meget lineær opdeling. Hvis dine billeder for eksempel er tidsmæssigt klyngedannede (først den ene side af objektet, så den anden), så er „every-8th" ikke repræsentativ — en tilfældig sekvens-position havner i testen, men alle dens naboer er i træningen, det er for let. Med „angular" stratificerer man i stedet over synsvinkel-rummet: hver fold indeholder kameraer fra alle dele af orbitten, så testen virkelig tester generaliseringshuller.

Angular vs Linear: - Angular (standard): sorterer alle kameraer efter deres longitudinal-vinkel (φ-koordinat omkring Y-aksen) og fordeler dem derefter på skift til k folds — det første kamera i ringen kommer i Fold 1, det andet i Fold 2, og efter k kameraer begynder rundgangen forfra. Fordel: hver fold indeholder kameraer fra alle retninger af orbitten, jævnt fordelt over ringen. Godt til klassiske orbit-optagelser, fordi opdelingen så ikke længere afhænger af optagerækkefølgen. - Linear (round-robin): samme rundgangs-fordeling, men over billed-positionen i stedet for vinklen (fold-indeks = image_index modulo k). Det er den simple „every-k-th"-opdeling. Fungerer, når billedrækkefølgen IKKE har en spatial bias (f.eks. tilfældigt sorterede drone-optagelser). Fungerer dårligt, når billederne klynger sig tidsmæssigt — så ligger naboliggende frames i forskellige folds, og testen bliver for let.

I 3D-globussen ser du med det samme: grønne punkter (training) og røde punkter (test). Hvis de røde punkter alle klumper sig i ét hjørne, er holdouten dårlig (ingen god generaliseringstest). Hvis de ligger jævnt fordelt mellem de grønne, er den god. Angular- correlation-scoren pr. fold (højre sidebar, i grader) fortæller desuden: mindre værdi = testen er tæt på træningen (hvert test-kamera har et nærliggende trænings-kamera, let test); større værdi = testen er langt fra træningen (hårdere generalisering).

Du har optaget din Truck-scene med 251 billeder, eksporterer via menupunkt M33 (Export SfM transforms.json) en nerfstudio-fil. Åbn Holdout-vinduet (⇧⌘H), indlæs JSON'en via „Open transforms.json…", kig på globussen. k=5 (standard) giver dig 5 folds. Klik på „Fold 3" — se om de røde markører er nogenlunde jævnt fordelt. Hvis ja: „Export fold-assignment.json". Den eksporterede fil er beregnet til eksterne evalueringsværktøjer (Nerfstudio, Instant-NGP); RadianceKit selv indlæser den ikke igen og træner fortsat mod sin egen holdout-standard „every-8th". Vinduet tjener her altså til at vurdere, om dit kamera-sæt overhovedet tillader en fair test.

W23Knappen „Open transforms.json…"

HVOR

Værktøjslinje øverst til venstre.

TEKNISK

Åbner en fil-vælger-dialog, der er begrænset til JSON- filer. Efter bekræftelse indlæser holdout-modulet filen. Loaderen parser både nerfstudio-formatet (kamera-intrinsics plus liste af frames med billedsti og transform-matrix) og instant-ngp-formatet (samme opbygning). Pr. frame udtrækkes synsretningen fra transform-matricen (z-aksen af kameraets lokale basis) og gemmes. Hvis parsingen fejler, vises en meddelelse i venstre sidebar — dog kun, hvis der allerede var indlæst en scene der; ved allerførste forsøg forbliver vinduet i tom tilstand uden synlig meddelelse.

Den indlæste fil huskes ikke permanent: efter åbning af vinduet via Hjælp → Holdout Analysis… (⇧⌘H) vælger du den her igen. Dens navn vises derefter til højre for knappen.

W24Picker „Strategy" (angular/linear)

HVOR

Venstre sidebar, øverst.

TEKNISK

Radio-picker med to muligheder: Angular og Linear. Strategy-skift udløser automatisk en genberegning af foldsene. Synsretningerne er en liste af 3D-enhedsvektorer på sfæren; angular-strategien sorterer dem efter deres longitudinal-vinkel φ og tildeler dem derefter på skift til foldsene, linear-strategien laver den samme rundgangs-tildeling over frame-indekset og ignorerer geometrien fuldstændigt. Begge strategier genererer derfor lige store folds; de adskiller sig kun i hvad der sorteres efter forinden.

W25Slideren „k Folds"

HVOR

Venstre sidebar, i midten.

TEKNISK

Slider fra 3 til 10, trinstørrelse 1. Ved ændring genstartes fold-beregningen automatisk, så folds-listen, trænings-/test-indekserne og pr.-fold-scoren straks genberegnes. Den valgte værdi vises som monospace-ciffer-tekst til højre for labelen.

Tommelfingerregel: k=5 er standard (giver dig 20% test pr. fold, det er almindeligt for cross-validation). k=10 hvis du har meget data og har brug for flere folds for statistisk gennemslagskraft. k=3 hvis du har lidt data.

W26Picker „Test Fold"

HVOR

Venstre sidebar, under k-slideren.

TEKNISK

Menu-picker. Den viser lige så mange indgange, som der er indstillede folds, mærket „Fold 1" til „Fold N". Hvis det tidligere valgte indeks er ≥ k (f.eks. fordi du har reduceret k fra 10 til 5), nulstilles det automatisk til 0. Den valgte test-fold vises rødt i globussen, alle andre grønt.

W27Knappen „Export fold-assignment.json"

HVOR

Venstre sidebar, nederst.

TEKNISK

Åbner en gem-dialog med standard- filnavn fold-assignment.json. Efter bekræftelse koder holdout- modulet den aktuelle opdeling til et JSON-skema (pr.-frame fold- tildeling plus strategy-meta-blok). Filen er beregnet til eksterne evalueringsværktøjer — RadianceKit indlæser den ikke igen. Knappen er nedtonet, så længe der ikke er indlæst en kamera-fil. Succes meldes som „Saved to (filename)", en skrive-fejl som „Export failed: …" — begge vises på samme sted under knappen og begge i grøn skrift, farven skelner altså ikke mellem tilfældene.

W28SCNView (3D Camera Globe)

HVOR

Midterpanel i holdout-vinduet.

TEKNISK

SceneKit-globus-view. Scenen består af: en wireframe-kugle (radius 1.0, 36 segmenter, mørkegrå), tre farvede akse-stumper (rød/grøn/blå for X/Y/Z, hver 1.2 lang), og pr. kamera en lille markørkugle (radius 0.03) på den tilsvarende synsretnings-position på enhedskuglen (lidt uden for, så den ikke forsvinder INDE i wireframe-kuglen). Markørerne genopbygges IKKE ved hver fold-ændring — genopbygning er kun nødvendig, når frame-listen ændrer sig (altså når en ny JSON indlæses). I stedet kører der pr. opdatering en in-place-opdatering af material- farverne: rød for test-indekser, grøn for training, lysegrå hvis hverken/eller. Sådan forbliver slider-tick-opdateringer performante også ved N > 1000 kameraer.

Kamera-kontrollen er aktiveret — du kan med musen dreje globussen, zoome, panorere. Belysning sørger for, at markørerne ikke ser flade ud. Baggrunden er mørkegrå.

W29FoldCard (Tap to Select Fold)

HVOR

Højre sidebar, „Angular Correlation"-sektionen.

TEKNISK

Pr. fold en kort-view — afrundet rektangel med 6 pt radius, padding 10, vertikalt layout med to linjer (øverst „Fold N" + antal kameraer, nederst „Mean nearest angle:" + værdi i grader). Baggrundsfarve betinget: aktiv fold = accentfarve halvgennemsigtig, inaktive = neutralt standard-materiale. Tryk vælger folden, og globussen skifter farve live.

„Mean nearest angle"-scoren er den gennemsnitlige mindste vinkel pr. test-kamera til det nærmeste trænings-kamera (beregnet internt i radianer, vist i grader i UI'et).

BayesOpt Console (W30–W39)

BayesOpt-konsol — tom tilstand før trial-start
BayesOpt-konsol — tom tilstand før trial-start

Tom tilstand med search-space-picker (RadianceKit defaults (6-dim)), trial-budget-slider (standard 40), random seed (42) og tre tomme paneler for konvergens-graf, trial log og search-space-parameterliste. Konvergens-grafen og trial-tabellen fyldes ud, så snart et run er startet — se næste billede.

BayesOpt-konsol efter 40 trials — konvergens-graf stiger stejlt indtil trial 13, Best Value 0.9943, trial log med init/bo/restart-tags
BayesOpt-konsol efter 40 trials — konvergens-graf stiger stejlt indtil trial 13, Best Value 0.9943, trial log med init/bo/restart-tags

Status øverst til højre „Finished — best 0.9943 after 40 trials", ved siden af knappen „Save Best Config"; øverst til venstre knappen „Start". Venstre sidebar: search-space-picker sat til RadianceKit defaults (6-dim), trial budget 40, random seed 42. Parameterlisten viser de seks hyperparametre der skal tunes, med deres værdiintervaller: mipSmoothing3DScale [0.05, 0.5], mipFilter2DVariance [0.1, 0.6], densifyGradThreshold [5e-07, 5e-06], ssimWeight [0.05, 0.5], mcmcNoiseScale [1e-05, 0.0001], mcmcRelocationInterval [50, 200]. Midten: konvergens-graf „Convergence (best value so far)" (X = trial-indeks 0–40, Y = objective value 0–1) — blå punkter = initial samples, grønne punkter = BayesOpt-acquisition, orange punkter = restart-trials (#22 med 0.5303 og #31 med 0.4885). Den blå bedste-værdi-linje stiger stejlt indtil trial ~5, herefter kun marginal forbedring indtil trial ~13, derefter et fladt plateau tæt på 1.0. Højre sidebar: trial-log, her scrollet til trials #8–#36, med score + tag (init/bo/restart). Save-Best-Config-knappen øverst til højre skriver bayesopt-best.json.

Hvad det er: En Bayes-optimeringskonsol til hyperparameter-søgning. Bayes-opt er en automatisk metode, der forsøger at finde det optimale punkt for en ukendt funktion med færrest mulige eksperimenter — typisk: „hvilken kombination af Gaussian-øvre-grænse, SSIM-vægt og densify-tærskel giver den bedste PSNR for min scene-klasse?" I stedet for et grid på 6^4 = 1296 trials afprøver BayesOpt ca. 40–100 informerede trials og kommer dermed tæt på optimum.

Vigtigt: Den aktuelle version, der leveres med appen, kører optimeringen ikke mod rigtige trænings-runs (det ville tage dage), men mod en syntetisk demo-objective — et multi-modalt landskab med hill-climbing-karakter plus let støj. Det er bevidst sådan: vinduet skal vise dig, hvordan optimizeren opfører sig (konvergensforløb, sample-punkter, best-so-far), og lade dig forstå search-space- definitionerne. Til rigtige trænings-drevne BayesOpt-kørsler (som dem der blev brugt til at udvikle de medfølgende presets) bruges en separat evalueringsvej uden for appen; vinduet er live-varianten til at se med.

Tre anvendelsestilfælde: 1. Du vil forstå, hvordan BayesOpt arbejder — start så en demo-kørsel og observer konvergens-grafen. 2. Du planlægger en ny scene-klasse (fx „akvarier" eller „antikke møbler"), som de femten indbyggede presets ikke passer perfekt til. Definér mentalt et søgerum, tjek det her med „Bowl demo (1-dim)" eller „densify-until + ssim-weight + grad-thresh", eksportér derefter den bedste konfiguration som JSON og brug den som udgangspunkt for en rigtig trænings-kørsel. 3. Du vil inspicere de medfølgende standard-søgerum (Mip-subset, RadianceKit Defaults) — de er listet i parameter-panelet i venstre sidebar.

- Konvergens-graf (midterste kolonne): Y = bedste hidtil opnåede objective-funktion-værdi. X = trial-indeks. Stiger stejlt i starten (BayesOpt afprøver de indledende samples tilfældigt, nogle af dem er heldige), bliver derefter mere og mere fladt, fordi regionen nær optimum er udforsket. Hvis linjen forbliver flad i 20+ trials, kan du stoppe kørslen — flere trials giver ikke mere. De enkelte punkter i grafen er de individuelle trial-værdier (altså ikke „best so far"), farvet efter fase: blå = initial sample, grøn = bayesopt acquisition, orange = restart. - Trial-tabel (højre kolonne): #1, #2, #3, … med henholdsvis værdi og fase-tag. Den hidtil bedste trial er markeret med en gul stjerne. Ud fra tabellen kan du identificere den bedste trial og senere se dens parameterværdier ved eksport. - Search-space-inspektør (venstre sidebar): viser for det valgte preset alle parameternavne og deres søgeintervaller [lo, hi]. Hvis du står ved presettet „RadianceKit defaults (6-dim)", ser du fx „densifyGradThreshold [5e-7, 5e-6]" — altså log-uniform mellem disse to værdier.

Vælg preset „RadianceKit defaults (6-dim)", trial budget 40, seed 42. Klik „Start". Observer: de første 8 trials er blå (initial samples, latin hypercube), de følgende grønne (BayesOpt-akkvireret). Konvergens-grafen bliver stejl indtil trial ~13, derefter flader den ud. Ved trial ~30–40 stabiliserer den bedste værdi sig. Klik „Save Best Config" — en bayesopt-best.json gemmes med preset-navnet, trial-indeks, værdi og de dekodede parameterværdier. Denne JSON kan du derefter manuelt overføre til din preset-definition.

W30Knap „Start"

HVOR

Værktøjslinje til venstre, i Idle/Finished-tilstand.

TEKNISK

Nulstiller trial-listen, skifter til Running-tilstand, genererer et nyt run-ID (til stale-detection ved flere start-klik) og opretter en frisk pause-gate. Derefter starter en baggrundsopgave, der kører optimizeren som en asynkron stream. Antallet af initial samples vokser med budgettet, men højst til 8 — altså typisk 8 latin-hypercube-samples fra et budget på 28, færre ved mindre budget. Trial-opdateringer modtages inkrementelt og tilføjes listen. Stale-run-beskyttelse: hvis et andet start-klik i mellemtiden sætter et nyt run-ID, kasseres opdateringer fra det gamle run.

Primary-action-stil for det fremtrædende knap-look.

W31Knap „Pause"

HVOR

Værktøjslinje til venstre, i Running-tilstand.

TEKNISK

Aktiverer pause-gaten og skifter til Paused-tilstand. Den egentlige effekt: runneren venter i en 50-ms-polling-løkke, før den evaluerer den næste objective-funktion. Det betyder, at et allerede kørende trial afsluttes (det er jo syntetisk og tager kun mikrosekunder), men intet nyt trial startes. Så snart Resume kører, fortsætter det hvor det slap.

W32Knap „Stop"

HVOR

Værktøjslinje til venstre, i Running- og Paused-tilstand.

TEKNISK

Afbryder runner-opgaven, nulstiller referencen, udløser pause-gaten (hvis den stadig var pauset), og skifter til Finished-tilstand (hvis der findes trials) eller Idle-tilstand (hvis ingen). De allerede beregnede trials forbliver synlige i listen — Stop sletter dem ikke. Destruktiv knap-rolle viser knappen i rødt, fordi den afbryder kørslen.

W33Knap „Resume"

HVOR

Værktøjslinje til venstre, i Paused-tilstand.

TEKNISK

Udløser pause-gaten og skifter tilbage til Running-tilstand. Runner-opgaven kører allerede (den venter jo i polling-løkken); så snart løkken opdager, at pausen er ophævet, fortsætter den og starter det næste trial.

W34Knap „Save Best Config"

HVOR

Værktøjslinje til højre, altid synlig (men grået ud, så længe der endnu ikke findes et bedste resultat).

TEKNISK

Åbner en gem-dialog med standard- filnavn bayesopt-best.json, begrænset til JSON. Efter bekræftelse bygges en payload-ordbog: preset-navn, trial-indeks, værdi (objective-score), parametre (ordbog over de dekodede parameter- navne → værdier). Dekodningen projicerer de normaliserede søgerum-koordinater i [0,1]^d tilbage til det oprindelige værdiinterval (med log-uniform/linear/integer-skalaer efter behov). JSON-outputtet er pretty-printed og med sorterede nøgler. Ved skrivefejl ignoreres det (i den aktuelle demo-version) stille — ingen fejl-UI, fordi det er en demo-vej.

Knappen forbliver grå, så længe intet trial er kørt.

W35Picker „Search Space"-preset

HVOR

Venstre sidebar, øverst.

TEKNISK

Menu-picker med fire preset-muligheder: - „RadianceKit defaults (6-dim)" — det fulde standard-søgerum med alle seks standard-hyperparametre. - „Mip subset (2-dim)" — kun mipSmoothing3DScale [0.05, 0.5] log-uniform og mipFilter2DVariance [0.1, 0.6] lineær. Nyttig hvis du vil tune mip-splatting for en scene- klasse. - „densify-until + ssim-weight + grad-thresh" — tre densify-relevante parametre (densifyGradThreshold log-uniform, ssimWeight lineær, densifyUntilIter heltal). - „Bowl demo (1-dim)" — pædagogisk single-parameter-søgerum til „sådan fungerer BayesOpt"-demoer.

Mens en kørsel er aktiv, kan søgerummet ikke skiftes (ville forvirre optimizeren).

W36Slider „Trial Budget"

HVOR

Venstre sidebar, under search-space-pickeren.

TEKNISK

Slider fra 10 til 200, trinstørrelse 5. Standard 40. Det betyder: BayesOpt må lave maksimalt N trials. Heraf er de første få initiale samples (latin hypercube), resten er rigtige BayesOpt-trials. Tommelfingerregler i praksis: et søgerum med d dimensioner kræver ca. ti til tyve gange d i trials for et godt optimum. Ved 6-dim defaults altså 60–120, ved 2-dim mip-subset 20–40, ved 1-dim bowl-demo 10–20.

Under kørslen er sliderен deaktiveret.

W37Slider „Random Seed"

HVOR

Venstre sidebar, under budget-slideren.

TEKNISK

Slider fra 1 til 100, trinstørrelse 1. Standard 42. Seed'en videregives både til de initiale latin-hypercube-samples og til støj-komponenten i demo-objectiven. Reproducerbarhed: samme seed + samme søgerum + samme budget giver nøjagtig identisk trial-sekvens. Nyttigt til „får alle dine kolleger den samme kørsel, når de genskaber demoen?". Deaktiveret under kørslen.

W38Graf (Convergence)

HVOR

Midterste kolonne i vinduet.

TEKNISK

Swift-Charts-diagram med to lag: 1. en linje for „best-value-so-far" pr. trial — en monotont stigende eller konstant kurve i accentfarve. 2. et punkt pr. trial med den individuelle objective-værdi, farvet efter fase. Symbolstørrelse 40. Tre fase-labels: „init" (blå), „bo" (grøn), „restart" (orange).

En lille tegnforklaring viser fase-farverne øverst til venstre. Hvis trial- listen er tom (før den første start), vises i stedet en tom- tilstand-visning med graf-ikon og teksten „Press Start to begin a BayesOpt run."

W39Tabel (Trial Log)

HVOR

Højre kolonne i vinduet.

TEKNISK

Scroll-område med lazy-stablede trial- rækker. Pr. række et vandret stack: trial-nummer (3-cifret monospaced, til venstre), værdi (monospaced, højrestillet, 70 pt bred), fase- tag (kapsel, fyldt med 25% opacitet — grå for „init", blå for „bo", orange for „restart"; det er bevidst andre farver end punkt-farverne i grafen ved siden af), evt. en gul stjerne hvis denne trial aktuelt er den bedste. En auto-scroll-mekanisme springer automatisk til bunden, så snart et nyt trial kommer til — så du kan følge live-forløbet i bunden af skærmen uden selv at skulle scrolle.

Hovedvindue: Loss-forløb og Gaussian-antal (I39–I41, krydsreference)

Tre af Inspector-visningerne i hovedvinduet fortjener en selvstændig forklaring, fordi de er konstant synlige under et igangværende træningsforløb, og fordi der findes vigtige tommelfingerregler for, hvornår forløbet ser sundt ud. Visningerne sidder i Inspector i afsnittet Fremskridt, i den udvidelige gruppe Loss-forløb (se kapitel 2 — Inspector), og supplerer holdout-analysen fra Aux-vinduet ovenfor.

Hvornår er loss-kurven sund? En sund loss-kurve viser tre faser: (1) Warmup — i de første 200–500 iterationer falder loss stejlt fra højt (typisk 0,15–0,25 for L1+SSIM-kombineret afhængigt af scenen) til omtrent det halve. Falder loss IKKE i denne fase, er det som regel input, der er forkert (ødelagte billeder, dårlige SfM-poser, for lille antal indledende Gaussians). (2) Densification — mellem ~500 og densifyUntilIteration (klassisk 15K, MCMC op til 20K eller 25K) falder loss videre, ofte med små spring nedad, når densify-operationer indsætter nye Gaussians, og optimeringen udnytter dem. Gaussian-antallet stiger i denne fase. (3) Refinement — derefter går loss ind i en gradvist fladere hale. Typiske slutværdier til orientering: en velbelyst objekt-scene (f.eks. Tanks-&-Temples Truck med P4 Quality) lander på L1 ≈ 0,023, mens vidtstrakte udendørsscener som dem fra Mip-NeRF 360 naturligt ligger højere (0,04–0,07).

Hvad betyder et plateau? Et plateau (loss-kurven forløber vandret over flere tusind iterationer) har to fortolkninger: (a) modellen er konvergeret, yderligere træning giver ikke mere — det er det gode tilfælde. (b) modellen sidder fast (lokalt minimum, dårlig gradient-information, et loft ved buffer-grænsen) — det dårlige tilfælde. Begge ser identiske ud i diagrammet. Sådan skelner du: kig på Gaussian-antallet. Hvis det også er fladt OG tæt på MCMC-loftet (f.eks. 150K af 150K ved presettet P8 Quality (MCMC)), er du ved grænsen — enten hæv loftet, eller accepter plateauet. Hvis Gaussian-antallet stadig vokser, men loss ikke falder, sidder modellen fast.

Hvornår skal du afbryde vs. fortsætte træningen? Tommelfingerregel: 10K iterationer uden forbedring af min-loss → afbryd, yderligere iterationer er spildte. Inden da: via Training-menuen → Continue Training → „+5.000 iterations" kan du tilføje en forlængelse, hvis du ser marginal forbedring (der findes ingen genvejstast til dette). Bemærk: ved MCMC er plateauet ofte reelt — loftet er den naturlige grænse.

Gaussian-antal-plateau er IKKE et „færdig"-signal. Det betyder kun, at MCMC har nået loftet, eller at klassisk densification er udtømt. Det egentlige „færdig"-spørgsmål besvares først af PSNR/SSIM/LPIPS på et uafhængigt testsæt — tallene til dette findes i benchmark-rapporterne, som du analyserer i Pareto Dashboard (W13–W22). Holdout-vinduet (W23–W29) leverer ikke disse metrikker; det vurderer kun, om dit kamerasæt overhovedet muliggør en fair opdeling i trænings- og testvinkler.

PSNR/Holdout er sandheden, loss er kun en proxy. Loss er en relativ metrik: den falder, mens din model tilpasser sig trænings-views. Et lavt loss betyder dog ikke automatisk en god model — hvis modellen har lært træningsbillederne udenad (overfitting), ville loss være lille, men PSNR på usete views (holdout) ville være dårlig. Derfor: for den endelige kvalitetsvurdering skal du altid kigge på holdout-metrikker, ikke kun på slut-loss.

Tommelfingerregel-boks

- User Guide og Keyboard Shortcuts er statisk hjælp — hurtig ved stikordsspørgsmål, brug denne manual til dybde. - Åbn Manage Storage, så snart disken kommer under 10% ledig plads. Logs og Imports-staging er de sædvanlige syndere. - Pareto Dashboard giver først mening efter mindst tre eller fire trænings-rapporter. X-aksen = omkostning (Time / Gs), Y-aksen = kvalitet (PSNR / SSIM). Pareto-fronten viser de effektive kombinationer. - Brug Holdout Analysis, før du offentliggør PSNR-benchmarks sammen med andre — det sikrer dig, at dit testsæt virkelig er repræsentativt. Den eksporterede fold-opdeling er til eksterne værktøjer; RadianceKit træner videre mod „every-8th". - BayesOpt Console er primært et lærings- og inspektionsværktøj til definition af søgerum — den regner mod en demo-funktion, ikke mod rigtige trænings-kørsler. - Loss-plateau og Gaussian-count-plateau skal fortolkes hver for sig. Cap-grænsen er ikke et „færdig"-signal. Reel kvalitet måles kun med Holdout-PSNR. - 10K iterationer uden forbedring af min-loss → stop træningen.