Brukerveiledning

Kapittel 4 — Aux-vinduer

Ved siden av hovedvinduet (3D-viewport pluss Inspector) forvalter RadianceKit seks andre vinduer, som alle åpnes via Help-menyen. Menyen har åtte oppføringer, ovenfra og ned: 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 …»-oppføringene åpner ikke et app-vindu, men Finder; derfor er de ikke omtalt videre her. Tre av vinduene — Dashboard, Holdout, BayesOpt — er selvstendige analyseverktøy: de fungerer uavhengig av hovedvinduet og leser eller skriver JSON-filer på disken. Hvert av disse tre vinduene åpner du via Hjelp-menyen og velger deretter selv filen eller mappen du vil analysere — via «Open Reports Folder…», «Open transforms.json…» eller «Start»-knappen. Disse tre vinduene er de eneste som ikke er oversatt: knappene, glidebryterne og kolonnetitlene deres står på engelsk i alle språkversjoner. Betegnelsene som nevnes her, finner du altså igjen akkurat slik på skjermen.

De tre enkle vinduene (User Guide, Keyboard Shortcuts, Manage Storage) og de to mappe-menypunktene (Open Training Logs / Open Exports Folder) får en kort oppføring per kontrollelement. De tre analysevinduene er dokumentert mer utførlig — hver med en innledning som forklarer hva du ser i vinduet, når du bør åpne det og hvordan du tolker bildet som vises.

Til slutt i kapittelet er det et kryssreferanse-avsnitt til Inspector i hovedvinduet: hva du med fordel kan lese ut av live-loss-diagrammet og Gaussian-count-visningen mens en trening pågår.

Brukerveiledning (W1–W4)

Brukerveiledning-vindu med sidefelt til venstre og rendret Markdown-innhold til høyre
Brukerveiledning-vindu med sidefelt til venstre og rendret Markdown-innhold til høyre

Hva det er: Et innebygd hjelpevindu som rendrer guide_<sprache>.md-filen som følger med appen. Språket avledes fra Settings (Tab General → Language) eller, hvis det står «System» der, fra macOS-språkpreferansene. Layouten er klassisk: sidefelt med alle overskrifter til venstre, brødtekst til høyre.

Når du trenger en rask påminnelse om et enkelt punkt — altså som stikkordserstatning. Den fyldige referansen er dette manualet; det innebygde hjelpevinduet er kortversjonen for raskt oppslag. Det oppdateres ved hvert app-release, men holdes bevisst mer overfladisk innholdsmessig.

W1NavigationSplitView (sidefelt + detalj)

HVOR

Help → User Guide (⌘?).

TEKNISK

Tospalte-layout med et smalt sidefelt (minst 180 pt bredt) for innholdstreet og et rullbart detaljområde for selve Markdown-innholdet. Vinduet har en minstestørrelse på 700 × 500 pt. Ved første åpning laster vinduet den passende guide_<lang>.md fra app-bundlen (fallback guide_en.md), parser den til blokk-poster (overskrifter H1–H4, avsnitt, lister, tabeller, skillelinjer) og trekker separat ut overskriftsstrukturen for sidefeltet. Inline-formatering (fet, kursiv, kode-span) rendres via den innebygde Markdown-motoren. Språket leses fra app-innstillingene, med spesialtilfellene kinesisk (zh-Hans) og brasiliansk portugisisk (pt-BR), som beholdes som fulle locale-tags fordi disse variantene skiller seg fra zh og pt.

W2List (overskrift-sidefelt)

HVOR

Venstre kolonne i brukerveiledning-vinduet.

TEKNISK

Liste over alle H2- og H3-overskrifter i det gjeldende Markdown-dokumentet. H2-oppføringer vises uten innrykk med middels skriftvekt, H3-oppføringer med 16 pt innrykk til venstre og redusert forgrunnsstil. Alle andre nivåer — H1 så vel som H4 og dypere — vises ikke i sidefeltet, fordi de ellers ville gjort det uoversiktlig. Anker-IDer genereres fra overskriftsteksten via slugifisering (lowercase + mellomrom til bindestreker + filtrering på bokstaver/tall/bindestreker — samme algoritme som GitHub bruker for sine Markdown-ankere, slik at også eksterne URL-er til dokumentasjonen potensielt kan lande på samme anker). Listen bruker den native macOS-stilen.

W3Button (overskrift → anker-hopp)

HVOR

Én knapp per sidefelt-rad.

TEKNISK

Hver sidefelt-oppføring er en knapp som setter det gjeldende ankeret, men visuelt ser den ut som en listeoppføring. En observer-variabel utløser deretter rulle-hoppet til det tilsvarende ankeret med en myk animasjon over 0,3 s. Etter hoppet nullstilles anker-verdien, slik at neste klikk på samme anker utløser på nytt (ellers ville observeren ikke utløst igjen, fordi verdien ikke har endret seg).

W4ScrollView (detalj-innhold)

HVOR

Høyre kolonne.

TEKNISK

Rullbart, vertikalt stablet innholdsområde med lazy-rendering, fordi lengre guider lett kan ha over 200 Markdown-blokker — en ikke-lazy variant ville instansiert alle samtidig. Hver blokk får en egen ID, enten overskrift-ankeret (som hver overskrift får, uavhengig av nivå) eller en indeks-plassholder. Maksbredde er 720 pt, padding 32 horisontalt / 24 vertikalt, slik at lange linjer beholder et godt lesbart layout. Tabeller rendres celle for celle med horisontale stacks og skillelinjer; inline- kode gjennom den innebygde Markdown-motoren. Ekte kodeblokker behandles for øyeblikket som avsnitt — en kjent begrensning ved hjelpevinduet.

Tastatursnarveier (W5–W6)

Keyboard Shortcuts-vindu — fem grupper Navigation/Views/Capture/Editor/Training med hurtigtast-kolonne til venstre og beskrivelse til høyre
Keyboard Shortcuts-vindu — fem grupper Navigation/Views/Capture/Editor/Training med hurtigtast-kolonne til venstre og beskrivelse til høyre

