Se cair para 60 fps por um instante, o usuário não fica irritado — fica enjoado

Apostila completa de Spatial Computing, XR & WebXR

Spatial computing coloca a interface no espaço à sua volta — em headsets como Vision Pro e Quest, em óculos, e no navegador via WebXR. Esta apostila cobre o vocabulário (AR/VR/MR, 3DoF/6DoF), conforto e segurança como requisitos, os modelos de interação (mãos, olhar, voz), o design de UI espacial, WebXR na prática com three.js/R3F, os assets 3D e os orçamentos de performance, as plataformas nativas (visionOS, Meta, Android XR), os recursos avançados (occlusion, anchors, multiusuário), e a produção, o negócio e a ética.

10 módulosAR/VR/MR · 6DoFconforto · fps como saúdeWebXR · three.js · R3FglTF/USDZ · budgetsExercícios com gabarito
MÓDULO 01 · BÁSICO

O que é spatial computing

Objetivo: o vocabulário (AR/VR/MR/XR, o continuum, 3DoF/6DoF), o panorama de dispositivos, e onde vale a pena de verdade.

1.1 O continuum

Esta apostila complementa a apostila Realidade Aumentada (que foca em AR mobile e conceitos) com UI espacial, WebXR e o estado de 2026 (headsets de MR, óculos, o ecossistema de dev).

1.2 3DoF × 6DoF

1.3 Os dispositivos (panorama 2026)

CategoriaExemplosPerfil
Headset de MR premiumApple Vision Propassthrough de alta qualidade, olhar + pinça + voz, sem controllers por padrão, visionOS
Headset de MR "mainstream"Meta Quest 3 / 3Scontrollers + hand tracking, passthrough colorido, catálogo de jogos, preço acessível
Plataforma XR mobileAndroid XR (Samsung/Google), ARCoreheadsets e óculos com Android; Gemini integrado
Smart glassesóculos com display leve / assistenteAR "glanceable", campo de visão pequeno, foco em notificações, câmera, IA
AR no celularARKit (iOS), ARCore (Android)o maior alcance instalado; a base da apostila Realidade Aumentada

1.4 Onde vale — e onde é hype

💡 A regra que organiza a apostila

Conforto e performance não são "polimento" — são requisitos de entrada. Uma experiência espacial que enjoa, cansa ou cai de frame rate falhou, por melhor que seja o conceito. Toda decisão de design e de engenharia passa primeiro por "isto é confortável e roda a 90 fps?".

💼 Mercado de trabalho

Perguntas de abertura: "Diferença entre AR, VR e MR?" (sobrepor / substituir / o virtual interagir com o real), "3DoF vs 6DoF?" (só rotação vs rotação + translação — andar), "O que é 'spatial computing'?" (termo da Apple para XR com passthrough e UI espacial), "Onde XR entrega valor hoje?" (treinamento, design review 3D, campo/manutenção, telepresença, varejo AR — não "substituir o monitor").

✏️ Exercício 1 — Tela ou espaço

Para cada ideia, diga se XR agrega valor real ou se uma tela resolve melhor, e por quê: (a) treinar técnicos a trocar uma peça de um motor a jato; (b) um dashboard de vendas da empresa; (c) mostrar como um sofá fica na sala do cliente; (d) uma reunião de status semanal de 6 pessoas; (e) revisar o modelo 3D de um prédio antes de construir.

Gabarito (uma boa resposta): (a) XR — escala real, sequência de passos sobreposta à peça, praticar sem o equipamento caro; AR/MR. (b) tela — números e tabelas se leem melhor em 2D; XR só adicionaria fadiga. (c) XR (AR mobile) — escala e contexto no espaço real é exatamente o ponto; USDZ/model-viewer. (d) tela — chamada de vídeo é melhor; "reunião em VR" genérica cansa e não agrega. (e) XR — ver o prédio em escala 1:1, andar por ele, revisar espaço e circulação antes de gastar concreto; VR ou MR.

MÓDULO 02 · BÁSICO

Percepção, conforto e segurança

Objetivo: entender o enjoo (cybersickness), por que frame rate é saúde, a fadiga física, e as práticas para uma experiência confortável e segura.

