Användarguide

Kapitel 4 — Aux-Fönster

Förutom huvudfönstret (3D-viewport plus Inspector) hanterar RadianceKit sex ytterligare fönster, som alla öppnas via Hjälp-menyn. Menyn har åtta poster, uppifrån och ned: User Guide (⌘?), Keyboard Shortcuts (⌘/), Open Training Logs… (⇧⌘L), Open Exports Folder…, Manage Storage…, Pareto Dashboard… (⇧⌘D), Holdout Analysis… (⇧⌘H), BayesOpt Console… (⇧⌘B). De båda „Open …"-posterna öppnar inget appfönster utan Finder; därför behandlas de inte vidare här. Tre av fönstren — Dashboard, Holdout, BayesOpt — är fristående analysverktyg: de fungerar oberoende av huvudfönstret och läser eller skriver JSON-filer på disken. Vart och ett av dessa tre fönster öppnar du via Hjälp-menyn och väljer sedan själv den fil eller mapp du vill analysera — via „Open Reports Folder…", „Open transforms.json…" respektive „Start"-knappen. Dessa tre fönster är de enda som inte är översatta: deras knappar, reglage och kolumnrubriker står på engelska i varje språkversion. De beteckningar som nämns här hittar du alltså exakt likadant på skärmen.

De tre enkla fönstren (User Guide, Keyboard Shortcuts, Manage Storage) och de två mappmenyposterna (Open Training Logs / Open Exports Folder) får en kort post per kontroll. De tre analysfönstren är utförligare dokumenterade — vart och ett med en inledning som förklarar vad du ser i fönstret, när du bör öppna det och hur du tolkar den visade bilden.

I slutet av kapitlet finns ett avsnitt med korsreferenser till Inspector i huvudfönstret: vad du på ett meningsfullt sätt kan avläsa i det levande förlust-diagrammet (Live-Loss-Chart) och i visningen av antalet gaussianer under en pågående träning.

Användarguide (W1–W4)

Användarguide-fönster med sidopanel till vänster och renderat Markdown-innehåll till höger
Användarguide-fönster med sidopanel till vänster och renderat Markdown-innehåll till höger

Vad det är: Ett inbyggt hjälpfönster som renderar den guide_<sprache>.md som medföljer appen. Språket härleds från inställningarna (fliken General → Language) eller, om där står „System", från macOS språkinställningar. Layouten är klassisk: till vänster en sidopanel med alla rubriker, till höger löptexten.

När du behöver en snabb påminnelse om en enskild punkt — alltså som ersättning för nyckelord. Den utförliga referensen är denna manual; det inbyggda hjälpfönstret är kortversionen för snabb uppslagning. Det uppdateras vid varje app-release, men hålls innehållsmässigt mer ytligt.

W1NavigationSplitView (sidopanel + detalj)

VAR

Help → User Guide (⌘?).

TEKNISKT

Tvåkolumns-layout med smal sidopanel (minst 180 pt bred) för innehållsträdet och ett rullbart detaljområde för själva Markdown-innehållet. Fönstret har en minimistorlek på 700 × 500 pt. Vid första öppningen laddar fönstret lämplig guide_<lang>.md från app-bundlen (fallback guide_en.md), parsar den till block-poster (rubriker H1–H4, stycken, listor, tabeller, avdelare) och extraherar separat rubrikstrukturen för sidopanelen. Inline-formatering (fetstil, kursiv, kodspann) renderas via den inbyggda Markdown-motorn. Språket läses från appens inställningar, med specialfallen kinesiska (zh-Hans) och brasiliansk portugisiska (pt-BR), som behålls som fullständiga locale-taggar eftersom dessa varianter skiljer sig från zh respektive pt.

W2List (rubrik-sidopanel)

VAR

Vänster kolumn i användarguide-fönstret.

TEKNISKT

Lista över alla H2- och H3-rubriker i det aktuella Markdown-dokumentet. H2-poster visas utan indrag med medium teckensnittsvikt, H3-poster med 16 pt indrag till vänster och nedtonad förgrundsstil. Alla andra nivåer — H1 liksom H4 och djupare — visas inte i sidopanelen, eftersom de annars skulle göra den svåröverskådlig. Anker-ID:n skapas från rubriktexten genom slugifiering (gemener + mellanslag till bindestreck + filtrering till bokstäver/siffror/bindestreck — samma algoritm som GitHub använder för sina Markdown-ankare, så att även externa URL:er till dokumentationen potentiellt skulle landa på samma ankare). Listan använder den native macOS-stilen.

W3Button (rubrik → ankare-hopp)

VAR

En knapp per sidopanelsrad.

TEKNISKT

Varje post i sidopanelen är en knapp som sätter det aktuella ankaret, men som visuellt ser ut som en listpost. En observatörsvariabel utlöser sedan scroll-hoppet till motsvarande ankare med en mjuk animation över 0,3 s. Efter hoppet återställs ankarvärdet, så att nästa klick på samma ankare utlöser hoppet igen (annars skulle observatören inte utlösas på nytt, eftersom värdet inte har ändrats).

W4ScrollView (detaljinnehåll)

VAR

Höger kolumn.

TEKNISKT

Rullbart, vertikalt staplande innehållsområde med lat rendering (lazy rendering), eftersom längre guider lätt kan ha över 200 Markdown-block — en icke-lat variant skulle instansiera alla samtidigt. Varje block får ett eget ID, antingen rubrikankaret (det får varje rubrik, oavsett nivå) eller en indexplatshållare. Maxbredden är 720 pt, padding 32 horisontellt / 24 vertikalt, så att långa rader behåller en lättläst layout. Tabeller renderas cellvis med horisontella staplar och avdelare; inline-kod via den inbyggda Markdown-motorn. Riktiga kodblock behandlas för närvarande som stycken — en känd begränsning i hjälpfönstret.

Tangentbordsgenvägar (W5–W6)

Keyboard Shortcuts Fenster — fünf Gruppen Navigation/Views/Capture/Editor/Training mit Hotkey-Spalte links och Beschreibung rechts
Fönstret Keyboard Shortcuts — fem grupper Navigation/Views/Capture/Editor/Training med kolumn för snabbtangenter till vänster och beskrivning till höger

Statisk referenslista i fem sektioner. Navigation: Mouse Drag (Orbit/Fly), Shift+Drag/Right-Drag (Pan), Scroll (Zoom), WASD (Fly-Through-rörelse), 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 (Hoppa till 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-läge), Click/Drag (Paint-Select), Option+Click (Deselect), X / Delete (radera markering), Cmd-Z (ångra senaste raderingen), [ / ] (mindre/större penselstorlek), Esc (avmarkera). Training: Option+Space (pausa/återuppta träning), Cmd+E (exportera scen). Mer finns inte här — Start, Cancel och förlängningarna når du via Training-menyn (kapitel 1).

