Podręcznik

Rozdział 3 — Ustawienia

Okno ustawień otwiera się przez RadianceKit → Ustawienia... lub standardowy skrót klawiszowy ⌘,. Zawiera dwie karty: General i AI Helpers. W przeciwieństwie do wartości Inspectora z rozdziału 2 ustawienia z tego okna działają globalnie dla aplikacji (we wszystkich projektach) — są trwale zapisywane i przeżywają restarty aplikacji. Karta General grupuje cztery sekcje tematyczne: Interface, Viewport, Training i eksperymentalna sekcja redukcji floaterów plenerowych. Karta AI Helpers włącza pomocniki on-device do machine learningu (Vision, CoreML) dla wstępnego przetwarzania SfM i treningu.

Wcześniejsze elementy sterujące do zbiorczego włączania lub wyłączania wszystkich AI-Helpers w obecnej wersji już nie istnieją — odpowiednio nie są tu dokumentowane. Również wcześniejszy obszar „Coming Soon" dla jeszcze niewysłanych pomocników został usunięty i nie jest tu referowany.

Karta General

Ustawienia → karta General z sekcjami Interface, Viewport, Training i Experimental
Ustawienia → karta General z sekcjami Interface, Viewport, Training i Experimental

S1Default Mode

GDZIE

Settings → General → Interface → selektor Default Mode. Bound:. Default: .simple.

TECHNICZNIE

Steruje, w którym z dwóch trybów UI aplikacja otwiera się po następnym uruchomieniu. „Simple Mode" to prowadzony przepływ kreatora w 4 krokach (Import → Processing → Preview → Export, udokumentowany w rozdziale 10 pod Z1–Z4), „Expert Mode" to klasyczny układ trzech paneli z nawigatorem, widokiem 3D i Inspectorem ekspertskim z rozdziału 2. Wartość jest zapamiętywana między restartami. Identyczny efekt jak menu Mode → Simple Mode (⌘1) / Mode → Expert Mode (⌘2), z tym że menu przełącza bieżącą sesję, podczas gdy ten selektor ustala wartość domyślną dla przyszłych sesji. Oba tryby sięgają do tego samego stanu projektu — projekty, kamery i konfiguracja treningu pozostają zachowane przy zmianie trybu. Specyficzne dla trybu przyciski paska narzędzi są natychmiast ponownie renderowane.

S2Language

GDZIE

Settings → General → Interface → selektor Language. Bound:. Default: .system (podąża za językiem macOS).

TECHNICZNIE

Wybiera język wyświetlania całego UI aplikacji, niezależnie od języka systemu macOS. RadianceKit jest zlokalizowany w 17 językach (de, en, pl, en-AU, ar-SA, plus 12 dalszych). Przy „System" aplikacja podąża za językiem macOS. Przy jawnym wyborze ustawienie języka jest zapamiętywane między restartami; pełne działanie wymaga z reguły restartu aplikacji, ponieważ pakiety lokalizacji są ładowane tylko przy starcie. 298 udokumentowanych kluczy lokalizacji w projekcie są wszystkie uwzględniane, włącznie ze wszystkimi tekstami w sub-widokach i podpowiedziach pomocy.

S3Viewport Background

GDZIE

Settings → General → Viewport → selektor Background. Bound:. Default: .darkGray (RGB 0.1, 0.1, 0.1).

TECHNICZNIE

Ustawia domyślny kolor tła dla widoku 3D. Trzy opcje: „Dark Gray" (RGB 0.1, 0.1, 0.1 — domyślne), „Black" (0, 0, 0) i „White" (1, 1, 1). Ustawienie utrwala domyślną wartość dla nowych projektów i sesji przez restarty i jednocześnie natychmiast aktualizuje działający renderer Metal. Identyczne opcje znajdują się w menu Viewport → Background (M21, M22, M23), ale selektor ustawień ustawia domyślne, podczas gdy menu przełącza bieżący wyświetlany obraz. Ważne dla zrzutów ekranu i wideo demonstracyjnych: białe tła silniej uwypuklają zielone/niebieskie floatery, ciemne tła są lepsze do czystych ujęć renderowanych.