2.1 Cybersickness (enjoo)

2.2 Frame rate é um requisito de saúde

2.3 Locomoção confortável

TécnicaConforto
Roomscale (andar de verdade no espaço físico)o mais confortável; limitado pelo espaço real
Teleporte (aponta e "pisca" para o destino)muito confortável; quebra a imersão; padrão em jogos
Locomoção suave (analógico move o personagem)imersivo mas causa vection; mitigar com vignette (tunneling) nas bordas, velocidade constante, sem aceleração
Rotação "snap" (gira 30–45° por clique)bem mais confortável que rotação suave

Ofereça opções e deixe o usuário escolher; assuma o preset mais confortável por padrão.

2.4 Fadiga física

2.5 Segurança

💼 Mercado de trabalho

Perguntas: "Por que se enjoa em VR?" (conflito sensorial: os olhos veem movimento que o vestibular não sente; vection; latência alta), "Por que frame rate é tão crítico?" (é requisito de saúde; queda momentânea já enjoa; 72–120 Hz), "Como fazer locomoção confortável?" (roomscale > teleporte > suave com vignette + snap turn; oferecer opções), "O que é gorilla arm e como evitar?" (fadiga de braço erguido — zona ergonômica, sentado, ray+pinch).

✏️ Exercício 2 — Auditoria de conforto

Um protótipo de VR de "passeio por um museu" tem: locomoção suave com o analógico (com aceleração), a UI de informações flutuando a 40 cm do rosto, botões que exigem tocar diretamente objetos a 2 m de distância, e o frame rate oscilando entre 65 e 90 fps. Liste os problemas e as correções.

Gabarito (uma boa resposta): (1) locomoção suave com aceleração → forte vection/enjoo; trocar por teleporte como padrão, oferecer locomoção suave opcional com velocidade constante (sem aceleração) e vignette nas bordas durante o movimento; adicionar snap turn. (2) UI a 40 cm → estresse de vergência-acomodação e difícil de ler; mover para ~1.5–2 m, com tamanho angular adequado. (3) tocar diretamente objetos a 2 m → gorilla arm e mira imprecisa; usar ray + pinch (apontar com a mão baixa e "clicar" com pinça) ou olhar + pinça. (4) frame rate caindo a 65 → inaceitável; travar em 72/90 Hz reduzindo qualidade (menos polígonos, luz assada, menos pós-processamento) até nunca cair; medir no device.

MÓDULO 03 · BÁSICO

Interação espacial

Objetivo: os modelos de input (controllers, mãos, olhar, voz, cabeça), quando usar cada um, e as regras de alvo, alcance e feedback.

3.1 Os modelos de input

InputComoBom para
Controllersbotões, gatilhos, thumbstick, 6DoF, hapticsjogos, precisão, ações rápidas; padrão no Quest
Hand tracking — direct toucha mão "toca" o botão virtual no espaçoconteúdo ao alcance do braço; natural mas cansa e falta feedback tátil
Hand tracking — ray + pincha mão aponta um raio; juntar polegar e indicador = "clique"conteúdo distante, mão baixa e relaxada; padrão do Quest sem controller
Eye tracking + pinch (visionOS)você olha o elemento (ele destaca) e pincha para ativarrápido, sem esforço, mão no colo; o modelo do Vision Pro
Vozcomandos, ditado, "toque para falar"entrada de texto, atalhos, acessibilidade (ver IA de Voz e Áudio)
Cabeça (gaze)a direção do olhar da cabeça como ponteiro; "dwell" para selecionar3DoF, hands-free, acessibilidade; lento

3.2 Regras de alvo e alcance

3.3 Feedback

3.4 Gestos do sistema vs do app

💼 Mercado de trabalho

Perguntas: "Quais os modelos de input em XR?" (controllers, hand tracking direct/ray+pinch, eye tracking + pinch, voz, gaze da cabeça), "Como o Vision Pro funciona sem controller?" (olhar para focar + pinça para ativar), "O que define o tamanho de um alvo em XR?" (o tamanho angular, não o físico; alvos e espaçamento generosos porque a mira treme), "Como dar feedback sem toque físico?" (visual + som + haptics + animação).