Vad det är: En enkel statisk översikt över alla tangentbordsgenvägar — Navigation, Views, Capture, Editor, Training. Innehållet är fast inbyggt och laddas inte från en fil.

När du letar efter det snabbaste sättet att göra något i Viewport. WASD-Fly-Through, R för Camera-Reset, B för Background-Cycling — alla finns här.

W5ScrollView (innehållsområde)

VAR

Help → Keyboard Shortcuts (⌘/).

TEKNISKT

Ett enkelt scrollområde med en vertikal lista inuti. Padding 20 runt om, ingen Sidebar-navigationsträd (listan är kort nog). Innehållet är grupperat i fem sektioner (Navigation, Views, Capture, Editor, Training). Per tangentkombination en rad med översättningsbar text i båda kolumnerna. Vänsterkolumnen (tangentkod) är fixerad till 180 pt bredd, så att beskrivningarna till höger förblir vertikalt inriktade. Ingen interaktion förutom scrollning — att klicka på en rad utlöser inget, tangentbordsgenvägarna är riktiga tangentbordsmodifierare i menyn och i Viewport.

W6VStack (genvägssektioner)

VAR

Inuti ScrollView.

TEKNISKT

Vänsterjusterade staplade sektioner med 16 pt mellanrum. Inom de fem sektionerna finns respektive Heading + radföljd. Headings använder en sekundär subheadline-stil — medvetet inget Title-format, eftersom sektionerna inte behöver vara navigerbara. Innehållet är medvetet platt (ingen Disclosure, ingen Search, inget Filter), så att komponenten fungerar oförändrad på varje macOS-version och filen förblir läsbar.

Hantera lagring (W7–W12)

Manage Storage Fenster — Header zeigt „1,356 items · 55.1 GB total”, Tabelle mit Export-PLY-Dateien sortiert nach Datum, jeweils Icon + Dateiname + Größe + Datum
Fönstret Manage Storage — Rubriken visar „1,356 items · 55.1 GB total", tabell med PLY-exportfiler sorterade efter datum, med ikon + filnamn + storlek + datum för varje rad

Tabellvy över alla filer som RadianceKit hanterar. Rubriken räknar 1 356 objekt, 55,1 GB totalstorlek. Verktygsrad högst upp: „Show in Finder" + „Refresh". Varje rad: export-ikon, filnamn (t.ex. training_20260718T194416Z.ply), exportdatum, storlek (varierar här från 7,8 MB till 2,24 GB), lupp-ikon (Reveal) och papperskorgs-ikon (Move to Trash). Sorteringen sker först efter kategori och inom en kategori efter datum, nyaste överst. I den här skärmdumpen dominerar PLY-exporter, eftersom det framför allt är träningsresultat som har sparats i den här mappen.

Vad det är: En översikt över diskanvändning för allt som RadianceKit sparar under ~/Documents/RadianceKit/ — loggar, exporter, scener, capture-paket (från iOS-följeslagaren), imports (staging-kopior av indatabilderna). Per post visas en storlek i byte och två knappar: „visa i Finder" och „flytta till papperskorgen". Detta är INTE automatisk städning — appen tar inte bort något själv; du bestämmer för varje post. Det här fönstret är översatt: på svenska heter det „Hantera lagring", de två rubrikknapparna heter „Visa i Finder" och „Uppdatera", radknapparna heter „Visa i Finder" och „Lägg i papperskorgen". De engelska namnen i posterna nedan är beteckningarna från den engelska versionen.

När hårddisken börjar bli full. Framför allt loggarna samlas på hög (en JSONL per träningsförsök, plus _qualityMetrics.json); exporterna förstås också (PLY är 100 % rådata, en per export). Även användbart efter en krasch, när imports-staging-katalogen fortfarande har gamla kopior av indatabilderna liggandes.

W7Knappen „Show in Finder"

VAR

Rubriken uppe till höger i storage-webbläsarfönstret.

TEKNISKT

Öppnar RadianceKits datamapp i Finder — just den katalog vars innehåll det här fönstret listar. Så ser du mappstrukturen (Logs, Exports, Scenes, Captures, Imports) direkt och kan även flytta eller kopiera filerna själv med Finder. Åtgärden öppnar ett nytt Finder-fönster; listan i fönstret ändras inte av detta — det är „Refresh" (W8) till för.

W8Knappen „Refresh"

VAR

Rubriken, bredvid Finder-knappen.

TEKNISKT

Utlöser en bakgrundsskanning som körs på en användarinitierad asynkron uppgift, så att skanningen av stora katalogträd inte blockerar gränssnittet. Själva genomgången går igenom varje känd undermapp (Logs, Exports, Scenes, Captures, Imports) och skapar en lagringspost för varje direkt barn. För varje post beräknas den rekursiva storleken — helst den faktiska diskanvändningen (inklusive delning av APFS-hårda länkar) med reservlösning till den logiska filstorleken.

W9Listan (lagringsposter)

VAR

Huvudinnehåll under rubriken.

TEKNISKT

Lista där varje rad har följande layout: kategori- specifik SF Symbol-ikon (dokument för loggar, uppåtpil för exporter, tärning för scener, iPhone för capture-paket, bricka för imports), namn + undertext (typ-etikett + formaterat ändringsdatum), byte-räknare till höger (högerjusterad, monospace), Reveal-knapp (luppsymbol), papperskorgs-knapp (soptunna). Sortering: primärt efter typ (scener först, sedan exporter, loggar, captures, imports, övrigt), sekundärt efter ändringsdatum fallande (nyaste överst). Om skanningen fortfarande pågår visas i stället ett „Scanning…"-förloppsindikator. Om inget hittades, visas ett tomt tillstånd med bricksymbol.

W10Radknappen „Reveal in Finder"

VAR

Per rad, luppsymbol till höger.

TEKNISKT

Öppnar Finder och markerar det specifika objektet (fil eller mapp). Skillnad mot W7: W7 öppnar rotkatalogen; W10 markerar exakt den här enskilda posten. Praktiskt arbetsflöde: identifiera en stor post, klicka på luppen, kopiera den sedan till exempelvis en extern volym.

W11Radknappen „Move to Trash"

VAR

Per rad, papperskorgssymbol till höger om luppen.

TEKNISKT

Utlöser bekräftelsedialogrutan (W12). Först efter bekräftelse körs macOS standardåtgärden „flytta till papperskorgen" (alltså reversibelt, ingen direkt radering). Efter lyckad flytt till papperskorgen tas posten bort från listan och den totala byte-räknaren uppdateras. Vid fel visas en modal felmeddelanderuta.

