Capítulo 10 — Modo Iniciante
O Modo Iniciante (Simple Mode, Cmd+1) é o fluxo guiado para quem reconstrói pela primeira vez uma cena 3D Gaussian Splatting. Em vez de mostrar uma sidebar cheia de campos do Inspetor, o app conduz você em quatro passos: primeiro importar imagens ou um vídeo e escolher uma predefinição de qualidade; depois roda o processamento (SfM + treinamento); em seguida você pode inspecionar a cena pronta numa pré-visualização 3D; e por fim exporta no formato desejado. Uma barra de progresso estreita no topo da janela mostra sempre em qual passo você está.
Em comparação com o Expert Mode (Cmd+2), que exibe todos os controles ao mesmo tempo, o Modo Iniciante oculta opções não usadas, traz avisos de validação para imagens insuficientes ou ruins e oferece em cada passo apenas os botões úteis no momento. Você pode alternar entre Iniciante e Expert (Cmd+1 / Cmd+2) a qualquer hora; todo o estado — imagens, predefinição, treinamento em andamento, nuvem pronta — é preservado e fica imediatamente disponível no outro modo.
Z1 — Import (imagens & predefinição)

Breadcrumb (Import ativo) mostra o fluxo em quatro passos. Drop zone à esquerda com três CTAs: „Browse Files" (NSOpenPanel), „Try Sample Scene" (demo bundled), „Download Sample Photos (~427 MB)" (subset Mip-NeRF 360 flowers). Pills de formato listam tipos aceitos. À direita „Imported Files" com contador „0 images" e empty state „No files imported yet". Embaixo seletor de qualidade (padrão: Preview) e „Start Processing" (desativado enquanto não há imagens).
O primeiro passo é dar ao app material de imagens. Por drag e drop no campo grande tracejado no centro, pelo „Browse Files" ou clicando na cena de exemplo distribuída com o app. À direita aparece uma lista de todas as imagens importadas com resolução e tamanho; embaixo na barra flutuante você escolhe a predefinição e inicia a pipeline com „Start Processing". Avisos de validação (vermelho com <3 ou <10 imagens, laranja com 10–19) indicam se o app espera reconstrução útil.
C-01ProgressIndicator (indicador de passo)
ONDE
No topo, acima do fluxo, sempre visível.
TÉCNICO
Mostra uma barra horizontal de progresso de toda a pipeline (Frame Quality → SfM → Training) com alocação por estágio: Frame Quality ocupa 0–5 % (Fase 3.11, muito curta), SfM 0–30 % da barra, Training 30–100 %. Ao lado, texto de status e porcentagem nominada por fase („SfM 41 %", „Training 12 500/20 000"), para o usuário não ler o aparente retrocesso „41 % SfM → 25 % Training" como erro — a barra mostra o progresso total, não o sub-stage. ETA começa quando há velocidade suficiente medida (tipicamente após as primeiras 100 iters). Mesma exibição no Expert Mode acima do Inspetor.
C-03DropZoneView (drag and drop)
ONDE
Lado esquerdo do passo de import, retângulo grande tracejado com símbolo. No Modo Iniciante o label é „Drop photos or a video here".
TÉCNICO
Drop zone que faz o símbolo pular brevemente e colore o fundo quando há drag em cima. Aceita JPG, PNG, TIFF, HEIC, MP4, MOV, PLY, SPZ, .splat, bundles .radiancescene e diretórios. Routing por tipo: imagens coletadas e ordenadas; vídeos disparam frame sampling; arquivos splat abrem direto a pré-visualização; bundles de cena são lidos. Diretórios são enumerados e todas as imagens importadas. Bookmarks security-scoped (sandbox) são gerenciados. Extensões não suportadas viram banner por 5 s.
C-05Browse Files Button
ONDE
Dentro da drop zone, botão de destaque.
TÉCNICO
Botão que abre o file dialog do macOS com multi-seleção e tipos JPG, PNG, TIFF, MP4, MOV, pastas e o formato Scene do app. URLs vindas são security-scoped e seguem os mesmos caminhos de drag-and-drop. Se o usuário escolhe uma pasta, enumeração recursiva por imagens.
C-06Try Sample Scene Button
ONDE
Dentro da drop zone, visível só se o bundle do app trouxer a sample scene E não houver imagens/splats ainda.
TÉCNICO
Aparece se: (a) sample-scene.splat, .spz ou .ply existe no bundle E (b) sem imagens/vídeos importados E sem nuvem pronta. Ao clicar, carrega a nuvem (prefere o menor formato — splat ~3 MB, spz ~1.4 MB, fallback ply) e em 400 ms seta valores de câmera hardcoded para uma perspectiva agradável.
C-07Download Sample Photos Button
ONDE
Dentro da drop zone, ao lado de „Try Sample Scene"; mesmas condições de visibilidade.
TÉCNICO
Dispara download (repo github.com/bkindler/radiancekit-sample-photos) de ~427 MB com 960 frames em resolução plena e alimenta o app. Durante o download, botão desabilitado. O progresso entra na barra superior como „Downloading X %" em estágio próprio, porque mantém escala 0–100 % e não se sobrepõe com SfM.
C-09Quality Presets Picker
ONDE
Barra inferior flutuante do overlay de import, à esquerda do Start.
TÉCNICO
Controle com label „Quality" agrupa predefinições por categoria (Classic / MCMC / Custom). Predefinições built-in agrupadas por categoria; cabeçalhos hardcoded. Custom só visível se há. Locked state: predefinições fora da free list (Quick + Preview) recebem sufixo „🔒" se o usuário não comprou; ao selecionar, o picker volta para Preview e abre o purchase sheet automaticamente. Selecionar aplica a predefinição e substitui toda a TrainingConfig.
C-10Start Processing Button
ONDE
Barra inferior flutuante do import, à direita do picker de predefinição.
TÉCNICO
Botão cinza enquanto não há imagens ou vídeo importado. Ao clicar, inicia a pipeline e coloca a stage machine em Frame Quality → SfM → Training. Sem mais status; o processamento em curso aparece em tela separada.
C-11Video Sampling Slider
ONDE
Lista de imagens à direita; só com vídeo importado.
TÉCNICO
Slider 0.5 fps – 30 fps em passos 0.5. Mudar atualiza densidade de frames e calcula número-alvo (mínimo 10) a partir de densidade e duração. Fora da lista de imagens porque itens de lista bloqueariam eventos do slider. Abaixo, frames calculados („247 frames") e duração do vídeo („1m23s video"). Tooltip avisa: „Doubling the density doubles the number of frames and increases SfM time by ~100 %.".
C-12Clear All Button
ONDE
Lista de imagens à direita, embaixo à direita; só com imagens importadas.
TÉCNICO
Botão vermelho. Clique abre um diálogo „Clear all imported files?" com mensagem „N images will be removed.". Confirmar limpa imagens/vídeos, staging, nuvem, status de treinamento, resultado SfM e caches; stage volta a Import. Em Cancel, nada muda. Diálogo configurado como caminho padrão não-destrutivo (destrutivo em vermelho).
C-13Lista de arquivos ForEach (remover imagem individual)
ONDE
Lista de imagens à direita, cada entrada.
TÉCNICO
Lista das imagens importadas com swipe-to-delete. Por imagem: ícone, nome, resolução („1920 × 1080") e tamanho (KB/MB). Resolução vem de um cache de metadados preenchido assíncrono dos headers para não bloquear UI. Apagar oferece swipe (trackpad esquerda) e Delete na seleção. Aviso: a remoção estendida com botão de menos explícito, Backspace e Cmd-Z foi adicionada apenas no Expert Mode (Project Navigator); no Modo Iniciante segue swipe.
C-15Avisos de validação (3 níveis)
ONDE
Sob a lista de imagens, acima do Clear All.
TÉCNICO
Três limiares por contagem de imagens (só com imagens e sem vídeo): - < 3: banner vermelho (red octagon), texto „At least 3 images are required. Camera alignment cannot be computed from fewer images." - 3–9: banner vermelho, „With fewer than 10 images, SfM often fails and the trained scene tends to overfit […]. 15–20 minimum recommended; 30+ for object captures." - 10–19: banner laranja (warning triangle), „Workable, but quality usually improves with 20+ images and good coverage around the scene."
A partir de 20, o banner some. Limiares hard-coded com base em 560+ experimentos empíricos.
C-16Detecção de COLMAP Workspace
ONDE
Ao soltar uma pasta — sem botão visível, lógica de detecção.
TÉCNICO
Ao soltar diretório, checa um de três layouts: sparse/0/cameras.bin, sparse/cameras.bin ou cameras.bin na raiz. Se sim, a enumeração padrão é cancelada e um alerta modal pergunta se usa a reconstrução existente ou refaz por Apple Photogrammetry. Mesma lógica para text format (cameras.txt) e exports ETH3D. Ver Capítulo 9 backend Q6. Funciona igual em Iniciante e Expert.
Quando passar à próxima etapa?
Você pode clicar Start Processing assim que (a) pelo menos uma imagem ou vídeo está importado E (b) o banner está laranja ou sumiu. Com banner vermelho o app deixa começar, mas é provável que você cancele logo. Recomendado: pelo menos 20 imagens nítidas, com overlap claro entre adjacentes, de distâncias parecidas ao motivo. Escolha antes a predefinição: com 30 imagens e Quick, sai em minutos; com Quality, leva 1–2 horas.
Z2 — Processamento (SfM + treinamento)

Fase SfM (câmeras se alinham): o grande círculo de progresso mostra o sub-stage (41 % da sessão Apple Photogrammetry). Texto „Aligning cameras…" acima à esquerda. Breadcrumb marca „Cameras" como ativo. Barra superior mostra total da pipeline (25 %) — SfM ocupa a primeira metade. Câmeras wireframe flutuantes ao fundo sugerem estimação de poses.

Fase Treinamento (Gaussians otimizados): sub-stage muda para „Training Gaussians"; % conta iters do preset (aqui 400/5 000 para Preview = 8 % do stage). Linha de métricas mostra Loss (0.1642), iters por segundo (138.7 it/s) e ETA (33 s). Total da pipeline sobe de 50 % a 100 %. Botão Pause (em vez de só Cancel da fase SfM) permite Resume depois; Cancel descarta o resultado e volta a Z1.
Quando a pipeline roda, o app esconde o overlay de import e mostra uma tela cheia de processamento. No centro, círculo grande (220×220 px) com ícone de stage, texto e %; ao fundo, animação discreta de splats sugere computação. À esquerda em cima, painel info com métricas ao vivo de treinamento e SfM. Embaixo: Pause/Resume, Cancel e, em erro, Retry.
C-18SplatTrainingView (animação de fundo)
ONDE
Fundo completo atrás do círculo, oculto em cancel ou falha.
TÉCNICO
Animação decorativa que, conforme o progresso (0…1), renderiza um número crescente de partículas splat. A fonte é um valor calculado de progresso: SfM mapeado em 0–0.2, treinamento em 0.2–1.0 (Frame Quality em 0–0.05). Splats „crescem" visivelmente durante o treinamento. Apenas decorativa — não mostra resultados reais (isso seria Live Preview no Expert). Em cancel/erro some, fica só o círculo.
C-19Círculo grande de progresso
ONDE
Centro da tela de processamento, 220×220 px.
TÉCNICO
Dois anéis sobrepostos: anel de track suave fora; anel de progresso com acento ou vermelho dentro (vermelho em erro). No meio: ícone de stage (cérebro para Training, câmera para SfM, filme para extração de frames, sparkles para Frame Quality), título e % animada em 32 pt rounded. Ícone pulsa enquanto ativo. Interpolação a 30 Hz suaviza em direção ao progresso real, com creep constante (0.0003/frame) + parte proporcional (4 % do gap) e soft ceiling em 80 % do próximo milestone esperado (para SfM de tabela hardcoded). Sensação suave mesmo se updates reais vêm a cada poucos segundos.
C-22Botão Info (exibe métricas)
ONDE
Acima à esquerda na tela, 32×32 px.
TÉCNICO
Botão simples com material. Alterna o painel info. Ícone muda entre info-outline e info-filled quando ativo. Animação suave. Tooltip „Show detailed processing metrics".
C-23Painel Info (métricas ao vivo)
ONDE
Embaixo à esquerda na tela, só com showProcessingInfo == true.
TÉCNICO
Painel em duas colunas com material ultra-thin. Coluna esquerda: linhas info por estágio — para SfM status e %; para Training iteração, loss combinado, L1, D-SSIM, Gaussian count (laranja), speed (it/s), elapsed, ETA, SH degree e LR. Coluna direita: status, time info, mini loss chart inline (ver C-28) e nudge de discoverability (ver C-32). Valores vêm do status de treinamento atualizado a cada tick.
C-25Botão Pause/Resume
ONDE
Barra inferior, só durante Training (NÃO durante SfM) e enquanto processamento roda.
TÉCNICO
Botão bordered. Chama Pause ou Resume. Label alterna entre „Pause" (ícone pause) e „Resume" (play). Em SfM, não exibido — Apple Photogrammetry não tem semântica de pause. Pause preserva iteração, status de Gaussians e momento Adam inteiro — Resume continua exatamente de onde parou.
C-26Botão Cancel
ONDE
Barra inferior, durante processamento (SfM ou Training).
TÉCNICO
Botão bordered vermelho. Abre diálogo „Stop and discard progress?" com „Discard Progress" (destrutivo) e „Keep Running" (cancel). Confirmar seta flag de cancel, termina a task, mata o subprocesso SfM se necessário e grava summary com cancel no log JSONL. Diferente de Pause, buffers e status são descartados.
C-27Botão Retry
ONDE
Barra inferior, se a pipeline falhou (status SfM começa com „SfM failed" ou Training em erro).
TÉCNICO
Botão de acento. Reinicia toda a pipeline. Checa imagens importadas antes. Logs de erro anteriores permanecem; novo run grava novo JSONL com timestamp atual.
C-28Loss chart inline
ONDE
No painel info, coluna direita; só durante treinamento com histórico não vazio.
TÉCNICO
Área de desenho compacta (40 px alta), desenha loss history como linha de 1 px em cor de destaque. Filtra para finitos (proteção NaN). Min/Max sobre toda história — auto-zoom. Último valor de loss acima à direita do chart. O history é preenchido a cada tick (~100 iters).
C-32Nudge de descoberta (dica do Expert Mode)
ONDE
No painel info, coluna direita embaixo; só durante treinamento E no Modo Iniciante.
TÉCNICO
Linha pequena com ícone de olho e caption „Switch to Expert Mode (⌘2) for live splat preview", em tonalidade discreta e 10 pt. Não é interativo — o usuário aperta Cmd+2 ou o menu Mode → Expert Mode.
Quando passar à próxima etapa?
O app passa automaticamente para Z3 (preview) ao terminar o treinamento com sucesso — nada a clicar. A barra inferior troca de Pause/Cancel para Back (volta ao import) e Export (vai para Export). Em erro (mensagem vermelha, ícone X), aparece Retry; decida se tenta de novo ou volta ao import com Back para trocar material.
Z3 — Pré-visualização (girar o modelo 3D)


Breadcrumb marca „Preview" como ativo. Viewport 3D em tela cheia renderiza a cena buquê pronta (set de teste sintético em Blender, subset de 60 frames de 960 hemisféricos). Cabeçalho: „Training complete — 3 022 Gaussians in 13 s" (número final + tempo). Drag rotaciona (yaw/pitch); scroll dá zoom. Botão Back (embaixo à esquerda) volta a Z2 para resume ou re-run; Export (embaixo à direita, primário) leva a Z4.
Após o treinamento, o app cai automaticamente em preview. Aqui você vê o modelo Gaussian Splatting pronto em tela cheia Metal e gira/dá zoom/pan com mouse e trackpad. No topo do viewport fica um pequeno overlay com controle de câmera e info — rotação automática, estatísticas, reset. Antes do próximo passo (Export), vale verificar o modelo em vários ângulos para garantir reconstrução limpa.
C-36SplatViewportView (vista 3D principal)
ONDE
Fundo cheio do passo preview.
TÉCNICO
Viewport 3D Metal que renderiza a nuvem. O renderer é o fork MetalSplatter vendored com fixes do RadianceKit para popping/flickering. Pipeline tile-based com order-independent transparency. Se o renderer não inicializa (p. ex. Metal indisponível), aparece fundo preto com „Metal not available". A vista ignora safe area, modelo vai até a borda.
C-37CameraControlsOverlay (overlay de controle)
ONDE
Acima do viewport, flutuante.
TÉCNICO
Overlay compacto com botões para auto-rotation (turntable), reset camera, escolha de background (Gray/Black/White), save screenshot, toggle info. Liga aos parâmetros de câmera (distância, azimuth, elevation, target, FOV) e controla o turntable. Durante o treinamento (caso Expert com viewport rodando ao vivo) o overlay mostra também linha de status compacta.
C-38Botão Export (barra de nav)
ONDE
Barra inferior em Z3.
TÉCNICO
Botão de acento com label „Export" e ícone de share. Clique muda para Z4. Antes, a view-pai checa se a versão completa está desbloqueada — senão, em vez do palco de export, aparece a tela de bloqueio (ver U-06).
Quando passar à próxima etapa?
Antes de exportar, gire o modelo todo e veja: todas as áreas que você cobriu nas fotos estão presentes? Há „floaters" flutuando no ar? O fundo/céu está limpo ou borrado? Problemas grandes só se corrigem com novo treinamento — mais fotos, outra predefinição ou Expert com settings de floater reduction.
Z4 — Export (escolher formato & salvar)


Breadcrumb marca „Export" como ativo. Grid esquerdo „Choose Export Format" com seis opções: PLY (3DGS padrão, 742 KB, SH completos — aqui pré-selecionado com check azul), SPZ (3DGS compactado, ~90 % menor, 74 KB), glTF (com extensão KHR_gaussian_splatting, 708 KB), .splat (Web Viewer via antimatter15, 96 KB), Orbit Video (MP4 360°, tamanho calculado ao vivo), Web Viewer (HTML autônomo com viewer embutido, 133 KB). Tamanhos calculados ao vivo a partir do Gaussian count e overhead de formato. À direita „Export History" lista exports concluídos com pill de formato, nome de arquivo e timestamp — clique revela no Finder. CTA primário embaixo: „Export PLY (3DGS Standard)" com subtítulo „2,991 Gaussians · SH degree 3".
No último passo você escolhe entre 6 formatos (PLY, SPZ, glTF, .splat, orbit video, web viewer) num grid de 2 colunas, clica Export e escolhe o destino no diálogo macOS. À direita roda a history de exports — ao selecionar cada card aparece o tamanho estimado, ajudando, p. ex., a preferir SPZ para web (pequeno) e PLY para outros softwares (SuperSplat, Postshot, Blender via plugin, grande e completo).
C-39Grid de formatos em 2 colunas
ONDE
Lado esquerdo principal do passo Export.
TÉCNICO
Grid de cards em duas colunas flex com 12 pt de espaço. Itera sobre os formatos oferecidos no Iniciante — subconjunto filtrado dos 6 mais importantes: PLY, SPZ, glTF, .splat, Orbit Video, Web Viewer. Compressed PLY e SOG estão SÓ no Expert.
C-40Botão de card de formato
ONDE
Cada card no grid.
TÉCNICO
Botão simples com layout em card: ícone (p. ex. zipper para PLY, archive box para SPZ, vídeo para Orbit Video) em cima, nome em headline, caption descritiva (2 linhas), embaixo tamanho estimado (live a partir de formato, Gaussian count e SH degree em KB/MB). Clique seleciona; card selecionado fica com acento, borda e check à direita. Tooltip = descrição.
C-41Slider de duração de vídeo
ONDE
Sob o grid, só com formato de vídeo (Orbit Video ou Social Video).
TÉCNICO
Slider 3–30 s em passos 1, ligado ao comprimento de vídeo no estado. Largura máxima 300 px. Só aparece com vídeo selecionado. Em formatos não-vídeo, sumir totalmente — sem espaço morto.
C-42Botão Export
ONDE
Sob o grid (e sob o slider de duração, se vídeo).
TÉCNICO
Botão grande com cor de acento. Label: „Export {nome do formato}", ícone share. Clique abre diálogo de salvar do macOS com extensão correspondente e nome padrão „scene.{ext}"; ao confirmar, grava no URL escolhido. Desativado se não há resultado de treinamento ou export já roda.
C-43Barra de progresso do export
ONDE
Sob o botão Export, só durante export.
TÉCNICO
Progresso com largura máx 300 px, abaixo caption „Exporting… N %". Valor 0 a 1, atualizado durante gravação — em PLY em chunks de 10 000 Gaussians, em SPZ após quantização, em Orbit Video por intervalos de frame.
C-44Display de erro de export
ONDE
Sob a barra, só se o último export deu erro.
TÉCNICO
Linha vermelha com warning icon e texto do erro. Fundo vermelho com 8 % opacity, cantos arredondados. Larg máx 400 px. Causas comuns: SOG esperando cwebp no PATH (não sandbox); falha de gravação com disco cheio; sandbox recusando destino fora da área permitida.
C-46Lista Export History
ONDE
Lado direito do passo Export.
TÉCNICO
Lista da history (persistida como JSON em UserDefaults, mantida após cada export bem-sucedido). Linha mostra badge de formato (pequeno, acento), timestamp (HH:mm), nome de arquivo (1 linha) e tamanho formatado. Clique abre Finder com arquivo selecionado. Empty state „No exports yet".
C-48Menu de contexto da History (clique direito)
ONDE
Clique direito numa linha da history.
TÉCNICO
Menu de contexto por linha com duas ações: „Reveal in Finder" (igual ao clique simples) e „Copy Path" (coloca o caminho completo na área de transferência). O segundo é útil para drag-and-drop em outros apps ou para terminal.
Quando o fluxo termina?
Após um export bem-sucedido, você tem o modelo 3D no disco e a history mostra nova entrada. Não há botão „Done" — pode anexar quantos exports quiser em formatos diferentes, sem retreinar. Para voltar à preview (p. ex. ver outro ângulo), use Back na barra inferior. Para iniciar cena totalmente nova, Back até Z1 e Clear All, ou File → New Project (Cmd+⇧+N).
Mudança para o Expert Mode
Aperte Cmd+2 a qualquer momento ou escolha Mode → Expert Mode (M8). Todo o estado é preservado: imagens importadas, predefinição, treinamento em andamento ou pronto, nuvem, history de export, até o estágio atual. No Expert, em vez do palco de 4 passos, aparece a sidebar de Inspetor completa com ~150 controles. Em particular: o Project Navigator (Capítulo 2) traz operações estendidas de imagem (botão de menos, Backspace delete, Cmd-Z undo, quick look), live preview no viewport durante treinamento, e todos os parâmetros de loss, MCMC, densification e Mip Splatting. Cmd+1 volta ao Iniciante — também sem perder estado.
Perguntas frequentes
Por que meu Start Processing fica cinza?
Você não importou imagem nem vídeo. Arraste pelo menos um arquivo na drop zone ou use „Browse Files". Quando a lista direita tem ao menos um item, o botão ativa. (Com 1–2 imagens começa, mas SfM aborta com erro — ver banner vermelho.)
Por que meu Export Button está bloqueado?
No Iniciante há dois níveis: (a) sem pipeline de treinamento terminada e sem , o botão está desativado — precisa terminar Z2. (b) sem versão completa comprada (PurchaseManager.hasAccess == false), em vez do palco de export aparece tela de bloqueio com cadeado e „Unlock Full Version" que abre o purchase sheet. Quick e Preview permitem treinamento grátis, mas export é premium.
Por que não consigo escolher uma predefinição?
Pode escolher — mas se tocar uma premium (Balanced, Quality, variantes MCMC) sem versão completa, o picker volta a Preview e abre o purchase. Quick e Preview são as únicas grátis.
Por que minha drop zone fica vazia e cinza-tracejada mesmo com imagens arrastadas?
Provavelmente UTI mismatch. O app aceita JPG, PNG, TIFF, HEIC, MP4, MOV mais os splats próprios. Outros (BMP, GIF, WebP, RAW) NÃO são reconhecidos. Se tem certeza que seu tipo está na lista, confira a extensão — o app vai primeiro pela extensão, não pelo conteúdo.
Por que SfM demora tanto mesmo com só 30 imagens?
Apple Photogrammetry não escala linear — em algumas constelações (internos com texturas complexas, motion blur, luz ruim), demora bem mais que a contagem sugere. Se SfM trava 10+ minutos em 30 imagens, cancele e tente com material melhor, ou vá ao Expert e tente COLMAP/Native SfM (Cmd+2 → Inspetor → Camera Alignment).
Onde estão meus training logs?
Help → Open Training Logs (Cmd+⇧+L). Abre ~/Documents/RadianceKit/Logs/. Cada sessão grava um JSONL próprio com timestamp — primeira linha é a configuração, depois linha de progresso a cada 100 iters, última linha é summary com final loss e success flag.