✏️ Exercício 3 — Escolha o input

Para cada app, escolha o(s) modelo(s) de input e descreva a interação: (a) um jogo de tênis de mesa; (b) um app de produtividade com janelas e listas no Vision Pro; (c) um treinamento de montagem industrial no Quest; (d) um app "glanceable" de navegação em smart glasses.

Gabarito (uma boa resposta): (a) controllers 6DoF (ou hand tracking se preciso e bem rastreado) — a raquete precisa de posição/velocidade precisas e haptics no impacto. (b) olhar + pinça (o modelo nativo do visionOS): olha o botão/link (destaca), pincha para ativar; scroll com movimento da mão pinçada; texto por voz/teclado virtual; nada de "tocar" janelas distantes. (c) hand tracking direct touch para manipular as peças ao alcance + ray + pinch para menus, e voz para "próximo passo"; controllers como alternativa. (d) voz + botão físico no aro dos óculos + talvez um gesto simples; a UI é mínima e periférica; nada de mira precisa num display pequeno.

MÓDULO 04 · INTERMEDIÁRIO

Design de UI espacial

Objetivo: o modelo mental de janelas/volumes/espaços imersivos, as âncoras (world/head/hand-locked), e as regras de profundidade, escala, tipografia e material em XR.

4.1 Janelas, volumes, espaços

O modelo do visionOS é um bom vocabulário geral:

4.2 Âncoras: onde o conteúdo "mora"

ÂncoraSegue…Use para
World-lockedfica fixo num ponto do mundo realquase tudo: janelas, objetos na mesa, conteúdo persistente. O padrão confortável
Head-locked (HUD)gruda na sua visão, sempre à frentequase nada — enjoa e incomoda; só alertas críticos brevíssimos, e mesmo assim com cuidado
Body/lazy-followacompanha você com atraso e amortecimentoum menu que "vem junto" quando você anda para longe, sem colar na cara
Hand-lockedpreso à mão/pulsouma paleta de ferramentas, um relógio, um menu rápido "na palma"

Head-locked é a armadilha nº 1 de quem vem do 2D: "vou colar o dashboard na frente do usuário". Não — deixe o mundo segurar a UI.

4.3 Profundidade, escala e legibilidade

4.4 Tipografia, cor e material em XR

4.5 Ergonomia de layout

💼 Mercado de trabalho

Perguntas: "Window, volume ou immersive space — como escolher?" (comece com janela 2D; suba só quando profundidade/espaço são o valor), "Quais tipos de âncora e quando usar?" (world-locked por padrão; head-locked quase nunca — enjoa; hand/body para menus que acompanham), "Por que head-locked é ruim?", "Por que a tipografia e o contraste são mais difíceis em XR?" (passthrough = fundo real imprevisível; usar painel com material próprio; testar em ambientes variados).

✏️ Exercício 4 — Traga um app 2D para o espaço

Você tem um app web de gestão de tarefas (listas, cards, um painel de métricas) e quer uma versão para Vision Pro. Descreva as decisões: o que vira Window, o que (se algo) vira Volume/Immersive, as âncoras, e os ajustes de tipografia/material/alvo.

Gabarito (uma boa resposta): a maior parte fica em Windows — a lista de tarefas, o board e o painel de métricas são conteúdo 2D e se leem melhor assim; não force 3D. Talvez um Volume opcional para uma visualização 3D de "carga da equipe ao longo do tempo" se houver valor real em ver profundidade. Nada de immersive space — isso não merece tomar o ambiente. Âncoras: tudo world-locked (o usuário posiciona as janelas na sala e elas ficam); talvez um pequeno menu de ações rápidas hand-locked na palma. Ajustes: texto maior e mais pesado, contraste alto dentro do painel de vidro do visionOS, alvos e espaçamento generosos (olhar + pinça treme), layout levemente curvo, largura limitada (não girar a cabeça para ler), cores sem branco/preto puro, e testar com uma sala clara e uma escura atrás.

MÓDULO 05 · INTERMEDIÁRIO

WebXR na prática