W12ConfirmationDialog (bekräftelse av radering)

VAR

Utlöses av W11, visas som ett macOS-blad (sheet).

TEKNISKT

Standardbekräftelsedialog med dynamisk titel „Delete <name>?" och en meddelanderad som uttryckligen påpekar att posten hamnar i papperskorgen och kan återställas därifrån (tills papperskorgen töms). Två knappar: „Move to Trash" som en destruktiv åtgärd (visas i rött) och „Cancel" med automatisk Esc-bindning. Dialogrutan är icke-modal i den bemärkelsen att den bara blockerar det här fönstret, inte hela appen — det är macOS-standard för reversibla raderingar.

Pareto-instrumentpanel (W13–W22)

Pareto Dashboard — leerer Zustand vor Report-Import
Pareto-instrumentpanel — tomt tillstånd före rapportimport

Tomt tillstånd (efter första öppning) — tomt läge med uppmaningsknapp „Open Reports Folder…". Datapunkterna dyker upp så snart träningsrapporter har laddats, se nästa bild.

Pareto Dashboard mit 384 geladenen Benchmark-Reports — Gaussians vs PSNR mit Pareto-Front, Scene/Strategy/Mip-Filter
Pareto-instrumentpanel med 384 inlästa benchmark-rapporter — Gaussians vs PSNR med Pareto-front, Scene/Strategy/Mip-filter

Övre verktygsraden visar till höger „384 reports of 384" (alla rapporter i den valda mappen har lästs in korrekt); till vänster om knappen „Open Reports Folder…" står namnet på den inlästa mappen, här „Benchmarks". Axlar: X-axel-väljaren är satt till Gaussians, Y-axel-väljaren till PSNR (dB), bredvid syns den aktiva bocken „Show Pareto Front". Förklaring uppe till vänster: blått = mcmc, grönt = classic, orange = hybrid, plus symbolformen för Mip-Splatting På/Av. Den streckade Pareto-front-linjen följer de bäst uppnådda PSNR-värdena och planar ut runt PSNR≈30 dB från ca 300K Gaussians; punktmolnet sträcker sig upp till över 1,5 miljoner Gaussians. Filterchips till höger: över 30 scener (bl.a. bicycle, bonsai, family, flowers, garden, kitchen, stump, truck samt de numrerade 360-, drone- och photo-testserierna), 3 strategier (classic, hybrid, mcmc), 3 Mip-Splatting-alternativ (All, On, Off) med „All" aktivt. För tillfället är inget scen- eller strategifilter satt, därav det täta punktklustret.

Vad det är: Ett verktyg för jämförelse av flera körningar. Du har i det förflutna tränat flera scener eller samma scen med olika presets — från en benchmark-utvärdering skapas per träningskörning en JSON-rapportfil som bland annat innehåller Final-PSNR, SSIM, LPIPS, antal Gaussians och total körtid (wallclock). Någon knapp för denna utvärdering finns inte i gränssnittet; instrumentpanelen utvärderar det som redan finns som rapport i den valda mappen. Den läser in en hel mapp med sådana rapporter samtidigt och ritar dem som en 2D-spridningsdiagram med valbara axlar. Dessutom ritas Pareto-fronten (mängden icke-dominerade punkter) in som en streckad linje.

Efter att du har skapat minst tre eller fyra träningsrapporter. Med färre punkter är fronlinjen inte meningsfull. Typiskt användningsfall: du har försökt rekonstruera en utomhusscen och har i tur och ordning kört P3 Balanced (Classic), P4 Quality (Classic), P8 Quality (MCMC) och P9 Drone / Aerial — nu vill du veta vilken konfiguration som ger bäst PSNR per sekund träningstid eller vilken som kräver minst Gaussians för given PSNR.

Båda axlarna kan väljas fritt (X-axel: Gaussians, träningstid, PSNR, SSIM, LPIPS, …; Y-axel likaså). Pareto-front- beräkningen vet för varje mätvärde om „mindre = bättre" (LPIPS, Gaussians, Training Time, BRISQUE) eller „större = bättre" (PSNR, SSIM, FSIM, MS-SSIM) — linjen går alltså beroende på axelvalet från nedre vänster till övre höger eller från övre vänster till nedre höger, alltid längs den bäst uppnådda kombinationen. En punkt är Pareto-optimal om INGEN annan punkt är minst lika bra i BÅDA dimensionerna (det vill säga ingen annan dominerar den). Pareto-optimala punkter ligger på linjen, andra punkter till höger/ovanför (beroende på axelorientering) den. Punkter PÅ linjen är de riktiga kandidaterna för „bästa preset"; punkter LÅNGT från linjen är bortkastad träningstid.

Du kan begränsa urvalet till en viss scen (om du t.ex. bara vill jämföra utomhuskörningar), till en viss strategi (classic, hybrid eller mcmc), eller till Mip-Splatting på/av (Mip-Splatting är en valfri inställning för avancerade användare, därför lönar sig den direkta jämförelsen).

Du har tre rapporter för scenen „truck" i en rapportmapp: 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ätt X-axeln till Training Time, Y-axeln till PSNR. Run B ligger uppe till höger, Run C ännu längre uppe till höger, Run A nere till vänster. Pareto-fronten förbinder A och C — båda icke-dominerade. Run B är „lost" (C är bättre både i Time OCH PSNR). Slutsats: för „truck" lönar sig inte MCMC-vägen; antingen snabbt+okej (A) eller långt+mycket bra (C). Spara konfigurationen från C som ett eget preset (Inspector → I1 Save Preset).

Nästa åtgärd: Spara bästa konfigurationen som ett preset. Konkret: titta på Pareto-punkterna (hover visar PSNR/SSIM/LPIPS/Gs/Time som verktygstips), avgör vilken som passar dig bäst utifrån avvägningen mellan tid och kvalitet, öppna motsvarande rapport (filnamnet innehåller körningens tidsstämpel), kopiera dess träningskonfiguration till en ny körning eller spara den efter nästa träningssession som ett preset via Inspector.

W13Knappen „Open Reports Folder…"

VAR

Verktygsraden uppe till vänster.

TEKNISKT

Öppnar en mappväljardialog med uppmaningen „Select a folder containing benchmark .json reports". Efter bekräftelse körs en bakgrundsuppgift som läser in alla .json-filer i mappen sekventiellt. Felaktiga rapporter (trasig JSON, fel schema) samlas ihop och visas längst ner i sidopanelen som „N file failed to parse" — ingen krasch. Om ett andra klick sker medan en första inläsning fortfarande pågår avbryts den föregående uppgiften, så att inte två resultat skriver till tillståndet samtidigt.

