Guia de arte por voz, feito pela Unflat Studio. Você aponta a câmera — do iPhone ou dos óculos Ray-Ban Meta — pra uma obra, e a Mira conta a história dela e conversa com você. Em português, em tempo real.
Primeiro app de uma família construída sobre a mesma base: visão computacional + voz conversacional + smart glasses.
mira/
├── ios/ # App iOS (Swift 6, SwiftUI, iOS 17+)
│ ├── Mira/ # App target: telas + composition root
│ └── MiraKit/ # Package local com 7 targets:
│ ├── MiraCore # Domínio puro: modelos, protocolos, pipeline, orquestração (zero deps)
│ ├── CaptureKit # Câmera do iPhone
│ ├── GlassesKit # Ray-Ban Meta (DAT SDK) — único lugar que importa MWDAT
│ ├── VisionPipelineKit # Identificação de obra via backend
│ ├── VoiceKit # ElevenLabs — único lugar que importa o SDK
│ ├── MiraBackend # Supabase client, catálogo offline-first, token broker
│ └── MiraDesignSystem # Tokens + componentes "warm editorial"
├── backend/ # Supabase: migrations, edge functions (TS/Deno), import scripts
└── packages/contracts/ # Contratos compartilhados (DTOs TS + fixtures; iOS espelha em Codable)
O app nunca carrega chave de API: edge functions no Supabase (sa-east-1) fazem o brokering do token de voz do ElevenLabs e proxy da visão do Gemini; áudio/WebRTC vai direto do app pro ElevenLabs; o conteúdo curatorial mora no Postgres (CMS via Supabase Studio) e chega ao agente inline nos contextual updates.
Abstrações centrais em MiraCore — trocar de motor de voz (TTS próprio no futuro) ou de óculos (plataformas abertas) é trocar um adapter:
VoiceEngine— ElevenLabs hoje; Kokoro pt-BR / Gemini Live depoisGlassesProvider— Ray-Ban Meta hoje; Mentra/outros depoisVisionPipeline— Gemini 2.5 Flash via edge function
# iOS — testes de domínio rodam no macOS, sem simulador
cd ios/MiraKit && swift test
# iOS — gerar o projeto Xcode (XcodeGen)
cd ios && xcodegen generate
# Backend — dev local
cd backend && supabase start
deno task testO modo Óculos usa o Meta Wearables DAT SDK, que ainda não pode ir pra App Store (restrição MFi da Apple até o GA da Meta, previsto pro fim de 2026). Até lá: TestFlight interno. O modo Celular não tem restrição.