Objetivo: a WebXR Device API, os frameworks (three.js, React Three Fiber, Babylon, A-Frame, model-viewer), e o progressive enhancement.

5.1 A WebXR Device API

5.2 Os frameworks

FerramentaÉ / para
three.js + WebXRa base; renderer.xr.enabled = true + VRButton/ARButton; controle total, mais código
React Three Fiber + @react-three/xrthree.js declarativo em React; <XR>, <Controllers>, <Hands>, hooks de hit test; ótimo DX
Babylon.jsengine completa com WebXR de primeira classe (Default XR Experience, teleporte, hit test, mãos prontos)
A-FrameHTML declarativo (<a-scene>); rápido para protótipo e cenas simples; sobre three.js
PlayCanvasengine com editor visual, boa para jogos web e XR
<model-viewer>web component do Google: mostra um glTF e um botão "ver em AR" que aciona Scene Viewer (Android) e Quick Look (iOS, via USDZ) — o caminho mais rápido para "produto na sua sala" sem escrever WebXR
Ver as apostilas Computação Gráfica & Three.js e 3D em Tempo Real & Motion Graphics para Web.

5.3 Progressive enhancement

// esqueleto WebXR com three.js
renderer.xr.enabled = true;
document.body.appendChild(ARButton.createButton(renderer, {
  requiredFeatures: ['hit-test'], optionalFeatures: ['dom-overlay', 'anchors']
}));
renderer.setAnimationLoop((t, frame) => {
  if (frame) {
    // obter hit test, atualizar retículo, etc.
  }
  renderer.render(scene, camera);
});
💼 Mercado de trabalho

Perguntas de front-end: "Como se entra numa sessão WebXR?" (navigator.xr.requestSession após isSessionSupported, disparado por gesto; loop com session.requestAnimationFrame, renderizar por view), "O que são reference spaces?" (local-floor, bounded-floor, viewer…), "Como fazer 'ver em AR' de um produto rápido?" (<model-viewer> + glTF + USDZ; Scene Viewer/Quick Look), "three.js puro ou React Three Fiber?" (controle vs DX declarativo; R3F + @react-three/xr para produtividade).

✏️ Exercício 5 — Visualizador de produto AR

Um e-commerce quer "veja este móvel na sua casa". Descreva a solução para o alcance máximo (iOS + Android + desktop), o que cada plataforma usa, os assets necessários, e o fallback.

Gabarito (uma boa resposta): usar <model-viewer>: um glTF/GLB otimizado para a visualização 3D interativa na página (funciona em desktop e mobile, girar/zoom), e um USDZ equivalente para o "ver em AR" do iOS (Quick Look). No Android, o botão AR aciona o Scene Viewer com o mesmo glTF (via ARCore). No iOS, aciona o Quick Look com o USDZ. Assets: modelo em escala real (metros), materiais PBR, texturas comprimidas (KTX2), < alguns MB; gerar o USDZ a partir do glTF no pipeline. Fallback: em navegador/dispositivo sem AR, o usuário ainda tem o 3D interativo na página; o botão "ver em AR" só aparece quando canActivateAR é verdadeiro. Para uma experiência AR mais rica (medir a parede, trocar acabamento no lugar), aí sim WebXR com hit test — mas o model-viewer cobre 90% do valor com 5% do esforço.

MÓDULO 06 · INTERMEDIÁRIO

Assets 3D e performance para XR

Objetivo: formatos (glTF, USDZ), pipeline de otimização, e os orçamentos de performance brutais do XR (renderiza 2× por olho, a 90 fps).

6.1 Formatos

6.2 Pipeline de otimização

6.3 Os orçamentos

RestriçãoPor quê
Renderiza 2× por frameuma vez por olho — dobra o custo de tudo
90 fps (piso) = ~11 ms por framepara os dois olhos; margem apertadíssima
Draw callso gargalo mais comum; alvo baixo (dezenas a poucas centenas em standalone)
Fill rate / overdrawtelas de alta resolução por olho; transparências empilhadas matam
GPU standalone (Quest)é um chip móvel; pense "console portátil", não PC
⚠️ Erros de performance em XR