Den valda mappen sparas inte permanent: efter att du öppnat fönstret via Hjälp → Pareto Dashboard… (⇧⌘D) väljer du den på nytt här. Namnet på den inlästa mappen visas därefter till höger om knappen.

W14Väljaren „X-Axis"

VAR

Ovanför diagrammet, till vänster.

TEKNISKT

Menyväljare med alla tillgängliga mätaxlar i instrumentpanelsmodulen (PSNR, SSIM, LPIPS, antal Gaussians, träningstid och så vidare). Standard är antal Gaussians. Vid byte återställs den punkt som var hovrad, eftersom en tidigare markerad position i det gamla axelkoordinatsystemet inte längre är meningsfull efter axelbytet. Väljaren är begränsad till innehållets bredd, så att den inte sträcker sig över hela bredden.

W15Väljaren „Y-Axis"

VAR

Ovanför diagrammet, bredvid X-Axis.

TEKNISKT

Identisk med W14, förutom att standardvärdet är PSNR. Axelvalet sparas oberoende, så användaren kan även välja meningslösa kombinationer (X=PSNR, Y=PSNR — skulle placera alla punkter på en diagonal). Sådana kombinationer förhindras dock inte; medvetet val, eftersom en jämförelse „SSIM vs PSNR" absolut kan vara intressant för att se hur konsekventa mätvärdena är mot varandra.

W16Knappen „Show Pareto Front"

VAR

Till höger om axelväljarna.

TEKNISKT

En kryssruta, förvald som ikryssad. Pareto-fronten läggs ovanpå punktmolnet som en linje — streckad (streckmönster 4–4), grå halvtransparent, linjebredd 1,5 pt. Obs: I den levererade versionen påverkar bocken inte diagrammet — frontlinjen ritas alltid, oavsett om rutan är ikryssad eller inte. Fronten beräknas om vid varje axelbyte och efter varje filterändring.

W17Chips för „Scene"-filter

VAR

Höger sidopanel i instrumentpanelsfönstret.

TEKNISKT

Filterchips för varje scen som förekommer i de inlästa rapporterna. Egen flödeslayout som automatiskt packar om chips på flera rader så snart bredden tar slut. Aktiva chips får accentbakgrunden, inaktiva en neutral standardbakgrund. Flerval är möjligt (mängdsemantik); om inget chip är valt gäller alla scener som „släppta igenom" — det vill säga logiken är „tom markering = allt", inte „tom markering = inget".

W18Chips för „Strategy"-filter

VAR

Under scenfiltret i sidopanelen.

TEKNISKT

Precis som W17, men för träningsstrategier — typiskt de tre värdena „classic", „hybrid" och „mcmc", härledda från strategi-fältet i benchmark-rapportens JSON. Praktiskt när du har blandat rapporter från flera strategier och bara vill se en typ (t.ex. „visa bara MCMC-körningar, för jag har redan uteslutit Classic").

W19Chips för „Mip-Splatting"-filter

VAR

Under strategifiltret i sidopanelen.

TEKNISKT

Filter med tre värden (istället för mängd som i W17/W18): „All" / „On" / „Off". Bakgrund: Mip-Splatting är en multiskalig utökning som hjälper eller inte beroende på scen — därför förblir det en medvetet inkopplingsbar inställning och inte standard. Om du gör Mip-på/av-jämförelser vill du ofta kunna skilja mycket tydligt. Därför det dedikerade ternära filtret med tillstånden „släpp igenom allt", „bara Mip på", „bara Mip av". Sidopanelens sektion visas så snart den inlästa mängden överhuvudtaget innehåller rapporter — alltså praktiskt taget alltid; den försvinner bara om ingenting alls är inläst.

W20ChipButton (filterväxlare, all/on/off)

VAR

Hjälpkomponent, används i W17/W18/W19.

TEKNISKT

Minimalistisk knappomslutning. Innehåll: etikett- text med bildtextens teckengrad och padding 10 horisontellt / 5 vertikalt. Bakgrund villkorlig: om aktiv → appens accentfärg med vit text; annars neutral standardbakgrund med den vanliga textfärgen (anpassar sig efter ljust och mörkt utseende). Formen är en kapsel (piller-liknande). Enkel (plain) knappstil, så att kapselns material inte täcks av en systemram.

W21Diagram (Pareto-spridningsdiagram)

VAR

Instrumentpanelens mittyta.

TEKNISKT

Swift Charts-diagram med två lager: 1. en punkt per rapport — position från de valda X- och Y-mätvärdena, färg efter strategi, symbol efter Mip-status. Symbolstorlek normalt 80, markerad 200 (om ID:t motsvarar den för tillfället hovrade rapporten). 2. en linje för Pareto-fronten (se W16 — den ritas alltid). Dessutom visar den för tillfället hovrade punkten scennamnet som en liten kapsel ovanför sig.

Diagramöverlägg: en transparent rektangel registrerar musrörelse; per bildruta beräknas den euklidiskt närmaste punktpositionen i diagramramen och den hovrade rapporten uppdateras om avståndet understiger 24 px (annars återställs den). På så sätt får du verktygstipset utan att klicka — att hovra räcker.

W22Verktygstips (hover-detalj)

VAR

Under diagrammet, visas vid hovring.

TEKNISKT

Horisontell stapel: scennamn (rubrik), strategi-tagg (bildtext), avdelare, sedan PSNR/SSIM/LPIPS/Gs/Time-mätvärden i varsin liten vertikal grupp (etikett + värde med fast breddsteckensnitt). Om Mip var aktiverat, dessutom en „Mip"-kapseltagg i accentfärg. Bakgrund halvtransparent oskärpa, avrundad rektangel med 8 pt radie. Visas bara när musen faktiskt befinner sig över en punkt. Försvinner automatiskt när musen lämnar punkten.

Holdout Analysis (W23–W29)

Holdout Analysis — tomt tillstånd innan en transforms.json laddats
Holdout Analysis — tomt tillstånd innan en transforms.json laddats

Tomt tillstånd med tomvy och uppmaningen „Open transforms.json…". Accepterar NeRF-Studio- och Instant-NGP-format. Kamera- markörerna dyker upp så snart en transforms.json har laddats — se nästa bild.

Holdout-glob med 86 kameror, 5 folds, Angular-strategin aktiv
Holdout-glob med 86 kameror, 5 folds, Angular-strategin aktiv