S4Auto-Rotate After Training

GDZIE

Settings → General → Viewport → przełącznik „Auto-Rotate After Training". Bound:. Default: false.

TECHNICZNIE

Startuje bezpośrednio po zakończeniu treningu ciągłą rotację typu turntable kamery widoku wokół środka ciężkości sceny (standardowa prędkość obrotu ~0.3 rad/s). Praktycznie użyteczne do sesji demonstracyjnych, porównań A/B oraz do bezpośredniej oceny w widoku 360°, czy na brzegu sceny powstały „floatery". Efekt jest wizualnie identyczny z menu Viewport → Toggle Auto-Rotation (M16, ⌘⌥T), z tym że przełącznik tutaj wyzwala zachowanie automatycznie po zakończeniu treningu zamiast ręcznie. Można w dowolnej chwili przerwać przez menu lub kliknięcie w widok (co pauzuje rotację). Nie ma wpływu na wydajność treningu — rotacja startuje dopiero, gdy trening jest gotowy.

S5Live Preview Interval

GDZIE

Settings → General → Training → selektor Live Preview. Bound: AppState.trainingConfig.livePreviewInterval. Default: 0 (Off).

TECHNICZNIE

Określa, w jakim odstępie iteracji bieżący snapshot treningu jest renderowany do widoku 3D. Cztery dyskretne wartości: 0 („Off"), 50, 250, 1000 iteracji. Przy aktywnym Live Preview trener kopiuje bufor gaussianów z GPU do osobnego bufora renderowania i wyzwala odświeżenie widoku. Przy „Off" widok jest aktualizowany dopiero po zakończeniu treningu. Koszt wydajności: co 50 iteracji ~5–10% wolniej na M3 Ultra, co 250 iteracji ~1–2% wolniej, co 1000 iteracji niemierzalne. Narzut pamięci stały ~2 GB dla bufora snapshotu, niezależnie od interwału. Wartość służy jako domyślna dla nowych treningów; po starcie treningu Inspector treningu pokazuje rzeczywistą bieżącą wartość tego treningu. Przy interwale 50 wrażenie wizualne to płynne „dorastanie" chmury punktów, przy 1000 wygląda to skokowo.

S6Throttle Delay

GDZIE

Settings → General → Training → selektor Throttle. Bound: AppState.trainingConfig.throttleDelayMs. Default: 0 (Off).

TECHNICZNIE

Wstawia między iteracjami treningu sztuczne opóźnienie w milisekundach. Cztery dyskretne wartości: 0 („Off"), 2 („Light"), 5 („Moderate"), 10 („Eco"). Sens: przy dłuższych treningach (kilka godzin) GPU jest inaczej obciążone do 100%, co prowadzi do zauważalnie wolniejszego UI systemu (kursor myszy zacina się, inne aplikacje stają się ociężałe). Opóźnienie throttle daje GPU przerwy, w których mogą być wykonywane inne zadania. Koszt wydajności jest znaczny: przy 5 ms throttle typowy trening 40K trwa około 50–80% dłużej niż bez throttle. W trybie wydajności „Eco" (10 ms) opóźnienie na iterację jest dłuższe niż sama iteracja — współczynnik 2–3× wolniej. Przy aktywnym throttle pod selektorem pojawia się wskazówka: „Throttle is on. Training will be slower than usual." Sama aplikacja nie reaguje zauważalnie lepiej — tylko inne aplikacje korzystają.

S7Sky Masking

GDZIE

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

TECHNICZNIE

Aktywuje pre-trainingową segmentację pikseli nieba opartą na Apple Vision. Przed startem treningu dla każdej kamery wejściowej obszar nieba jest ekstrahowany przez maskę pierwszego planu Apple Vision (Sky = Background) i przypisywany jako maska na piksel do danej kamery. Podczas treningu wkład w loss na piksel jest mnożony przez dopełnienie maski nieba — piksele nieba wnoszą 0 do gradientu, więc gaussiany rzutujące w niebo nie otrzymują sygnałów optymalizacji i tym samym nie stają się „gęstsze" ani „jaśniejsze". Znacząco redukuje floatery (ciemne grudki na niebie) w scenach plenerowych/dronowych. Kosztuje ~3% regresji L1 przy klasycznym treningu 40K (zobacz memory/dev_outdoor-floater-reduction.md). Sensowne tylko w scenach plenerowych z wyraźnie widocznym niebem; w scenach wnętrz lub z białym tłem segmentacja nieba identyfikuje błędne obszary i blokuje ważne sygnały loss. W przeciwieństwie do pozostałych eksperymentalnych przełączników wartość nie jest zapamiętywana między restartami aplikacji — przy następnym uruchomieniu jest znów wyłączona.

S8Mid-Training Floater Cleanup

GDZIE

Settings → General → Experimental — Outdoor Floater Reduction → przełącznik „Mid-Training Floater Cleanup". Bound:. Default: false.

TECHNICZNIE

Włącza przy treningu Classic-40K (ustawienie „P4 Quality") dwa dodatkowe przebiegi kontroli gęstości: przy iteracji 20,000 i przy iteracji 30,000. Oba przebiegi przeszukują wszystkie gaussiany według trzech kryteriów: (a) bardzo niskie opacity (standard 0.005), (b) niewielki rozmiar w przestrzeni ekranu, (c) brak wkładów do loss w ostatnich 1000 iteracjach. Gaussiany spełniające wszystkie trzy warunki są usuwane. Efekt: ~5–15% mniej gaussianów na końcu treningu, widocznie mniej ciemnych grudek na niebie w scenach dronowych/plenerowych. Kosztuje ~1–3% regresji L1 w scenach wnętrz close-up, dlatego nie aktywowane domyślnie. Wartość jest zapamiętywana między restartami (w przeciwieństwie do S7). Dwie iteracje cleanupu (20K, 30K) są twardo zdefiniowane i obecnie nie można ich zmienić przez UI; przy krótszych treningach (np. P2 Preview 5K) przełącznik nie ma efektu, ponieważ nigdy nie dochodzi do oznaczeń iteracji. Szczegóły: memory/dev_outdoor-floater-reduction.md.

S9Reduce Elongated Gaussians

GDZIE

Settings → General → Experimental — Outdoor Floater Reduction → przełącznik „Reduce Elongated Gaussians". Bound:. Default: false.

TECHNICZNIE

Aktywuje dodatkową regularyzację anizotropii w członie loss. Podczas optymalizacji dla każdego gaussiana liczy się anizotropię jako stosunek między największą a najmniejszą osią skalowania. Gdy stosunek przekracza próg (standard 10.0), do loss dodawany jest człon kary skalujący się proporcjonalnie do przekroczenia. Efekt: gaussiany igliste, typowe dla artefaktów cross-hatch i pasm w trawie i gęstym listowiu, są podczas treningu albo zmuszane do bardziej okrągłych form, albo usuwane. W zamian ~6% regresji L1 w standardowych scenach wnętrz, brak efektu przy ścisłych Object-Capture. Sweet spot przy ujęciach z lotów dronem nad roślinnością. Zapisuje na, persistowane przez. Implementacja w optimizer.metal jako dodatkowa kara w obliczaniu gradientu. Zobacz wskazówkę w pamięci projektu: V549d była wysłaną wersją, późniejsze V549f z bardziej agresywną Scale-Reg zostało wycofane z powodu katastrofalnej regresji. Szczegóły: memory/dev_outdoor-floater-reduction.md i memory/dev_v549f-needle-reduction.md.

S10Reconstruct Sky Dome

GDZIE

Settings → General → Experimental — Outdoor Floater Reduction → przełącznik „Reconstruct Sky Dome". Bound:. Default: false.

TECHNICZNIE

Aktywuje projekcję Sky-Dome przed treningiem (MVP V549e). Po SfM i przed startem treningu dla każdej kamery wejściowej maska nieba Apple Vision wspólna z S7 jest ekstrahowana z obrazu, piksele nieba są ze współczynnikami wewnętrznymi kamery odrzutowywane na powierzchnię wirtualnej kuli (standardowy promień 8× promień sceny). Na tej kuli inicjalizowanych jest ~5000 nowych gaussianów ze średnimi kolorami z odrzutowanych pikseli nieba, bardzo dużą skalą (1.0 w jednostkach sceny) i początkową opacity 0.95. Te 5000 gaussianów to nie jest klasyczna maska nieba — są trenowane jak wszystkie inne, ale przez wysoką początkową opacity pozostają w cienkiej skorupie. Wynik: przy widokach Novel-View 360° w scenach plenerowych/dronowych zamiast ciemnych grudek confetti pojawiają się faktyczne kolory nieba i struktury chmur. Wartość jest zapamiętywana między restartami. Sensowne tylko w scenach plenerowych z co najmniej 360° pokrycia kamer; przy czystych Object-Capture bez widoku nieba nie ma efektu. Status: eksperymentalne, szersza walidacja A/B na dalszych zestawach plenerowych jeszcze przed nami.

Karta AI Helpers

Ustawienia → karta KI-Helper z głównym przełącznikiem i podprzełącznikami
Ustawienia → karta KI-Helper z głównym przełącznikiem i podprzełącznikami

S11AI Helpers enabled (Master)

GDZIE

Settings → AI Helpers → pierwsza sekcja → przełącznik „AI Helpers enabled". Bound:. Default: true.

TECHNICZNIE

Główny przełącznik nad wszystkimi funkcjami AI-Helpers w potoku. Gdy wyłączony, potok importu i SfM całkowicie pomija wszystkie etapy wstępnego przetwarzania oparte na ML — brak wywołania Apple Vision, brak ładowania modelu CoreML, brak przebudzenia NPU. Gdy włączony, konsultowane są indywidualne podprzełączniki (S12–S14). Wartość jest zapamiętywana między restartami. Ma wpływ na następujące etapy: (a) Frame-Quality-Pre-Check przed SfM (S12), (b) wykrywanie zamknięcia pętli (S13), (c) Auto-Sky-Masking jako wartość domyślna dla nowych treningów (S14). Ważne: gdy wyłączony, trzy podprzełączniki są dezaktywowane i wizualnie wyszarzone. Wskazówka w stopce podkreśla, że wszystkie AI-Helpers działają ściśle on-device — brak przesyłania obrazów, brak przetwarzania w chmurze. Gwarancja prywatności wynika z użycia wyłącznie frameworku Apple Vision (lokalnie na Neural Engine) oraz modeli CoreML, które leżą bezpośrednio w pakiecie aplikacji.

S12Frame quality check

GDZIE

Settings → AI Helpers → sekcja Available → przełącznik „Frame quality check". Bound:. Default: true.

TECHNICZNIE

Aktywuje screener jakości klatek (Faza 3.11), który przed wywołaniem SfM analizuje każdą zaimportowaną klatkę. Kroki potoku na klatkę: (a) filtr wariancji Laplasjana z Apple Vision (wykrywanie rozmycia — próg ~150), (b) sprawdzenie przeoraku / niedoekspozycji oparte na histogramie (próg: >5% pikseli przy 0 lub 255), (c) wykrywanie pustych klatek (odchylenie standardowe < 5 na wszystkich pikselach). Klatki przechodzące wszystkie trzy testy idą bezpośrednio. Klatki nie przechodzące co najmniej jednego testu wyzwalają modalny dialog potwierdzenia, który listuje każdą problematyczną klatkę z miniaturą i uzasadnieniem i pyta, czy usunąć. Ważne: brak automatycznego usuwania — dialog jest zawsze wymagany, użytkownik zachowuje ostateczną decyzję. Wydajność: ~50 ms na klatkę na M3 Ultra, działa równolegle. Gdy wyłączony, wszystkie klatki idą bez sprawdzenia do SfM. Przy wyłączonym Masterze (S11) ten przełącznik jest wizualnie wyszarzony i bez efektu. Status wysłany według pamięci: SHIPPED 2026-05-23.

S13Loop closure detection

GDZIE

Settings → AI Helpers → sekcja Available → przełącznik „Loop closure detection". Bound:. Default: true.

TECHNICZNIE

Aktywuje wykrywanie zamknięcia pętli oparte na Apple Vision Feature-Print. Dla każdej zaimportowanej klatki obliczany jest ~768-wymiarowy wektor cech, reprezentujący osadzenie neuronowe zawartości obrazu. Następnie wszystkie feature-prints są parami porównywane przez podobieństwo cosinusowe. Pary z podobieństwem > 0.85 i dystansem w indeksie klatek > 50 (czyli klatki niesąsiadujące) są identyfikowane jako „kandydaci na zamknięcie pętli" i zapisywane do sidecar pliku JSONL w folderze projektu. Tylko informacyjne — zaimportowana sekwencja obrazów nie jest modyfikowana. Sens: daje solverowi SfM (zwłaszcza COLMAP) wskazówkę, że te klatki w przestrzeni 3D należą do siebie. Dla natywnego SfM informacja sidecar jest obecnie tylko dokumentująca; COLMAP używa wskazówek wewnętrznie przez plik niestandardowych dopasowań (integracja ręczna możliwa, nie podpięta automatycznie). Wydajność: ~200 ms na klatkę na M3 Ultra, działa równolegle. Gdy wyłączony, nie są generowane feature-printy. Przy wyłączonym Masterze (S11) wizualnie wyszarzony.

S14Auto sky masking (AI)

GDZIE

Settings → AI Helpers → sekcja Available → przełącznik „Auto sky masking". Bound: UserDefaults.standard.bool(forKey: "aiHelpersSkyMaskingDefault") (przez Custom-Binding). Default: false.

TECHNICZNIE

Ustawia wartość domyślną dla ustawienia Sky-Masking z S7 przy nowych konfiguracjach treningu. W przeciwieństwie do S11–S13 właściwe ustawienie Sky-Masking żyje na sesję treningową i nie jest zapamiętywane między restartami aplikacji (zobacz S7). Aby UI AI-Helpers mimo to mogło zaoferować trwałą wartość domyślną dla „nowych treningów", istnieje ta wartość cienia: jest zapamiętywana między restartami i przy setupie nowego treningu (np. import nowego projektu) przejmowana jako początkowa wartość domyślna dla Sky-Masking. Przy wyłączonym Masterze (S11) wizualnie wyszarzony.

Ustawienia lustra Inspectora

Pozostałe wpisy ustawień (S17–S33) z tabeli inwentarza są lustrami z Inspectora ekspertskiego i są udokumentowane w rozdziale 2 (kontrolki Inspectora I12–I29). Nie pojawiają się fizycznie w oknie Settings, lecz były wymienione w inwentarzu tylko dlatego, że działają przez właściwości TrainingConfig, które są persistowane przez i o tyle formalnie mają charakter ustawień. Po wyjaśnienia treściowe patrz tam.

Kiedy co?

UstawienieZakres działaniaTrwałość
S1 Default ModeAplikacja globalnieRestart aplikacji
S2 LanguageAplikacja globalnieRestart aplikacji
S3 Viewport BackgroundAplikacja globalnie (Default) + RuntimeRestart aplikacji
S4 Auto-Rotate After TrainingAplikacja globalnieRestart aplikacji
S5 Live Preview IntervalDomyślne dla nowych treningówRestart aplikacji
S6 Throttle DelayDomyślne dla nowych treningówRestart aplikacji
S7 Sky MaskingBieżący treningtylko sesja
S8 Mid-Training Floater CleanupAplikacja globalnieRestart aplikacji
S9 Reduce Elongated GaussiansAplikacja globalnieRestart aplikacji
S10 Reconstruct Sky DomeAplikacja globalnieRestart aplikacji
S11 AI Helpers MasterAplikacja globalnieRestart aplikacji
S12 Frame quality checkAplikacja globalnieRestart aplikacji
S13 Loop closure detectionAplikacja globalnieRestart aplikacji
S14 Auto sky maskingDomyślne dla nowych treningówRestart aplikacji

Aplikacja globalnie = działa na wszystkie projekty. Domyślne dla nowych treningów = działa tylko na następny utworzony trening, bieżące sesje pozostają niezmienione. Bieżący trening = działa natychmiast na bieżącą konfigurację treningu, ale nie persistuje bez jawnego reimportu.