Importar um modelo de arquiteto de 5M de polígonos "só para ver". Texturas 4K PNG. Dezenas de materiais únicos. Luz dinâmica e sombras em tudo. Transparências sobrepostas (partículas, glass). Testar só no editor/desktop e "otimizar depois". Ignorar foveated rendering. Não usar LOD. Postprocessing pesado (bloom, DOF) num chip móvel.

💼 Mercado de trabalho

Perguntas: "glTF ou USDZ?" (glTF/GLB para web e engines; USDZ para Quick Look da Apple, gerado a partir do glTF), "Por que o orçamento de performance de XR é tão apertado?" (renderiza 2× por olho, 90 fps = ~11 ms, chip móvel no standalone), "Como otimizar um asset para XR?" (reduzir polígonos, Draco/Meshopt, KTX2, poucos materiais, luz assada, LOD, instancing), "O que é foveated rendering?".

✏️ Exercício 6 — Otimize a cena

Um cliente entregou um modelo de showroom para VR: 8M de polígonos, 30 texturas 4K PNG, 60 materiais, todas as luzes dinâmicas com sombra. Roda a 22 fps no Quest. Faça o plano de otimização em ordem de impacto.

Gabarito (uma boa resposta): (1) geometria: retopo/decimate para um alvo realista (centenas de milhares, não milhões), LODs, remover o que nunca é visto; Meshopt/Draco na exportação. (2) iluminação: bake toda a luz estática em lightmaps; deixar 0–2 luzes dinâmicas no máximo, sombras só onde essencial (ou sombras assadas / blob shadows). (3) materiais: consolidar 60 → poucos, com atlas de textura; instancing nos objetos repetidos (cadeiras, luminárias) → derruba draw calls. (4) texturas: 4K PNG → KTX2/Basis em resolução adequada (1–2K no que é grande, menos no resto). (5) habilitar foveated rendering, culling agressivo, static batching. (6) tirar postprocessing pesado. Medir no Quest a cada passo; alvo estável de 72/90 fps antes de adicionar qualquer detalhe de volta.

MÓDULO 07 · AVANÇADO

Plataformas nativas e o ecossistema

Objetivo: visionOS, Meta/Quest, Android XR, OpenXR e Unity/Unreal — o que cada um é e quando escolher nativo vs Unity vs WebXR.

7.1 visionOS (Apple)

7.2 Meta / Quest

7.3 Android XR

7.4 OpenXR e o caminho multiplataforma

7.5 Nativo × Unity × WebXR

EscolhaQuando
Nativo (visionOS / Meta Spatial SDK / Jetpack XR)uma plataforma-alvo, quer o melhor da UX e da integração do sistema, app "produtividade/utilidade" mais que jogo
Unity / Unrealmultiplataforma (Quest + PC VR + Android XR), jogo ou simulação 3D pesada, time já domina a engine
WebXRalcance sem loja, distribuição por link, "ver em AR" de e-commerce, protótipo, integrar num site existente; aceita as limitações de performance e API da web
model-viewersó "ver produto em AR" no celular — o mínimo esforço
💼 Mercado de trabalho

Perguntas: "O que compõe um app visionOS?" (SwiftUI + RealityKit + ARKit + Reality Composer Pro; Shared vs Full Space), "Como se desenvolve para Quest?" (Unity/Unreal + Meta XR SDK; ou Spatial SDK em Kotlin; ou WebXR no browser), "O que é OpenXR?" (padrão comum de runtime XR → portabilidade), "Nativo, Unity ou WebXR — como decidir?" (uma plataforma e melhor UX → nativo; multiplataforma/jogo → Unity; alcance sem loja/e-commerce/protótipo → WebXR).

✏️ Exercício 7 — Escolha a plataforma

Para cada projeto, recomende nativo, Unity/Unreal ou WebXR (e por quê): (a) um treinamento de segurança para operários, a ser usado em Quest 3 nas fábricas; (b) uma feature de "meça e visualize a reforma na sua sala" para o app iOS de uma loja de materiais; (c) um jogo de ritmo para vender na Meta Store e na Steam VR; (d) um configurador 3D de carros no site da montadora.