Rubriken visar den laddade filen (transforms.json) och kameraantalet („86 cameras"). Vänster sidopanel: strategival med två alternativ — Angular (longitudinal) aktivt (sorterar kamerorna efter deras longitudvinkel runt banan och fördelar dem sedan varvvis på folds) mot Linear (round-robin) (samma varvvisa fördelning, men efter bildordning istället för betraktningsvinkel). k-Folds-reglaget står på 5, testfold-väljaren på Fold 1. Exportknappen skapar en fold-assignment.json för vidare användning i externa utvärderingsverktyg. Mittenpanel: 3D-glob-projektion av alla 86 kameror, utspridda över hela klotet — gröna punkter = träning, röda punkter = aktuellt testfold (Fold 1 med 18 kameror). Höger sidopanel (Angular Correlation): per fold antal kameror + Mean Nearest Angle (Fold 1: 18 kameror / 8,5°, Fold 2: 17 / 6,1°, Fold 3: 17 / 6,2°, Fold 4: 17 / 6,7°, Fold 5: 17 / 6,4°) — ett lägre värde betyder att varje testkamera har en nära träningskamera, alltså blir testet lättare.

Vad det är: En 3D-visualiserare för din kameraplacering med korsvalideringslogik. Du laddar en transforms.json (standardformatet för Nerfstudio / Instant-NGP för kamerapositioner), appen läser in alla kameror, projicerar deras blickriktningar på en enhetssfär och visar dem som små klotmarkörer på en virtuell glob. Sedan delar den upp kamerorna i k folds (enligt vald strategi: angular eller linear), markerar träningsdelen grön och testdelen (holdout) röd, och beräknar per fold ett angular-correlation-värde som visar hur långt testfoldet ligger från träningsfoldet i betraktningsvinkel-rummet.

När du vill göra holdout-utvärdering — alltså: hur väl generaliserar din modell till osedda betraktningsvinklar? Standard under träningen är „var 8:e vy som holdout" (Mip-NeRF360-konventionen), men det är en väldigt linjär uppdelning. Om dina bilder till exempel är tidsmässigt klustrade (först en sida av objektet, sedan den andra), då är „var 8:e" inte representativt — en slumpmässig sekvensposition hamnar i testet, men alla dess grannar är i träningen, det blir för lätt. Med „angular" stratifierar man istället över betraktningsvinkel-rummet: varje fold innehåller kameror från alla delar av banan, så att testet verkligen prövar generaliseringsluckor.

Angular jämfört med Linear: - Angular (standard): sorterar alla kameror efter deras longitudvinkel (φ-koordinat runt Y-axeln) och fördelar dem sedan varvvis på k folds — den första kameran i ringen hamnar i Fold 1, den andra i Fold 2, och efter k kameror börjar varvet om från början. Fördel: varje fold innehåller kameror från alla riktningar i banan, jämnt fördelade över ringen. Bra för klassiska bantagningar, eftersom uppdelningen då inte längre beror på tagningsordningen. - Linear (round-robin): samma varvvisa fördelning, men baserad på bildpositionen istället för vinkeln (fold-index = image_index modulo k). Det är den enkla „var k:e"-uppdelningen. Fungerar bra om bildordningen INTE har någon spatial bias (t.ex. slumpmässigt sorterade drönarbilder). Fungerar dåligt om bilderna klustrar tidsmässigt — då hamnar angränsande frames i olika folds och testet blir för lätt.

I 3D-globen ser du direkt: gröna punkter (träning) och röda punkter (test). Om de röda punkterna klustrar i ett hörn är holdouten dålig (inget bra generaliseringstest). Om de ligger jämnt bland de gröna är den bra. Angular-Correlation-värdet per fold (höger sidopanel, i grader) visar dessutom: lägre värde = testet ligger nära träningen (varje testkamera har en nära träningskamera, lättare test); högre värde = testet ligger långt från träningen (hårdare generalisering).

Du har filmat din Truck-scen med 251 bilder, exporterar via menyalternativ M33 (Export SfM transforms.json) en nerfstudio-fil. Öppna Holdout-fönstret (⇧⌘H), ladda JSON-filen via „Open transforms.json…", titta på globen. k=5 (standard) ger dig 5 folds. Klicka på „Fold 3" — se om de röda markörerna är någorlunda jämnt fördelade. Om ja: „Export fold-assignment.json". Den exporterade filen är avsedd för externa utvärderingsverktyg (Nerfstudio, Instant-NGP); RadianceKit läser den inte in igen utan tränar fortfarande mot sin egen holdout-standard „var 8:e". Fönstret används alltså här för att bedöma om din kamerauppsättning överhuvudtaget möjliggör ett rättvist test.

W23Knappen „Open transforms.json…"

VAR

Verktygsfältet uppe till vänster.

TEKNISKT

Öppnar en filväljardialog som är begränsad till JSON-filer. Efter bekräftelse laddar Holdout-modulen filen. Läsaren tolkar både nerfstudio-formatet (kamera-intrinsics plus en lista med frames med bildsökväg och transformmatris) och instant-ngp-formatet (samma uppbyggnad). Per frame extraheras blickriktningen från transformmatrisen (kamerans lokala z-axel) och sparas. Om tolkningen misslyckas visas ett meddelande i den vänstra sidopanelen — men bara om en scen redan var laddad där; vid allra första försöket förblir fönstret i sitt tomma tillstånd utan synligt meddelande.

Den laddade filen sparas inte permanent: efter att du öppnat fönstret via Hjälp → Holdout Analysis… (⇧⌘H) väljer du den igen här. Dess namn visas därefter till höger om knappen.

W24Väljaren „Strategy" (angular/linear)

VAR

Vänster sidopanel, upptill.

TEKNISKT

Radioväljare med två alternativ: Angular och Linear. Strategibyte utlöser automatiskt en omberäkning av foldsen. Blickriktningarna är en lista med 3D-enhetsvektorer på sfären; Angular-strategin sorterar dem efter deras longitudvinkel φ och tilldelar dem sedan varvvis till foldsen, Linear-strategin gör samma varvvisa tilldelning utifrån frame-index och ignorerar geometrin helt. Båda strategierna skapar därför lika stora folds; de skiljer sig bara i vad de sorterar efter innan tilldelningen.

W25Reglaget „k Folds"

VAR

Vänster sidopanel, i mitten.

TEKNISKT

Reglage från 3 till 10, steglängd 1. Vid ändring utlöses fold-beräkningen automatiskt på nytt, så att fold-listan, tränings-/testindexen och per-fold-värdet omedelbart beräknas om. Det valda värdet visas som text med monospacerade siffror till höger om etiketten.

Tumregel: k=5 är standard (ger dig 20 % test per fold, vilket är vanligt för korsvalidering). k=10 om du har mycket data och behöver fler folds för statistisk styrka. k=3 om du har lite data.

W26Väljaren „Test Fold"

VAR

Vänster sidopanel, under k-reglaget.

TEKNISKT

Menyväljare. Den listar exakt så många poster som antalet inställda folds, märkta „Fold 1" till „Fold N". Om det tidigare valda indexet är ≥ k (t.ex. för att du minskat k från 10 till 5) återställs det automatiskt till 0. Det valda testfoldet visas rött i globen, alla andra gröna.

W27Knappen „Export fold-assignment.json"

VAR

Vänster sidopanel, nedtill.

TEKNISKT

Öppnar en spara-dialog med standard- filnamnet fold-assignment.json. Efter bekräftelse kodar Holdout- modulen den aktuella uppdelningen i ett JSON-schema (fold- tilldelning per frame plus en strategi-metablock). Filen är avsedd för externa utvärderingsverktyg — RadianceKit läser inte in den igen. Knappen är gråtonad så länge ingen kamerafil är laddad. Framgång visas som „Saved to (filnamn)", ett skrivfel som „Export failed: …" — båda visas på samma plats under knappen och båda i grön text, så färgen skiljer alltså inte fallen åt.

W28SCNView (3D Camera Globe)

VAR

Mittenpanelen i Holdout-fönstret.

TEKNISKT

SceneKit-glob-vy. Scenen består av: en trådnätsfär (radie 1.0, 36 segment, mörkgrå), tre färgade axelstumpar (röd/grön/blå för X/Y/Z, vardera 1.2 lång), och per kamera ett litet markörklot (radie 0.03) på motsvarande blickriktningsposition på enhetssfären (något utanför, så att den inte försvinner IN i trådnätsfären). Markörerna byggs INTE om vid varje foldändring — ombyggnad krävs bara om frame-listan ändras (alltså om en ny JSON laddas). Istället körs en in-place-uppdatering av materialfärgerna vid varje uppdatering: röd för testindex, grön för träning, ljusgrå om varken det ena eller det andra. På så sätt förblir reglage-interaktioner snabba även med N > 1000 kameror.

Kamerakontrollen är aktiverad — du kan med musen rotera globen, zooma, panorera. Belysning ser till att markörerna inte ser platta ut. Bakgrunden är mörkgrå.

W29FoldCard (Tap to Select Fold)

VAR

Höger sidopanel, sektionen „Angular Correlation".

TEKNISKT

Per fold en kortvy — avrundad rektangel med 6 pt radie, padding 10, vertikal layout med två rader (överst „Fold N" + antal kameror, nederst „Mean nearest angle:" + värde i grader). Bakgrundsfärgen är villkorlig: aktivt fold = accentfärg halvtransparent, inaktiva = neutralt standardmaterial. Tryck väljer foldet, och globen färgas om direkt.

„Mean nearest angle"-värdet är den genomsnittliga minsta vinkeln per testkamera till närmaste träningskamera (beräknas internt i radianer, visas i grader i användargränssnittet).

BayesOpt-konsolen (W30–W39)

BayesOpt-konsolen — tomt tillstånd före trial-start
BayesOpt-konsolen — tomt tillstånd före trial-start

Tomt tillstånd med search-space-väljare (RadianceKit defaults (6-dim)), trial-budget-slider (standard 40), random seed (42) och tre tomma paneler för convergence-chart, trial log och search-space-parameterlista. Convergence-chart och trial-tabellen fylls i så snart en körning har startats — se nästa bild.

BayesOpt-konsolen efter 40 trials — Convergence-chart stiger brant fram till Trial 13, Best Value 0.9943, Trial Log med init/bo/restart-taggar
BayesOpt-konsolen efter 40 trials — Convergence-chart stiger brant fram till Trial 13, Best Value 0.9943, Trial Log med init/bo/restart-taggar

Status uppe till höger „Finished — best 0.9943 after 40 trials", bredvid knappen „Save Best Config"; uppe till vänster knappen „Start". Vänster sidofält: search-space-väljare på RadianceKit defaults (6-dim), Trial Budget 40, Random Seed 42. Parameterlistan visar de sex hyperparametrar som ska tunas med deras värdeintervall: 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]. Mitten: convergence-chart „Convergence (best value so far)" (X = trial-index 0–40, Y = objective value 0–1) — blå punkter = initial samples, gröna punkter = BayesOpt-acquisition, orange punkter = restart-trials (#22 med 0.5303 och #31 med 0.4885). Den blå bästa-värde-linjen stiger brant fram till trial ~5, sedan bara marginell förbättring fram till trial ~13, därefter en platt platå nära 1.0. Höger sidofält: trial log, här scrollad till trials #8–#36, med score + tagg (init/bo/restart). Save-Best-Config-knappen uppe till höger skriver bayesopt-best.json.

Vad det är: En Bayes-optimeringskonsol för hyperparametersökning. Bayes-opt är en automatisk metod som försöker hitta den optimala punkten för en okänd funktion med så få experiment som möjligt — typiskt: „vilken kombination av gaussisk övre gräns, SSIM-vikt och densify-tröskel ger bäst PSNR för min scenkategori?" Istället för ett rutnät på 6^4 = 1296 trials provar Bayes-opt cirka 40–100 informerade trials och kommer därmed nära optimumet.

Viktigt: Den aktuella versionen som levereras i appen kör inte optimeringen mot verkliga träningskörningar (det skulle ta dagar), utan mot ett syntetiskt demo-mål — ett multimodalt landskap med hill-climbing-karaktär plus lätt brus. Detta är avsiktligt: fönstret ska visa dig hur optimeraren beter sig (konvergensförlopp, sample-punkter, best-so-far) och låta dig förstå search-space-definitionerna. För riktiga träningsdrivna BayesOpt-körningar (som de som gjordes vid utvecklingen av de medföljande presetsen) används en separat utvärderingsväg utanför appen; fönstret är live-varianten för att titta på.

Tre användningsfall: 1. Du vill förstå hur BayesOpt arbetar — starta då en demo-körning och observera convergence-chartet. 2. Du planerar en ny scenkategori (till exempel „Akvarier" eller „Antika möbler"), som de femton inbyggda presetsen inte passar perfekt för. Definiera mentalt ett sökrum, testa det här med „Bowl demo (1-dim)" eller „densify-until + ssim-weight + grad-thresh", exportera sedan bästa konfiguration som JSON och använd den som startpunkt för en riktig träningskörning. 3. Du vill inspektera de medföljande standardsökrummen (Mip-delmängd, RadianceKit Defaults) — de listas i parameterpanelen i vänster sidofält.

- Convergence-chart (mittenkolumn): Y = bästa hittills uppnådda objective-funktionsvärde. X = trial-index. Inledningsvis brant stigande (BayesOpt provar initial samples slumpmässigt, några av dem lyckas), sedan alltmer platt, eftersom regionen nära optimumet är uttömd. Om linjen förblir platt i 20+ trials kan du stoppa körningen — fler trials ger ingenting mer. De enskilda punkterna i chartet är de individuella trial-värdena (alltså inte „best so far"), färgade efter fas: blå = initial sample, grön = bayesopt acquisition, orange = restart. - Trial-tabell (höger kolumn): #1, #2, #3, … med respektive värde och fastagg. Den hittills bästa trialen är markerad med en gul stjärna. Från tabellen kan du identifiera bästa trialen och titta på dess parametervärden senare vid export. - Search-space-inspektör (vänster sidofält): visar för valt preset alla parameternamn och deras sökintervall [lo, hi]. Om du står vid presetet „RadianceKit defaults (6-dim)" ser du t.ex. „densifyGradThreshold [5e-7, 5e-6]" — alltså log-uniform mellan dessa två värden.

Välj preset „RadianceKit defaults (6-dim)", Trial Budget 40, Seed 42. Klicka „Start". Observera: de första 8 trials är blå (initial samples, Latin-hypercube), de följande gröna (BayesOpt-förvärvade). Convergence-chartet blir brant fram till trial ~13, sedan planar det ut. Vid trial ~30–40 stabiliseras bästa värdet. Klicka „Save Best Config" — en bayesopt-best.json sparas med presetnamnet, trial-index, värde och de avkodade parametervärdena. Denna JSON kan du sedan manuellt föra över till din presetdefinition.

W30Knappen „Start"

VAR

Verktygsfältet till vänster, i Idle/Finished-tillstånd.

TEKNISKT

Återställer trial-listan, byter till Running-tillstånd, genererar ett nytt run-ID (för stale-detektering vid flera start-klick) och skapar en ny pause-gate. Sedan startar en bakgrundstask som kör optimeraren som en asynkron ström. Antalet initial samples växer med budgeten, men högst upp till 8 — alltså typiskt 8 Latin-hypercube-samples vid en budget på 28 eller mer, färre vid mindre budget. Trial-uppdateringar tas emot inkrementellt och läggs till i listan. Stale-run-skydd: om ett andra start-klick under tiden sätter ett nytt run-ID, kasseras uppdateringar från den gamla körningen.

Primary-action-stil för den framträdande knapp-looken.

W31Knappen „Pause"

VAR

Verktygsfältet till vänster, i Running-tillstånd.

TEKNISKT

Aktiverar pause-gaten och byter till Paused-tillstånd. Den faktiska effekten: runnern väntar i en 50-ms-polling-loop innan den utvärderar nästa objective-funktion. Det betyder att en pågående trial körs klart (den är ju syntetisk och tar bara mikrosekunder), men ingen ytterligare trial startas. Så snart resume körs, fortsätter det där det avslutades.

W32Knappen „Stop"

VAR

Verktygsfältet till vänster, i Running- och Paused-tillstånd.

TEKNISKT

Avbryter runner-tasken, nollställer referensen, löser upp pause-gaten (om den fortfarande var pausad), och byter till Finished-tillstånd (om trials finns) eller Idle-tillstånd (om inga finns). De redan beräknade trials förblir synliga i listan — Stop raderar dem inte. Destruktiv knapp-roll visar knappen i rött, eftersom den avbryter körningen.

W33Knappen „Resume"

VAR

Verktygsfältet till vänster, i Paused-tillstånd.

TEKNISKT

Löser upp pause-gaten och byter tillbaka till Running-tillstånd. Runner-tasken körs redan (den väntar ju i polling-loopen); så snart loopen märker att pausen är upphävd, fortsätter den och startar nästa trial.

W34Knappen „Save Best Config"

VAR

Verktygsfältet till höger, alltid synlig (men gråad ut så länge ingen bästa körning finns ännu).

TEKNISKT

Öppnar en spara-dialog med standard- filnamnet bayesopt-best.json, begränsad till JSON. Efter bekräftelse byggs en payload-dictionary: presetnamn, trial-index, värde (objective-score), parametrar (dictionary av avkodade parameter- namn → värden). Avkodningen projicerar de normaliserade search-space-koordinaterna i [0,1]^d tillbaka till det ursprungliga värdeintervallet (med log-uniform/linjär/heltalsskalor beroende på fall). JSON-output är pretty-printad och med sorterade nycklar. Vid skrivfel ignoreras det (i den aktuella demoversionen) tyst — ingen felvisning, eftersom det är en demo-väg.

Knappen förblir grå så länge ingen trial har körts.

W35Väljaren „Search Space"-preset

VAR

Vänster sidofält, överst.

TEKNISKT

Menyväljare med fyra presetalternativ: - „RadianceKit defaults (6-dim)" — det fullständiga standardsökrummet med alla sex standardhyperparametrarna. - „Mip subset (2-dim)" — endast mipSmoothing3DScale [0.05, 0.5] log-uniform och mipFilter2DVariance [0.1, 0.6] linjär. Användbart om du vill tuna mip-splatting för en scenkategori. - „densify-until + ssim-weight + grad-thresh" — tre densify-relevanta parametrar (densifyGradThreshold log-uniform, ssimWeight linjär, densifyUntilIter heltal). - „Bowl demo (1-dim)" — pedagogiskt sökrum med en enda parameter för „så här fungerar BayesOpt"-demos.

Medan en körning är aktiv kan sökrummet inte bytas (det skulle förvirra optimeraren).

W36Slidern „Trial Budget"

VAR

Vänster sidofält, under search-space-väljaren.

TEKNISKT

Slider från 10 till 200, stegstorlek 5. Standard 40. Det betyder: BayesOpt får göra högst N trials. Av dessa är de första få initiala samples (Latin-hypercube), resten är riktiga BayesOpt-trials. Tumregler för praktiskt bruk: ett sökrum med d dimensioner behöver ungefär tio till tjugo gånger d antal trials för ett bra optimum. Vid 6-dim defaults alltså 60–120, vid 2-dim Mip-delmängd 20–40, vid 1-dim Bowl-demo 10–20.

Under körningen är slidern inaktiverad.

W37Slidern „Random Seed"

VAR

Vänster sidofält, under budget-slidern.

TEKNISKT

Slider från 1 till 100, stegstorlek 1. Standard 42. Seedet skickas vidare både till de initiala Latin-hypercube-samplen och till brus-komponenten i demo-objectivet. Reproducerbarhet: samma seed + samma sökrum + samma budget ger exakt samma trial-sekvens. Användbart för „får alla dina kollegor samma körning när de återskapar demon?". Under körningen inaktiverad.

W38Chart (Convergence)

VAR

Mittenkolumnen i fönstret.

TEKNISKT

Swift Charts-diagram med två lager: 1. en linje för „best-value-so-far" per trial — en monotont stigande eller oförändrad kurva i accentfärg. 2. en punkt per trial med det individuella objective-värdet, färgad efter fas. Symbolstorlek 40. Tre faslabels: „init" (blå), „bo" (grön), „restart" (orange).

En liten förklaring visar fasfärgerna uppe till vänster. När trial- listan är tom (före första starten), visas istället en tomt- tillstånd-indikator med chart-ikon och texten „Press Start to begin a BayesOpt run."

W39Table (Trial Log)

VAR

Höger kolumn i fönstret.

TEKNISKT

Scroll-område med lazy staplade trial- rader. Per rad en horisontell stack: trial-nummer (3-siffrigt monospaced, till vänster), värde (monospaced, högerjusterat, 70 pt brett), fas- tagg (kapsel, fylld med 25% opacitet — grå för „init", blå för „bo", orange för „restart"; dessa är medvetet andra färger än punktfärgerna i chartet bredvid), eventuellt en gul stjärna om denna trial för närvarande är bäst. En autoscroll-mekanism hoppar automatiskt till slutet så snart en ny trial tillkommer — så att du kan läsa live-förloppet vid skärmens botten utan att själv scrolla.

Huvudfönster: Förlustkurva och Gaussian-antal (I39–I41, korsreferens)

Tre av inspector-vyerna i huvudfönstret förtjänar en egen förklaring, eftersom de syns hela tiden under en pågående träning och det finns viktiga tumregler för när kurvan ser hälsosam ut. Vyerna sitter i Inspector under avsnittet Fortskridande, i den utfällbara gruppen Förlustkurva (se kapitel 2 — Inspector), och kompletterar holdout-analysen från Aux-fönstret ovan.

När är loss-kurvan hälsosam? En hälsosam loss-kurva visar tre faser: (1) Uppvärmning — under de första 200–500 iterationerna faller losset brant från högt (typiskt 0.15–0.25 för kombinerat L1+SSIM beroende på scen) till ungefär hälften. Om losset INTE faller i denna fas är det oftast fel på indata (trasiga bilder, dåliga SfM-poser, för få initiala Gaussians). (2) Densification — mellan ~500 och densifyUntilIteration (klassiskt 15K, MCMC upp till 20K eller 25K) fortsätter losset att falla, ofta med små hopp nedåt när densify-operationer lägger till nya Gaussians och optimeraren utnyttjar dem. Gaussian-antalet ökar under denna fas. (3) Förfining — därefter övergår losset i en allt plattare svans. Typiska slutvärden som riktmärke: en välbelyst objektscen (till exempel Tanks-&-Temples Truck med P4 Quality) hamnar kring L1 ≈ 0.023, medan vidsträckta utomhusscener som de från Mip-NeRF 360 av naturliga skäl ligger högre (0.04–0.07).

Vad betyder en platå? En platå (loss-kurvan går horisontellt över flera tusen iterationer) har två tolkningar: (a) modellen har konvergerat, ytterligare träning ger inget mer — det är det goda fallet. (b) modellen sitter fast (lokalt minimum, dålig gradient-information, ett tak vid buffertgränsen) — det dåliga fallet. Båda ser identiska ut i diagrammet. Så skiljer du dem åt: titta på Gaussian-antalet. Om det också är platt OCH nära MCMC-taket (t.ex. 150K av 150K vid presetet P8 Quality (MCMC)), är du vid gränsen — antingen höj taket eller acceptera platån. Om Gaussian-antalet fortfarande växer men losset inte faller, är det fastkörning.

När ska du avbryta kontra fortsätta träna? Tumregel: 10K iterationer utan förbättring av min-losset → avbryt, ytterligare iterationer är bortkastade. Innan dess: via Training-menyn → Continue Training → "+5,000 iterations" kan du lägga till en förlängning om du ser gränsfallsförbättring (det finns inget tangentbordskommando för detta). Observera: vid MCMC är platån ofta verklig — taket är den naturliga gränsen.

Platå i Gaussian-antalet är INTE en "klar"-signal. Det betyder bara att MCMC har nått sitt tak eller att Classic Densification är uttömd. Den verkliga "klar"-frågan besvaras först av PSNR/SSIM/LPIPS på en oberoende testuppsättning — siffrorna för det finns i benchmark-rapporterna som du utvärderar i Pareto Dashboard (W13–W22). Holdout-fönstret (W23–W29) levererar inte dessa mätvärden; det bedömer bara om din kameraserie överhuvudtaget tillåter en rättvis uppdelning i tränings- och testvinklar.

PSNR/Holdout är sanningen, loss är bara en proxy. Losset är ett relativt mått: det sjunker medan din modell anpassar sig till träningsvyerna. Ett lågt loss betyder dock inte automatiskt en bra modell — om modellen har lärt sig träningsbilderna utantill (overfitting) skulle losset vara litet, men PSNR på osedda vyer (holdout) skulle vara dåligt. Därför: titta alltid på holdout-mätvärdena för den slutliga kvalitetsbedömningen, inte enbart på slut-losset.

Tumregel-lådan

- User Guide och Keyboard Shortcuts är statisk hjälp — snabbt för nyckelordsfrågor, men använd den föreliggande manualen för djupare kunskap. - Öppna Manage Storage så snart hårddisken har mindre än 10% ledigt utrymme kvar. Loggar och Imports-staging är de vanliga bovarna. - Pareto Dashboard är först meningsfull efter minst tre eller fyra tränings-rapporter. X-axeln = kostnad (Time / Gs), Y-axeln = kvalitet (PSNR / SSIM). Pareto-fronten visar de effektiva kombinationerna. - Använd Holdout Analysis innan du publicerar PSNR-benchmarks tillsammans med andra — det säkerställer att din testuppsättning verkligen är representativ. Den exporterade fold-uppdelningen är avsedd för externa verktyg; RadianceKit tränar fortfarande mot „every-8th". - BayesOpt Console är i första hand ett lär- och inspektionsverktyg för definitioner av sökrymder — den räknar mot en demofunktion, inte mot riktiga träningskörningar. - Loss-platå och Gaussian-count-platå ska tolkas separat. Cap-gränsen är inte en signal om att man är „klar". Endast holdout-PSNR mäter den verkliga kvaliteten. - 10K iterationer utan förbättring av min-loss → stoppa träningen.