Statisk referanseliste i fem seksjoner. Navigation: Mouse Drag (Orbit/Fly), Shift+Drag/Right-Drag (Pan), Scroll (Zoom), WASD (Fly-Through-bevegelse), Q/E (Up/Down), F (Toggle Orbit/Fly), Double-click (Re-center), Cmd+Scroll (FoV-Adjust). Views: R (Reset Camera), T (Auto-Rotation), P (Camera Playback), B (Background-Cycle), 0–9 (Hopp 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 (slett utvalg), Cmd-Z (angre siste sletting), [ / ] (mindre/større penselstørrelse), Esc (opphev utvalg). Training: Option+Space (pause/gjenoppta trening), Cmd+E (eksporter scene). Mer enn dette står ikke her — Start, Cancel og forlengelsene finner du via Training-menyen (kapittel 1).

Hva det er: En enkel statisk oversikt over alle tastatursnarveier — Navigation, Views, Capture, Editor, Training. Innholdet er fast innebygd og lastes ikke inn fra en fil.

Når du leter etter den raskeste måten å gjøre noe i viewporten på. WASD-Fly-Through, R for Camera-Reset, B for Background-Cycling — alle står her.

W5ScrollView (innholdsområde)

HVOR

Help → Keyboard Shortcuts (⌘/).

TEKNISK

Et enkelt scroll-område med en vertikal liste inni. Padding 20 rundt hele, ingen sidebar-navigasjonstre (listen er kort nok). Innholdet er gruppert i fem seksjoner (Navigation, Views, Capture, Editor, Training). Per tastekombinasjon en rad med oversettbar tekst i begge kolonnene. Venstre kolonne (tastekode) er fikset til 180 pt bredde, slik at beskrivelsene til høyre forblir vertikalt alignet. Ingen interaksjon utover scrolling — å klikke på en rad utløser ingenting, tastatursnarveiene er ekte tastaturmodifikatorer i menyen og på viewporten.

W6VStack (snarveis-seksjoner)

HVOR

Inne i ScrollView.

TEKNISK

Venstrejusterte stablede seksjoner med 16 pt avstand. Innenfor de fem seksjonene henholdsvis heading + rad-sekvens. Headings bruker en sekundær subheadline-stil — bevisst ikke Title-format, fordi seksjonene ikke trenger å være navigerbare. Innholdet er bevisst flatt (ingen disclosure, ingen søk, ingen filter), slik at komponenten kjører uendret på enhver macOS-versjon og filen forblir lesbar.

Manage Storage (W7–W12)

Manage Storage-vindu — header viser «1,356 items · 55.1 GB total», tabell med eksport-PLY-filer sortert etter dato, hver med ikon + filnavn + størrelse + dato
Manage Storage-vindu — header viser «1,356 items · 55.1 GB total», tabell med eksport-PLY-filer sortert etter dato, hver med ikon + filnavn + størrelse + dato

Tabellvisning av alle filer RadianceKit forvalter. Header viser 1.356 elementer, 55,1 GB totalstørrelse. Verktøylinje øverst: «Show in Finder» + «Refresh». Hver rad: eksport-ikon, filnavn (f.eks. training_20260718T194416Z.ply), eksportdato, størrelse (varierer her fra 7,8 MB til 2,24 GB), lupe-ikon (Reveal) og papirkurv-ikon (Move to Trash). Sorteringen skjer først etter kategori og innenfor en kategori etter dato, nyeste øverst. I dette opptaket dominerer PLY-eksporter, fordi det i dette lageret hovedsakelig ble sikret treningsresultater.

Hva det er: En disk-bruksoversikt for alt RadianceKit lagrer under ~/Documents/RadianceKit/ — logger, eksporter, scener, capture-bunter (fra iOS-følgesvennen), imports (staging-kopier av inndatabildene). Per oppføring en størrelse i bytes og to knapper: «vis i Finder» og «flytt til papirkurven». Dette er IKKE automatisk opprydding — appen sletter selv ingenting; du bestemmer per oppføring. Dette vinduet er oversatt: på tysk heter det «Speicher verwalten», de to header-knappene heter «Im Finder anzeigen» og «Aktualisieren», rad-knappene «Im Finder anzeigen» og «In den Papierkorb legen». De engelske navnene i oppføringene under er betegnelsene fra den engelske utgaven.

Når disken blir full. Spesielt loggene samler seg opp (én JSONL per treningsforsøk, pluss _qualityMetrics.json); eksportene naturligvis også (PLY er 100% rå data, én per eksport). Også nyttig etter en krasj, når imports-staging-mappen fortsatt har gamle kopier av inndatabildene liggende.

W7Knappen «Show in Finder»

HVOR

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

TEKNISK

Åpner RadianceKit-datamappen i Finder — akkurat den mappen hvis innhold dette vinduet lister opp. Slik ser du mappestrukturen (Logs, Exports, Scenes, Captures, Imports) direkte og kan også flytte eller kopiere filene selv med Finder. Handlingen åpner et nytt Finder-vindu; listen i vinduet endrer seg ikke automatisk med — det er «Refresh» (W8) til for.

W8Knappen «Refresh»

HVOR

Header, ved siden av Finder-knappen.

TEKNISK

Utløser et bakgrunnsskann som kjører på en brukerinitiert asynkron oppgave, slik at skanning av store mappetrær ikke blokkerer brukergrensesnittet. Selve gjennomgangen går gjennom hver kjente undermappe (Logs, Exports, Scenes, Captures, Imports) og lager en storage-oppføring per direkte barn. Per oppføring beregnes den rekursive størrelsen — fortrinnsvis det faktiske diskforbruket (inkludert APFS-hardlink-deling) med fallback til den logiske filstørrelsen.

W9List (storage-oppføringer)

HVOR

Hovedinnhold under headeren.

TEKNISK

Liste med dette oppsettet per rad: kategori- spesifikt SF-symbol-ikon (dokument for Logs, opplastingspil for Exports, terning for Scenes, iPhone for Capture-bunter, brett for Imports), navn + undertittel (kind-etikett + formatert modifikasjonsdato), byte-teller til høyre (høyrejustert, monospaced), reveal-knapp (lupe-symbol), trash-knapp (papirkurv). Sortering: primært etter kind (Scenes først, deretter Exports, Logs, Captures, Imports, Other), sekundært etter modifikasjonsdato synkende (nyeste øverst). Hvis skanningen fortsatt kjører, viser stedet i stedet en «Scanning…»-fremdriftsindikator. Hvis ingenting ble funnet, en empty-state-visning med brett-ikon.

W10Rad-knappen «Reveal in Finder»

HVOR

Per rad, lupe-symbol til høyre.

TEKNISK

Åpner Finder og velger den spesifikke oppføringen (fil eller mappe). Forskjell fra W7: W7 åpner rot-mappen; W10 markerer nøyaktig denne ene oppføringen. Praktisk arbeidsflyt: identifiser en stor oppføring, klikk på lupen, kopier den deretter for eksempel til et eksternt volum.

W11Rad-knappen «Move to Trash»

HVOR

Per rad, papirkurv-symbol til høyre for lupen.

TEKNISK

Utløser bekreftelsesdialogboksen (W12). Først etter bekreftelse kjører macOS' standardoperasjon «flytt til papirkurven» (altså reversibelt, ingen direkte sletting). Etter vellykket flytting til papirkurven fjernes oppføringen fra listen og den totale byte-telleren oppdateres. Ved feil vises en modal feildialog.

W12ConfirmationDialog (slette-bekreftelse)

HVOR

Utløses av W11, vises som et macOS-sheet.

TEKNISK

Standard bekreftelsesdialog med dynamisk tittel «Delete <name>?» og en meldingslinje som eksplisitt påpeker at oppføringen havner i papirkurven og kan gjenopprettes derfra (helt til 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 blokkerer dette vinduet, ikke hele appen — det er macOS-standard for reversible slettinger.

Pareto Dashboard (W13–W22)

Pareto Dashboard — tom tilstand før rapportimport
Pareto Dashboard — tom tilstand før rapportimport

Tom tilstand (etter første åpning) — Empty-State med oppfordring «Open Reports Folder…». Datapunktene dukker opp så snart treningsrapporter er lastet inn, se neste bilde.

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

Header-verktøylinjen viser til høyre «384 reports of 384» (alle rapportene i den valgte mappen ble tolket riktig); til venstre for knappen «Open Reports Folder…» står navnet på den innlastede mappen, her «Benchmarks». Akser: X-akse-velger på Gaussians, Y-akse-velger på PSNR (dB), ved siden av den aktive haken «Show Pareto Front». Forklaring øverst til venstre: blå = mcmc, grønn = classic, oransje = hybrid, i tillegg symbolformen for Mip-Splatting On/Off. Den stiplede Pareto-front-linjen følger de best oppnådde PSNR-verdiene og flater ut rundt PSNR≈30 dB fra ca. 300K Gaussians; punktskyen strekker seg til over 1,5 mill. Gaussians. Filter-chips til høyre: over 30 scener (bl.a. bicycle, bonsai, family, flowers, garden, kitchen, stump, truck samt de nummererte 360-, drone- og photo-testseriene), 3 strategier (classic, hybrid, mcmc), 3 Mip-Splatting-alternativer (All, On, Off) med «All» aktiv. For øyeblikket er ingen scene- eller strategifilter satt, derfor det tette punktklyngen.

Hva det er: Et verktøy for sammenligning av flere kjøringer. Du har tidligere trent flere scener eller den samme scenen med ulike presets — fra en benchmark-analyse oppstår per treningskjøring en JSON-rapportfil som blant annet inneholder Final-PSNR, SSIM, LPIPS, Gaussian-antall og klokketid. En bryter for denne analysen finnes ikke i grensesnittet; dashbordet analyserer det som allerede ligger som rapport i den valgte mappen. Det leser en hel mappe med slike rapporter samtidig og plotter dem som et 2D-spredningsdiagram med velgbare akser. I tillegg tegnes Pareto-fronten (mengden av ikke-dominerte punkter) inn som en stiplet linje.

Etter at du har opprettet minst tre eller fire treningsrapporter. Med færre punkter er ikke frontlinjen meningsfull. Typisk bruksscenario: du har forsøkt å rekonstruere en utendørsscene, og har testet P3 Balanced (Classic), P4 Quality (Classic), P8 Quality (MCMC) og P9 Drone / Aerial etter hverandre — nå vil du vite hvilken konfigurasjon som gir best PSNR per sekund treningstid, eller hvilken som trenger færrest Gaussians for en gitt PSNR.

Begge akser kan velges fritt (X-akse: Gaussians, treningstid, PSNR, SSIM, LPIPS, …; Y-akse likeledes). Pareto-front- beregningen vet for hver metrikk om «mindre = bedre» (LPIPS, Gaussians, Training Time, BRISQUE) eller «større = bedre» (PSNR, SSIM, FSIM, MS-SSIM) — linjen går altså avhengig av aksevalget fra nederst til venstre mot øverst til høyre, eller fra øverst til venstre mot nederst til høyre, alltid langs den beste oppnådde kombinasjonen. Et punkt er Pareto-optimalt hvis INGEN annet punkt er minst like godt i BEGGE dimensjoner (altså ingen annen dominerer det). Pareto-optimale punkter ligger på linjen, andre punkter til høyre/over (avhengig av akseorientering) linjen. Punkter PÅ linjen er de reelle kandidatene for «beste preset»; punkter LANGT fra linjen er bortkastet treningstid.

Du kan begrense utvalget til en bestemt scene (hvis du f.eks. bare vil sammenligne utendørskjøringer), til en bestemt strategi (classic, hybrid eller mcmc), eller til Mip-Splatting på/av (Mip-Splatting er en valgfri innstilling for viderekomne, derfor lønner den direkte sammenligningen seg).

Du har tre rapporter for scenen «truck» i en rapportmappe: Kjøring A (P4 Quality (Classic), 524K Gs, 105 s, PSNR 23.4), Kjøring B (P8 Quality (MCMC), 150K Gs, 693 s, PSNR 24.6), Kjøring C (P5 Ultra Detail, 1.25M Gs, 312 s, PSNR 25.8). Sett X-aksen til Training Time, Y-aksen til PSNR. Kjøring B ligger øverst til høyre, kjøring C enda lenger øverst til høyre, kjøring A nederst til venstre. Pareto-fronten forbinder A og C — begge ikke-dominerte. Kjøring B er «tapt» (C er bedre både i tid OG PSNR). Erkjennelse: for «truck» lønner ikke MCMC-veien seg; enten rask+ok (A) eller lang+svært bra (C). Lagre konfigurasjonen fra C som eget preset (Inspector → I1 Save Preset).

Neste handling: Lagre beste konfigurasjon som preset. Konkret: se på Pareto-punktene (hover viser PSNR/SSIM/LPIPS/Gs/Time i tooltip), avgjør hvilket som passer deg best ut fra time-vs-quality-avveiningen, åpne den tilhørende rapporten (filnavnet inneholder kjøringens tidsstempel), kopier treningskonfigurasjonen inn i en ny kjøring, eller lagre den etter neste treningsøkt som et preset via Inspector.

W13Knappen «Open Reports Folder…»

HVOR

Verktøylinjen øverst til venstre.

TEKNISK

Åpner en mappevelger-dialog med oppfordringen «Select a folder containing benchmark .json reports». Etter bekreftelse kjører en bakgrunnsoppgave som tolker alle .json-filer i mappen sekvensielt. Feilaktige rapporter (ødelagt JSON, feil skjema) samles opp og vises nederst i sidepanelet som «N file failed to parse» — ingen krasj. Hvis et andre klikk skjer mens en første innlasting fortsatt pågår, avbrytes den forrige oppgaven, slik at ikke to resultater skriver til tilstanden samtidig.

Den valgte mappen huskes ikke permanent: etter at vinduet er åpnet via Hjelp → Pareto Dashboard… (⇧⌘D) velger du den på nytt her. Navnet på den innlastede mappen vises deretter til høyre for knappen.

W14Velger «X-Axis»

HVOR

Over diagrammet, til venstre.

TEKNISK

Menyvelger med alle tilgjengelige metrikk-akser i dashbordmodulen (PSNR, SSIM, LPIPS, Gaussian-antall, treningstid og så videre). Standard er Gaussian-antall. Ved bytte tilbakestilles det punktet musen holder over, fordi en tidligere fremhevet posisjon i det gamle aksekoordinatsystemet ikke lenger gir mening etter aksebytte. Velgeren er begrenset til innholdsbredde, slik at den ikke strekker seg over hele bredden.

W15Velger «Y-Axis»

HVOR

Over diagrammet, ved siden av X-Axis.

TEKNISK

Identisk med W14, bortsett fra at standard er PSNR. Aksevalget lagres uavhengig, så brukeren kan også velge tullete kombinasjoner (X=PSNR, Y=PSNR — ville kastet alle punktene på en diagonal). Slike kombinasjoner blir imidlertid ikke fanget opp; en bevisst avgjørelse, fordi en sammenligning «SSIM vs PSNR» absolutt kan være interessant for å se hvor konsistent metrikkene oppfører seg.

W16Bryter «Show Pareto Front»

HVOR

Til høyre for akse-velgerne.

TEKNISK

Et avkrysningsfelt, satt som standard. Pareto- fronten legges i tillegg til punktskyen som en linje over diagrammet — stiplet (strekmønster 4–4), grå halvtransparent, linjetykkelse 1,5 pt. Merk: I den utleverte versjonen har haken ingen effekt på diagrammet — frontlinjen tegnes alltid, uansett om den er avkrysset eller ikke. Fronten beregnes på nytt ved hvert aksebytte og etter hver filterendring.

W17Chips for «Scene»-filter

HVOR

Høyre sidepanel i dashbord-vinduet.

TEKNISK

Filter-chips for hver scene som forekommer i de innlastede rapportene. Eget flytlayout som automatisk pakker om chips til flere linjer så snart bredden er fylt opp. Aktive chips får aksentbakgrunnen, inaktive en nøytral standard-materialbakgrunn. Flervalg er mulig (mengde-semantikk); hvis ingen chip er valgt, regnes alle scener som «sluppet gjennom» — altså er mengdelogikken «tomt utvalg = alt», ikke «tomt utvalg = ingenting».

W18Chips for «Strategy»-filter

HVOR

Under scenefilteret i sidepanelet.

TEKNISK

Akkurat som W17, men for treningsstrategier — vanligvis de tre verdiene «classic», «hybrid» og «mcmc», avledet fra strategy-feltet i benchmark-rapport-JSON-ene. Nyttig hvis du har blandet rapporter fra flere strategier og bare vil se én type (f.eks. «vis bare MCMC-kjøringer, fordi jeg allerede har ekskludert Classic»).

W19Chips for «Mip-Splatting»-filter

HVOR

Under strategifilteret i sidepanelet.

TEKNISK

Trevendig filter (i motsetning til mengde som i W17/W18): «All» / «On» / «Off». Bakgrunn: Mip-Splatting er en multi-skala-utvidelse som hjelper eller ikke, avhengig av scenen — derfor forblir den en bevisst tilkoblet innstilling og ikke en standard. Når du gjør Mip-på/av-sammenligninger, vil du ofte kunne skille svært skarpt. Derfor det dedikerte ternære filteret med tilstandene «slipp alt gjennom», «kun Mip på», «kun Mip av». Sidepanel-seksjonen dukker opp så snart det innlastede settet i det hele tatt inneholder rapporter — altså praktisk talt alltid; den forsvinner bare hvis ingenting er lastet inn.

W20ChipButton (filter-bryter, all/on/off)

HVOR

Hjelpekomponent, brukt i W17/W18/W19.

TEKNISK

Minimalistisk knapp-wrapper. Innhold: etikett- tekst med caption-skriftgrad og padding 10 horisontalt / 5 vertikalt. Bakgrunn betinget: hvis aktiv → app-aksentfarge med hvit tekst; ellers nøytral standard-materialbakgrunn med normal tekstfarge (tilpasser seg lyst og mørkt utseende). Fasongen er en kapsel (pilleformet). Plain-knappestil, slik at kapsel- materialet ikke overlappes av en systemramme.

W21Diagram (Pareto-spredningsplott)

HVOR

Midtflaten i dashbordet.

TEKNISK

Swift Charts-diagram med to lag: 1. ett punkt per rapport — posisjon fra de valgte X- og Y-metrikkene, farge etter strategi, symbol etter Mip-status. Symbolstørrelse normalt 80, fremhevet 200 (når ID-en tilsvarer den rapporten musen for øyeblikket holder over). 2. en linje for Pareto-fronten (se W16 — den tegnes alltid). I tillegg viser punktet musen holder over scenenavnet som en liten kapsel over seg selv.

Diagram-overlegg: et transparent rektangel registrerer musebevegelse; per bilde beregnes den euklidisk nærmeste punktposisjonen i plottrammen, og punktet musen holder over oppdateres hvis avstanden er under 24 px (ellers tilbakestilles den). Slik får du tooltip uten å klikke — det holder å holde musen over.

W22Tooltip (hover-detalj)

HVOR

Under diagrammet, vist ved hover.

TEKNISK

Horisontal stack: scenenavn (headline), strategi-tag (caption), skillelinje, deretter PSNR/SSIM/LPIPS/Gs/Time-metrikker i hver sin lille vertikale gruppe (etikett + monospace-verdi). Hvis Mip var aktivert, i tillegg en «Mip»-kapsel-tag i aksentfarge. Bakgrunn halvtransparent uskarphet, avrundet rektangel med 8 pt radius. Vises bare når musen faktisk befinner seg over et punkt. Forsvinner automatisk når musen forlater punktet.

Holdout-analyse (W23–W29)

Holdout Analysis — tom tilstand før lasting av en transforms.json
Holdout Analysis — tom tilstand før lasting av en transforms.json

Tom tilstand med empty-state og call-to-action «Open transforms.json…». Godtar NeRF-Studio- og Instant-NGP-format. Kamera- markørene vises så snart en transforms.json er lastet inn — se neste figur.

Holdout-globe med 86 kameraer, 5 folds, angular-strategi aktiv
Holdout-globe med 86 kameraer, 5 folds, angular-strategi aktiv

Header viser innlastet fil (transforms.json) og kamera-antall («86 cameras»). Venstre sidebar: strategy-picker med to alternativer — Angular (longitudinal) aktiv (sorterer kameraene etter lengdegrad-vinkelen deres rundt orbiten og fordeler dem deretter på rundgang på foldene) vs Linear (round-robin) (samme rundgangs-fordeling, men etter bilderekkefø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 bruk i eksterne evalueringsverktøy. Midtpanel: 3D-globe-projeksjon av alle 86 kameraene, fordelt over hele kulen — grønne punkter = train, røde punkter = gjeldende test-fold (Fold 1 med 18 kameraer). Høyre sidebar (Angular Correlation): per fold kamera- antallet + Mean Nearest Angle (Fold 1: 18 kameraer / 8.5°, Fold 2: 17 / 6.1°, Fold 3: 17 / 6.2°, Fold 4: 17 / 6.7°, Fold 5: 17 / 6.4°) — lavere verdi betyr at hvert testkamera har et nært treningskamera, altså at testen er lettere.

Hva det er: En 3D-visualisering av kamera-oppsettet ditt med cross-validation-logikk. Du laster inn en transforms.json (standard- formatet til Nerfstudio / Instant-NGP for kamera-posisjoner), appen leser alle kameraene, projiserer synsretningene deres på en enhetskule og viser dem som små kule-markører på en virtuell globus. Deretter deler den kameraene inn i k folds (etter valgt strategi: angular eller linear), markerer treningsandelen grønn og testandelen (holdout) rød, og beregner en angular-correlation-score per fold som forteller deg hvor langt test-folden ligger fra trenings-folden i synsvinkel-rommet.

Når du vil gjøre holdout-evaluering — altså: hvor godt generaliserer modellen din til usette synsvinkler? Standard i treningen er «every-8th view som holdout» (Mip-NeRF360- konvensjon), men det er en veldig lineær oppdeling. Hvis bildene dine for eksempel er klynget i tid (først den ene siden av objektet, så den andre), er «every-8th» ikke representativt — en tilfeldig sekvens- posisjon havner i testen, men alle naboene er i treningen, det blir for enkelt. Med «angular» stratifiserer man i stedet over synsvinkel-rommet: hver fold inneholder kameraer fra alle deler av orbiten, slik at testen faktisk tester generaliseringshull.

Angular vs Linear: - Angular (standard): sorterer alle kameraene etter lengdegrad-vinkelen deres (φ-koordinat rundt Y- aksen) og fordeler dem deretter på rundgang over de k foldene — det første kameraet i ringen kommer i Fold 1, det andre i Fold 2, og etter k kameraer starter rundgangen forfra. Fordel: hver fold inneholder kameraer fra alle retninger i orbiten, jevnt fordelt over ringen. Bra for klassiske orbit-opptak, fordi oppdelingen da ikke lenger avhenger av opptaksrekkefølgen. - Linear (round-robin): samme rundgangs-fordeling, men over bildeposisjonen i stedet for vinkelen (fold-indeks = image_index modulo k). Dette er den enkle «every-k-th»-oppdelingen. Fungerer når bilderekkefølgen IKKE har noen romlig bias (f.eks. tilfeldig sorterte droneopptak). Fungerer dårlig når bildene klynger seg i tid — da havner nabo-frames i forskjellige folds og testen blir for enkel.

I 3D-globusen ser du umiddelbart: grønne punkter (trening) og røde punkter (test). Hvis de røde punktene klynger seg i ett hjørne, er holdouten dårlig (ingen god generaliseringstest). Hvis de ligger jevnt fordelt mellom de grønne, er den god. Angular-correlation-scoren per fold (høyre sidebar, i grader) forteller i tillegg: lavere verdi = testen ligger nær treningen (hvert testkamera har et nært treningskamera, lettere test); høyere verdi = testen ligger langt fra treningen (hardere generalisering).

Du har tatt opp Truck-scenen din med 251 bilder, eksporterer via menyvalg M33 (Export SfM transforms.json) en nerfstudio-fil. Åpne holdout-vinduet (⇧⌘H), last inn JSON-en via «Open transforms.json…», se på globusen. k=5 (standard) gir deg 5 folds. Klikk på «Fold 3» — se om de røde markørene er noenlunde jevnt fordelt. Hvis ja: «Export fold-assignment.json». Den eksporterte filen er ment for eksterne evalueringsverktøy (Nerfstudio, Instant-NGP); RadianceKit selv leser den ikke inn igjen og trener videre mot sin egen holdout-standard «every-8th». Vinduet fungerer altså her som en vurdering av om kamera-settet ditt i det hele tatt tillater en rettferdig test.

W23Knappen «Open transforms.json…»

HVOR

Verktøylinje øverst til venstre.

TEKNISK

Åpner en fil-velger-dialog begrenset til JSON- filer. Etter bekreftelse laster holdout-modulen inn filen. Loaderen parser både nerfstudio-formatet (kamera-intrinsics pluss liste over frames med bildesti og transform-matrise) og instant-ngp-formatet (samme oppbygning). Per frame ekstraheres synsretningen fra transform-matrisen (z-aksen til kameraets lokalbasis) og lagres. Hvis parsingen feiler, vises en melding i venstre sidebar — men bare hvis det allerede var lastet en scene der; ved aller første forsøk forblir vinduet i tom tilstand uten synlig melding.

Den innlastede filen huskes ikke permanent: etter at du har åpnet vinduet via Hjelp → Holdout Analysis… (⇧⌘H) velger du den på nytt her. Navnet vises deretter til høyre for knappen.

W24Picker «Strategy» (angular/linear)

HVOR

Venstre sidebar, øverst.

TEKNISK

Radio-picker med to alternativer: Angular og Linear. Strategi-bytte utløser automatisk en ny beregning av foldene. Synsretningene er en liste over 3D-enhetsvektorer på kulen; angular-strategien sorterer dem etter lengdegrad-vinkelen φ og tildeler dem deretter på rundgang til foldene, linear-strategien gjør samme rundgangs-tildeling over frame-indeksen og ignorerer geometrien helt. Begge strategiene gir derfor like store folds; de skiller seg kun i hva som sorteres etter på forhånd.

W25Slideren «k Folds»

HVOR

Venstre sidebar, i midten.

TEKNISK

Slider fra 3 til 10, steglengde 1. Ved endring startes fold-beregningen automatisk på nytt, slik at fold- listen, trenings-/test-indeksene og score per fold umiddelbart beregnes på nytt. Den valgte verdien vises som monospaced-siffer-tekst til høyre for etiketten.

Tommelfingerregel: k=5 er standard (gir deg 20% test per fold, dette er vanlig for cross-validation). k=10 hvis du har veldig mye data og trenger flere folds for statistisk styrke. k=3 hvis du har lite data.

W26Picker «Test Fold»

HVOR

Venstre sidebar, under k-slideren.

TEKNISK

Meny-picker. Den lister nøyaktig så mange oppføringer som det er innstilte folds, merket «Fold 1» til «Fold N». Hvis den tidligere valgte indeksen er ≥ k (f.eks. fordi du har redusert k fra 10 til 5), tilbakestilles den automatisk til 0. Den valgte test-folden vises rød i globusen, alle andre grønne.

W27Knappen «Export fold-assignment.json»

HVOR

Venstre sidebar, nederst.

TEKNISK

Åpner en lagre-dialog med standard filnavn fold-assignment.json. Etter bekreftelse koder holdout- modulen den gjeldende oppdelingen inn i et JSON-skjema (per-frame fold- tildeling pluss en strategy-meta-blokk). Filen er ment for eksterne evalueringsverktøy — RadianceKit leser den ikke inn igjen. Knappen er nedtonet så lenge ingen kamera-fil er lastet inn. Suksess meldes som «Saved to (filename)», en skrivefeil som «Export failed: …» — begge vises på samme sted under knappen og begge i grønn skrift, så fargen skiller altså ikke mellom tilfellene.

W28SCNView (3D Camera Globe)

HVOR

Midtpanel i holdout-vinduet.

TEKNISK

SceneKit-globus-view. Scenen består av: en wireframe-kule (radius 1,0, 36 segmenter, mørkegrå), tre fargede akse-stubber (rød/grønn/blå for X/Y/Z, hver 1,2 lang), og per kamera en liten markørkule (radius 0,03) på den tilsvarende synsretnings-posisjonen på enhetskulen (litt utenfor, slik at den ikke forsvinner INNI wireframe-kulen). Markørene bygges IKKE opp på nytt ved hver fold-endring — rebuild er kun nødvendig når frame-listen endres (altså når en ny JSON lastes inn). I stedet kjøres en in-place-oppdatering av material- fargene per oppdatering: rødt for test-indekser, grønt for trening, lysegrå hvis verken eller. Slik holder slider-endringer seg raske selv ved N > 1000 kameraer.

Kamera-kontrollen er aktivert — du kan bruke musen til å rotere globusen, zoome og panorere. Belysningen sørger for at markørene ikke ser flate ut. Bakgrunnen er mørkegrå.

W29FoldCard (Tap to Select Fold)

HVOR

Høyre sidebar, «Angular Correlation»-seksjonen.

TEKNISK

Per fold en kort-view — avrundet rektangel med 6 pt radius, padding 10, vertikalt layout med to linjer (øverst «Fold N» + antall kameraer, nederst «Mean nearest angle:» + verdi i grader). Bakgrunnsfarge betinget: aktiv fold = aksentfarge halvtransparent, inaktive = nøytralt standard-material. Trykk velger folden, og globusen fargelegges om i sanntid.

«Mean nearest angle»-scoren er den gjennomsnittlige minste vinkelen per testkamera til nærmeste treningskamera (beregnet internt i radianer, vist i grader i UI-en).

BayesOpt-konsollen (W30–W39)

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

Tom tilstand med search-space-picker (RadianceKit defaults (6-dim)), trial-budsjett-slider (standard 40), random seed (42) og tre tomme paneler for konvergensdiagram, trial-logg og search-space-parameterliste. Konvergensdiagrammet og trial-tabellen fylles ut så snart et forsøk er startet — se neste figur.

BayesOpt-konsollen etter 40 trials — konvergensdiagram stiger bratt frem til trial 13, beste verdi 0.9943, trial-logg med init/bo/restart-tagger
BayesOpt-konsollen etter 40 trials — konvergensdiagram stiger bratt frem til trial 13, beste verdi 0.9943, trial-logg med init/bo/restart-tagger

Status øverst til høyre „Finished — best 0.9943 after 40 trials", ved siden av knappen „Save Best Config"; øverst til venstre knappen „Start". Venstre sidepanel: search-space-picker satt til RadianceKit defaults (6-dim), trial-budsjett 40, random seed 42. Parameterlisten viser de seks hyperparameterne som skal tunes, med sine verdiområder: 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: konvergensdiagrammet „Convergence (best value so far)" (X = trial-indeks 0–40, Y = objective value 0–1) — blå punkter = initial samples, grønne punkter = BayesOpt-acquisition, oransje punkter = restart-trials (#22 med 0.5303 og #31 med 0.4885). Den blå beste-verdi-linjen stiger bratt frem til trial ~5, deretter bare marginal forbedring frem til trial ~13, og derfra et flatt platå nær 1.0. Høyre sidepanel: trial-logg, her scrollet til trials #8–#36, med score + tag (init/bo/restart). Save-Best-Config-knappen øverst til høyre skriver bayesopt-best.json.

Hva det er: En Bayes-optimerings-konsoll for hyperparameter-søk. Bayes-opt er en automatisk metode som forsøker å finne det optimale punktet til en ukjent funksjon med færrest mulig eksperimenter — typisk: „hvilken kombinasjon av Gaussian-øvre-grense, SSIM-vekt og densify-terskel gir best PSNR for min scene-klasse?" I stedet for et gitter på 6^4 = 1296 trials prøver Bayes-opt omtrent 40–100 informerte trials og kommer dermed nær optimum.

Viktig: Den nåværende versjonen som leveres med appen kjører ikke optimeringen mot ekte trenings-kjøringer (det ville tatt dager), men mot en syntetisk demo-objektiv — et multimodalt landskap med hill-climbing-karakter pluss litt støy. Dette er med hensikt: vinduet skal vise deg hvordan optimeringen oppfører seg (konvergensforløp, sample-punkter, best-so-far) og la deg forstå search-space-definisjonene. For ekte trenings-drevne BayesOpt-kjøringer (slik de ble utført under utviklingen av de medfølgende presetene) brukes en separat evalueringsvei utenfor appen; vinduet er live-varianten for å følge med.

Tre bruksområder: 1. Du vil forstå hvordan BayesOpt jobber — da starter du et demo-forsøk og observerer konvergensdiagrammet. 2. Du planlegger en ny scene-klasse (for eksempel „akvarier" eller „antikke møbler") som de femten innebygde presetene ikke passer perfekt til. Definer et søkeområde mentalt, test det her med „Bowl demo (1-dim)" eller „densify-until + ssim-weight + grad-thresh", eksporter deretter beste konfigurasjon som JSON og bruk den som utgangspunkt for en ekte trenings-kjøring. 3. Du vil inspisere de medfølgende standard-søkeområdene (Mip-delmengde, RadianceKit Defaults) — de listes opp i parameter-panelet i venstre sidepanel.

- Konvergensdiagram (midtre kolonne): Y = beste hittil oppnådde objective-funksjon-verdi. X = trial-indeks. Stiger bratt i starten (BayesOpt prøver de initielle samplene tilfeldig, noen av dem er heldige), deretter stadig flatere fordi nær-optimum-området er uttømt. Hvis linjen forblir flat i 20+ trials, kan du stoppe kjøringen — flere trials gir ingen ytterligere gevinst. De enkelte punktene i diagrammet er de individuelle trial-verdiene (altså ikke „best so far"), farget etter fase: blå = initial sample, grønn = bayesopt acquisition, oransje = restart. - Trial-tabell (høyre kolonne): #1, #2, #3, … med henholdsvis verdi og fase-tag. Den hittil beste trial-en er merket med en gul stjerne. Fra tabellen kan du identifisere den beste trial-en og se på parameterverdiene senere ved eksport. - Search-space-inspektør (venstre sidepanel): viser for det valgte presetet alle parameternavn og deres søkeområder [lo, hi]. Hvis du står på presetet „RadianceKit defaults (6-dim)", ser du for eksempel „densifyGradThreshold [5e-7, 5e-6]" — altså log-uniform mellom disse to verdiene.

Velg presetet „RadianceKit defaults (6-dim)", trial-budsjett 40, seed 42. Klikk „Start". Observer: de første 8 trials er blå (initial samples, latin-hyperkube), de påfølgende grønne (BayesOpt-anskaffet). Konvergensdiagrammet blir bratt frem til trial ~13, deretter flater det ut. Ved trial ~30–40 stabiliserer den beste verdien seg. Klikk „Save Best Config" — en bayesopt-best.json blir lagret med presetnavnet, trial-indeks, verdi og de dekodede parameterverdiene. Denne JSON-en kan du deretter overføre manuelt til din presetdefinisjon.

W30Knapp „Start"

HVOR

Verktøylinje til venstre, i idle-/finished-tilstand.

TEKNISK

Nullstiller trial-listen, bytter til running-tilstand, genererer en ny run-ID (for stale-deteksjon ved flere start-klikk) og oppretter en fersk pause-gate. Deretter starter en bakgrunnsoppgave som kjører optimeringen som en asynkron strøm. Antall initiale samples vokser med budsjettet, men maksimalt til 8 — altså typisk 8 latin-hyperkube-samples ved et budsjett fra 28, færre ved lite budsjett. Trial-oppdateringer mottas inkrementelt og legges til i listen. Stale-run-beskyttelse: hvis et andre start-klikk underveis setter run-ID-en på nytt, blir oppdateringer fra den gamle kjøringen forkastet.

Primary-action-stil for det fremtredende knappe-utseendet.

W31Knapp „Pause"

HVOR

Verktøylinje til venstre, i running-tilstand.

TEKNISK

Setter pause-gate aktiv og bytter til paused-tilstand. Den egentlige effekten: runneren venter i en 50-ms-polling-løkke før den evaluerer neste objective-funksjon. Det betyr at et pågående trial fullføres (det er jo syntetisk og tar bare mikrosekunder), men ingen nye trials starter. Så snart resume kjører, fortsetter det der det slapp.

W32Knapp „Stop"

HVOR

Verktøylinje til venstre, i running- og paused-tilstand.

TEKNISK

Avbryter runner-oppgaven, nuller referansen, løser opp pause-gate (dersom fortsatt paused), og bytter til finished-tilstand (hvis trials finnes) eller idle-tilstand (hvis ingen). Trials som allerede er beregnet, forblir synlige i listen — stop sletter dem ikke. Destruktiv knapperolle viser knappen i rødt fordi den avbryter kjøringen.

W33Knapp „Resume"

HVOR

Verktøylinje til venstre, i paused-tilstand.

TEKNISK

Løser opp pause-gate og bytter tilbake til running-tilstand. Runner-oppgaven kjører allerede (den venter jo i polling-løkken); så snart løkken oppdager at pausen er opphevet, fortsetter den og starter neste trial.

W34Knapp „Save Best Config"

HVOR

Verktøylinje til høyre, alltid synlig (men grået ut så lenge ingen beste kjøring finnes ennå).

TEKNISK

Åpner en lagre-dialog med standard filnavn bayesopt-best.json, begrenset til JSON. Etter bekreftelse bygges en payload-dictionary: presetnavn, trial-indeks, verdi (objective-score), parametere (dictionary av dekodede parameter- navn → verdier). Dekodingen projiserer de normaliserte søkeområde-koordinatene i [0,1]^d tilbake til det opprinnelige verdiområdet (med log-uniform-/lineær-/heltallsskalaer tilsvarende). JSON-utdata er pretty-printet og med sorterte nøkler. Ved skrivefeil ignoreres dette stille (i den nåværende demo-versjonen) — ingen feil-UI, fordi dette er en demo-vei.

Knappen forblir grå så lenge ingen trial har kjørt.

W35Picker for „Search Space"-preset

HVOR

Venstre sidepanel, øverst.

TEKNISK

Meny-picker med fire preset-alternativer: - „RadianceKit defaults (6-dim)" — det komplette standard-søkeområdet med alle seks standard-hyperparametere. - „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 parametere (densifyGradThreshold log-uniform, ssimWeight lineær, densifyUntilIter heltall). - „Bowl demo (1-dim)" — pedagogisk enkelt-parameter-søkeområde for „slik fungerer BayesOpt"-demoer.

Mens en kjøring er aktiv, kan søkeområdet ikke byttes (det ville forvirre optimeringen).

W36Slider „Trial Budget"

HVOR

Venstre sidepanel, under search-space-pickeren.

TEKNISK

Slider fra 10 til 200, trinnstørrelse 5. Standard 40. Det betyr: BayesOpt får kjøre maksimalt N trials. Av disse er de første par initielle samples (latin-hyperkube), resten er ekte BayesOpt-trials. Tommelfingerregler for praksis: et søkeområde med d dimensjoner trenger omtrent ti til tjue ganger d antall trials for et godt optimum. Ved 6-dim defaults altså 60–120, ved 2-dim mip-delmengde 20–40, ved 1-dim bowl-demo 10–20.

Under kjøringen er sliderens deaktivert.

W37Slider „Random Seed"

HVOR

Venstre sidepanel, under budsjett-slideren.

TEKNISK

Slider fra 1 til 100, trinnstørrelse 1. Standard 42. Seed-en videreføres både til de initielle latin-hyperkube-samplene og til støy-komponenten i demo-objektivet. Reproduserbarhet: samme seed + samme søkeområde + samme budsjett gir en nøyaktig identisk trial-sekvens. Nyttig for „får alle kollegene dine samme kjøring når de gjenskaper demoen?". Under kjøringen deaktivert.

W38Diagram (Convergence)

HVOR

Midtre kolonne i vinduet.

TEKNISK

Swift Charts-diagram med to lag: 1. en linje for „best-value-so-far" per trial — en monotont stigende eller uendret kurve i aksentfarge. 2. et punkt per trial med den individuelle objective-verdien, farget etter fase. Symbolstørrelse 40. Tre fase-etiketter: „init" (blå), „bo" (grønn), „restart" (oransje).

En liten forklaring viser fasefargene øverst til venstre. Når trial- listen er tom (før første start), vises i stedet en tom- tilstand-visning med diagram-ikon og teksten „Press Start to begin a BayesOpt run."

W39Tabell (Trial Log)

HVOR

Høyre kolonne i vinduet.

TEKNISK

Scroll-område med lazy stablede trial- rader. Per rad en horisontal stack: trial-nummer (3-sifret monospace, til venstre), verdi (monospace, høyrejustert, 70 pt bred), fase- tag (kapsel, fylt med 25% opasitet — grå for „init", blå for „bo", oransje for „restart"; dette er bevisst andre farger enn punktfargene i diagrammet ved siden av), eventuelt en gul stjerne hvis denne trial-en er den nåværende beste. En auto-scroll-mekanisme hopper automatisk til slutten så snart en ny trial kommer til — slik at du kan følge live-forløpet nederst på skjermen uten å måtte scrolle selv.

Hovedvindu: Tapshistorikk og Gaussian-antall (I39–I41, kryssreferanse)

Tre av Inspector-visningene i hovedvinduet fortjener en egen forklaring, fordi de er konstant synlige under en pågående trening og det finnes viktige tommelfingerregler for når forløpet ser sunt ut. Visningene ligger i Inspector under seksjonen Fremdrift, i den utfoldbare gruppen Tapshistorikk (se kapittel 2 — Inspector), og supplerer holdout-analysen fra Aux-vinduet ovenfor.

Når er loss-kurven sunn? En sunn loss-kurve viser tre faser: (1) Oppvarming — de første 200–500 iterasjonene faller loss bratt fra høyt (typisk 0.15–0.25 for L1+SSIM kombinert, avhengig av scenen) til omtrent halvparten. Hvis loss IKKE faller i denne fasen, er det som regel input som er feil (ødelagte bilder, dårlige SfM-poser, for få initial-Gaussians). (2) Densification — mellom ~500 og densifyUntilIteration (klassisk 15K, MCMC opptil 20K eller 25K) faller loss videre, ofte med små hopp nedover når densify-operasjoner setter inn nye Gaussians og optimizeren utnytter dem. Gaussian-antallet stiger i denne fasen. (3) Finpuss — deretter går loss inn i en gradvis flatere hale. Typiske sluttverdier som orientering: en godt belyst objekt-scene (for eksempel Tanks-&-Temples Truck med P4 Quality) havner rundt L1 ≈ 0.023, mens vidstrakte utendørsscener som de fra Mip-NeRF 360 naturlig nok ligger høyere (0.04–0.07).

Hva betyr et platå? Et platå (loss-kurven går horisontalt over flere tusen iterasjoner) har to tolkninger: (a) modellen har konvergert, videre trening gir ikke mer — dette er det gode tilfellet. (b) modellen sitter fast (lokalt minimum, dårlig gradient-informasjon, et cap på buffer-grensen) — det dårlige tilfellet. Begge ser identiske ut i diagrammet. Skille: se på Gaussian-antallet. Hvis det også er flatt OG nær MCMC-caket (f.eks. 150K av 150K ved preset P8 Quality (MCMC)), er du på grensen — enten øk caket eller aksepter platået. Hvis Gaussian-antallet fremdeles vokser, men loss ikke faller, sitter modellen fast.

Når bør du avbryte vs. fortsette treningen? Tommelfingerregel: 10K iterasjoner uten forbedring av min-loss → avbryt, ytterligere iterasjoner er bortkastet. Før det: via Training-menyen → Continue Training → «+5,000 iterations» kan du henge på en forlengelse hvis du ser marginal forbedring (det finnes ingen tastatursnarvei for dette). Merk: ved MCMC er platået ofte reelt — caket er den naturlige grensen.

Platå i Gaussian-antallet er IKKE et «ferdig»-signal. Det betyr bare at MCMC har nådd caket, eller at Classic Densification er uttømt. Det egentlige «ferdig»-spørsmålet besvares først av PSNR/SSIM/LPIPS på et uavhengig test-sett — tallene finner du i benchmark-rapportene som du analyserer i Pareto Dashboard (W13–W22). Holdout-vinduet (W23–W29) leverer ikke disse metrikkene; det vurderer kun om kamerasettet ditt i det hele tatt tillater en rettferdig oppdeling i trenings- og testvinkler.

PSNR/Holdout er sannheten, loss er bare en proxy. Loss er en relativ metrikk: den faller etter hvert som modellen din tilpasser seg treningsvisningene. Men en lav loss betyr ikke automatisk en god modell — hvis modellen har pugget treningsbildene utenat (overfitting), ville loss vært lav, men PSNR på usette visninger (holdout) ville vært dårlig. Derfor: se alltid på holdout-metrikker for den endelige kvalitetsvurderingen, ikke bare på sluttverdien for loss.

Tommelfingerregel-boks

- User Guide og Keyboard Shortcuts er statisk hjelp — rask ved stikkordspørsmål, for dybde bruk denne foreliggende manualen. - Åpne Manage Storage så snart disken faller under 10 % ledig plass. Logger og Imports-staging er de vanlige synderne. - Pareto Dashboard er først meningsfullt etter minst tre eller fire trenings-rapporter. X-aksen = kostnad (Time / Gs), Y-aksen = kvalitet (PSNR / SSIM). Pareto-fronten viser de effektive kombinasjonene. - Bruk Holdout Analysis før du publiserer PSNR-benchmarker sammen med andre — det sikrer at test-settet ditt virkelig er representativt. Den eksporterte fold-inndelingen er for eksterne verktøy; RadianceKit trener videre mot «every-8th». - BayesOpt Console er primært et lærings- og inspeksjonsverktøy for søkeromdefinisjoner — den regner mot en demo-funksjon, ikke mot ekte treningskjøringer. - Loss-platå og Gaussian-count-platå må tolkes hver for seg. Cap-grense er ikke et «ferdig»-signal. Ekte kvalitet måles kun med Holdout-PSNR. - 10K iterasjoner uten forbedring av min-loss → stopp treningen.