Gabarito (uma boa resposta): (a) Unity + Meta XR SDK — Quest-alvo único mas simulação 3D interativa com física e cenários; a engine acelera; publicar via Meta (ou distribuição empresarial). (b) nativo iOS (ARKit + RealityKit) dentro do app existente — melhor integração, Quick Look/USDZ para o resultado; ou WebXR se precisar rodar fora do app. (c) Unity ou Unreal — multiplataforma (Meta Store + SteamVR), jogo, precisa de performance e das ferramentas de engine. (d) WebXR (three.js/R3F ou Babylon) + model-viewer para o "ver em AR" — no site, sem loja, alcance máximo; o 3D interativo funciona em desktop e o AR no celular.

MÓDULO 08 · AVANÇADO

Recursos espaciais avançados

Objetivo: usar a sala real (plane/mesh detection), occlusion, anchors persistentes e compartilhadas, multiusuário colocalizado, passthrough/privacidade e spatial audio.

8.1 Scene understanding

8.2 Occlusion

8.3 Anchors persistentes e compartilhadas

8.4 Multiusuário

8.5 Passthrough, câmera e privacidade

8.6 Spatial audio

💼 Mercado de trabalho

Perguntas: "O que é occlusion em MR e como se faz?" (objetos reais tapam virtuais; via depth do dispositivo escrito no depth buffer), "O que é um shared spatial anchor?" (duas pessoas na mesma sala veem o mesmo objeto no mesmo lugar — colocalização), "O que o visionOS não deixa o app acessar?" (câmera crua, mapa detalhado da sala, ponto exato do olhar — só o alvo resolvido), "Por que spatial audio importa?" (presença + direção de atenção).

✏️ Exercício 8 — Revisão de design multiusuário

Uma construtora quer que 4 pessoas (2 na mesma sala, 2 remotas) revisem o modelo 3D de um apartamento em escala real, apontando e comentando. Descreva os recursos espaciais que você usaria e os desafios.

Gabarito (uma boa resposta): Colocalização das 2 presenciais via shared spatial anchors — as duas veem o modelo do apê ancorado no mesmo ponto da sala; occlusion e scene understanding para o modelo conviver com o espaço real. Os 2 remotos entram num espaço compartilhado (SharePlay/sessão própria) representados por avatares/personas, com sincronização de posição e de laser pointers/comentários. Comentários como anchors 3D fixos no modelo (uma nota "vão de 90 cm aqui" presa à parede virtual), persistentes entre sessões. Spatial audio para saber quem está falando de onde. Desafios: sincronização de estado e latência (mesmo problema de netcode de jogo — autoridade sobre o modelo, interpolação dos avatares); cross-platform de anchors (se uns usam Quest e outros Vision Pro); performance do modelo 3D pesado a 90 fps (otimizar — Módulo 6); alinhar a escala e a origem entre presenciais e remotos; permissões de scan da sala.

MÓDULO 09 · MUITO AVANÇADO

Produção, negócio e ética

Objetivo: os casos que pegam vs os que não, distribuição e custo, QA em XR, acessibilidade a fundo, e a privacidade extrema do XR.

9.1 Casos que realmente pegam

9.2 Distribuição e custo

9.3 QA em XR

9.4 Acessibilidade em XR

9.5 Privacidade extrema

9.6 Uso responsável

💼 Mercado de trabalho

Perguntas: "Que casos de XR têm ROI real hoje?" (treinamento/simulação, design review 3D, campo/manutenção AR, telepresença, saúde, varejo AR mobile — não "substituir o monitor"), "O que muda no QA de um app XR?" (conforto como caso de teste, matriz de dispositivos, ambientes reais, frame rate, sentado/de pé/alturas), "Por que eye tracking é um problema de privacidade?" (revela atenção/intenção/estado, é biométrico — por isso o visionOS não expõe ao app), "Que acessibilidade um app XR precisa?" (modos de conforto, sentado, sem mãos, legendas espaciais, magnificação, redundância visual).

✏️ Exercício 9 — Plano de produto e ética

