Files
SteelXR/.lovable/plan.md
T
gpt-engineer-app[bot] d8b085e5bd Changes
Co-authored-by: Reifonas <211114984+Reifonas@users.noreply.github.com>
2026-05-18 20:45:39 +00:00

2.4 KiB

Contexto

O grid vermelho/azul que aparece perto de paredes/objetos é o Space Sense / Guardian do Quest 3 — renderizado pelo runtime da Meta, não pelo app. O app não consegue desligá-lo por código. Porém, a sensibilidade desse sistema aumenta quando a WebXR session pede features como mesh-detection, depth-sensing, anchors, etc. Hoje o app usa createXRStore({...}) sem lista explícita de features, então a lib @react-three/xr solicita o conjunto default — que inclui várias features que não usamos.

O que vou fazer (Onda 2, sem quebrar nada)

Auditoria do createXRStore em src/pages/XRSession.tsx para pedir só o que realmente usamos:

  • Manter (usado):
    • hit-test — usado por XRHitTestPlacement
    • plane-detection — usado por XRHitTestPlacement (snap) e XRPlaneOverlay
    • local-floor — reference space padrão
    • hand-tracking — usado
  • Remover do request (não usado):
    • mesh-detection — não há leitor de meshes no código
    • anchors — não criamos âncoras persistentes
    • depth-sensing — não usado
    • light-estimation — não usado

Configuração proposta (passada para createXRStore):

const store = createXRStore({
  hand: { left: true, right: true },
  controller: { left: true, right: true },
  sessionInit: {
    requiredFeatures: ['local-floor'],
    optionalFeatures: ['hit-test', 'plane-detection', 'hand-tracking'],
  },
});

Tudo continua como optionalFeatures, então se o Quest não suportar algum, a sessão ainda inicia. Nenhuma ferramenta atual (hit-test, snap em planos, mãos, grip, joystick, medição, screenshot, inspeção, compartilhamento) depende das features removidas.

O que NÃO faço

  • Não mexo em useModelStore, XRHud, XRHudInWorld, XRHitTestPlacement, XRPlaneOverlay — comportamento das ferramentas fica igual.
  • Não adiciono botão de "desligar Guardian" — impossível por código.

Resultado esperado

Reduz a chance de o Space Sense ativar o grid de segurança perto de objetos, porque a sessão XR não pede mais permissões além das necessárias. Se o grid continuar aparecendo, é configuração do headset (Settings → Segurança → Space Sense) e o usuário precisa desligar lá — posso adicionar depois um painel "Ajuda" com o passo-a-passo se quiser.

Arquivo alterado

  • src/pages/XRSession.tsx (apenas o objeto passado para createXRStore)