Uma empresa de logística quer um app de treinamento de operação de empilhadeira em VR (Quest 3), para funcionários internos. Liste: por que XR faz sentido aqui, o plano de QA e acessibilidade, os cuidados de dados/privacidade, e um risco do projeto.

Gabarito (uma boa resposta): Por que XR: praticar manobras e situações de risco (quase-colisões, carga instável) sem uma empilhadeira real, sem risco físico, repetível, com métricas objetivas (tempo, erros, checklist) — ROI de treinamento é o caso mais forte de XR. QA: testar conforto com dezenas de operadores em sessões de 20–30 min (a locomoção da empilhadeira é o risco de enjoo — velocidade constante, vignette, opção de teleporte entre estações); matriz Quest 2/3/3S; testar de pé e sentado (a cabine), com óculos, canhotos; frame rate travado a 72/90. Acessibilidade: modo sentado, opções de conforto ligadas por padrão, legendas para as instruções faladas, alto contraste, não depender só de spatial audio para alertas (buzina + visual). Dados/privacidade: os dados de desempenho são de RH — consentimento, finalidade clara (treinamento, não punição arbitrária), retenção definida, sem eye tracking para avaliar "atenção" do funcionário (invasivo e provavelmente ilegal); LGPD. Risco: transferência para o mundo real — o treinamento em VR precisa ser validado (o operador que passou no VR opera bem a empilhadeira de verdade?); e adoção (headset é fricção — logística de higienização, carga, suporte na operação).

MÓDULO 10 · CARREIRA

Mercado de trabalho: roadmap, entrevistas e portfólio

Objetivo: converter o conteúdo dos módulos em contratação — onde a habilidade é usada, um plano de estudo, um banco de perguntas e projetos que geram entrevista.

10.1 Onde XR pesa

10.2 Roadmap de estudo (6–8 semanas)

SemanasFocoPrática
1Vocabulário, conforto (Módulos 1–2)Se possível, usar 3–4 apps de referência num headset e anotar o que enjoa/cansa/funciona
2Interação e UI espacial (Módulos 3–4)Redesenhar um app 2D seu para o espaço no papel/Figma; decidir Windows vs Volume, âncoras, alvos
3WebXR (Módulo 5)Uma cena com three.js + WebXR: entrar em AR, hit test, pousar um objeto; testar no Quest/Android
4Assets e performance (Módulo 6)Otimizar um modelo do Blender para glTF (Draco, KTX2, LOD) e medir draw calls/fps no device
5Nativo (Módulo 7)Um "hello spatial" em visionOS (SwiftUI + RealityKit) ou em Unity + Meta XR SDK
6Recursos avançados (Módulo 8)Adicionar occlusion e um persistent anchor à cena WebXR; experimentar spatial audio
7–8Produção, ética, portfólio (Módulo 9)Escrever os estudos de caso com o raciocínio de conforto, performance e ética

10.3 Banco de perguntas (com a resposta que aprova)

Júnior/pleno — "Por que se enjoa em VR e como você mitiga?"

Conflito sensorial: os olhos veem movimento que o vestibular não sente; vection e latência alta pioram. Mitigações: manter o frame rate (72–120 Hz, nunca cair), preferir teleporte a locomoção suave, e quando usar suave: velocidade constante, sem aceleração, com vignette nas bordas; snap turn em vez de rotação suave; oferecer as opções e assumir o preset confortável.

Pleno — "3DoF vs 6DoF; world-locked vs head-locked."

3DoF rastreia só rotação (olhar em volta); 6DoF rastreia rotação e translação (andar) — o padrão atual. World-locked: o conteúdo fica fixo no mundo real — o padrão confortável para janelas e objetos. Head-locked: gruda na visão — enjoa e incomoda, use quase nunca. Body/lazy-follow para menus que acompanham sem colar na cara.

Pleno — "Como funciona a interação no Vision Pro?"

Olhar + pinça: você olha o elemento (o sistema o destaca) e junta polegar e indicador para ativar; a mão pode ficar no colo. O app recebe eventos de "tap" já resolvidos e não tem acesso ao ponto exato do olhar (privacidade). Scroll e manipulação com a mão pinçada movendo.

Pleno/front-end — "Como se faz 'ver em AR' de um produto na web?"

<model-viewer> com um glTF/GLB (3D interativo na página, desktop e mobile) e um USDZ equivalente; o botão AR aciona Scene Viewer no Android (ARCore) e Quick Look no iOS. Sem escrever WebXR. Fallback: sem AR, fica o 3D na página. Para AR mais rico (medir, trocar acabamento no lugar), aí WebXR com hit test.

Pleno/artist — "Por que o orçamento de performance de XR é tão apertado?"

Renderiza duas vezes por frame (um olho cada), com alvo de 90 fps (~11 ms para os dois), muitas vezes num chip móvel (Quest standalone). Draw calls e overdraw são os gargalos. Otimiza-se com menos polígonos, Draco/Meshopt, KTX2, poucos materiais, luz assada, LOD, instancing, culling e foveated rendering — e testando no device, não no desktop.

Sénior — "Nativo, Unity ou WebXR?"

Nativo (visionOS/Meta Spatial SDK/Jetpack XR) para uma plataforma-alvo com a melhor UX e integração de sistema, apps de utilidade. Unity/Unreal para multiplataforma (Quest + PC VR + Android XR) e jogos/simulação 3D pesada. WebXR para alcance sem loja, e-commerce, integração num site, protótipos — aceitando os limites de API e performance da web. model-viewer para o mínimo "ver produto em AR".

Sénior — "Que preocupações de privacidade o XR traz?"

Eye tracking (atenção, intenção, estado cognitivo — biométrico; o visionOS não expõe ao app por isso), o mapa 3D da casa e dos móveis, expressões faciais/corpo para avatares, e a câmera de passthrough (que capta terceiros). Tratar tudo como dado sensível: consentimento explícito, minimização, sem perfilamento/publicidade, retenção curta — e ciente de que a regulação ainda está alcançando essas categorias.

Armadilha — "É só portar a UI 2D para dentro do headset"

Colar o dashboard head-locked na frente do usuário enjoa e incomoda; contraste não se garante sobre o passthrough; alvos de 2D são pequenos demais para a mira que treme; texto fino some. UI espacial exige world-locking, painéis com material próprio, tamanho angular generoso, layout curvo e a maior parte do conteúdo em janelas — e só ir para 3D onde profundidade e espaço agregam.

10.4 Projetos de portfólio que geram entrevista

  1. Experiência WebXR (âncora): uma cena AR com hit test (pousar objeto numa superfície), occlusion (depth), um persistent anchor e spatial audio — three.js/R3F, testada no Quest e no Android, com fallback 2D.
  2. App nativo "hello spatial": um visionOS (SwiftUI + RealityKit) ou Quest (Unity + Meta XR SDK) com uma janela + um volume 3D + interação por mãos/olhar, e o raciocínio de conforto.
  3. Visualizador de produto AR: model-viewer + glTF otimizado + USDZ, integrado numa página de e-commerce fake, com o pipeline de asset documentado (Blender → Draco/KTX2 → USDZ).
  4. Estudo de conforto: a mesma cena com locomoção suave vs teleporte vs vignette, com relato de teste com 5 pessoas.
  5. UI espacial: um app 2D redesenhado para o espaço, com os três tipos de âncora demonstrados e a justificativa de cada escolha.

10.5 Fontes para continuar

🏁 Síntese final da apostila

Cinco ideias sustentam spatial computing: (1) conforto e 90 fps são requisitos de entrada — o que enjoa ou trava falhou; (2) interação por mãos, olhar e voz com alvos grandes (tamanho angular), na zona ergonômica, com feedback multi-canal; (3) UI espacial ≠ UI 2D colada na cara — world-locking, painéis com material próprio, comece com janelas e suba para 3D só onde profundidade agrega; (4) WebXR (three.js/R3F) e model-viewer para alcance sem loja; Unity/OpenXR para multiplataforma; nativo para a melhor UX de uma plataforma; (5) os orçamentos de performance são brutais (2× por olho, chip móvel) e o XR traz privacidade e acessibilidade de outra ordem (eye tracking biométrico, conforto como a11y).