feat: initial commit - Carinha Control Panel v1.0 com UI glassmorphism, watch-bar, emojis, braco robotico e conversa IA

This commit is contained in:
julio
2026-10-05 16:21:57 -03:00
commit 8217292893
114 changed files with 13145 additions and 0 deletions
+22
View File
@@ -0,0 +1,22 @@
# Rosto e mãos no PC — versão 0.5
Abra o painel, ligue a transmissão e mantenha a aba aberta. Os quatro controles sob o vídeo começam habilitados: **Rastrear rosto**, **Rastrear mãos**, **Olhos acompanharem o alvo** e **Mostrar rastreamento no vídeo**. Desmarcar as marcações mantém a detecção; desmarcar o acompanhamento mantém a visualização. Desligar ambos os rastreadores encerra o processamento.
Azul indica a caixa e pontos principais do rosto; verde mostra os 21 pontos e conexões das mãos; amarelo indica o alvo. Mãos têm prioridade sobre rosto. Com múltiplos candidatos, mantém o candidato próximo ao alvo anterior. O painel exibe quantidade de detecções, frequência de análise e tempo de inferência. Não reconhece identidade nem interpreta gestos como comandos.
O PC usa MediaPipe em Web Worker com um quadro reduzido até 640 pixels de largura por vez, sem fila acumulada. Frequência adaptativa até 20 análises/s. Modelos, JS e WASM são locais: `vendor/mediapipe`, runtime `@mediapipe/tasks-vision` 0.10.32. `obter-rastreamento.py` permite obter os mesmos artefatos oficiais novamente; `PROVENIENCIA.json` registra URLs, versão, integridade npm e hashes. A execução não envia imagens à internet. CPU, distância, iluminação, imagem recebida e resolução influenciam a detecção.
Alvo normalizado via DataChannel WebRTC não ordenado e sem retransmissões, validado nas pontes JS e Java. Sequência crescente evita aceitar pacotes fora de ordem; alvo expira após 350 ms. Nenhum alvo passa pela fila de gestos HTTP. Sem detecção, sem painel ou sem vídeo, segue o detector simples no celular. A câmera desligada globalmente ou durante sono impede o rastreamento. Presença estática não força despertar nem mantém o rosto acordado; movimento real do alvo conta como atividade. Mantidos os controles de reação aos sons/movimento.
Detector simples: leitura a cada quadro novo (~33 ms quando a câmera permite), aquecimento de três quadros e resposta dos olhos de 65% por amostra. Movimento breve segura a posição por 200 ms para não oscilar ao centro entre quadros. A câmera ainda precisa fornecer quadros e a rede/encoder ainda acrescentam atraso. Combinações de câmera indisponíveis voltam efetivamente à qualidade automática, incluindo adaptação de bitrate/resolução.
## Validação
- 12 testes HTTP: persistência e controles independentes, além dos recursos anteriores.
- Node: prioridade do alvo, ajuste de coordenadas às barras do vídeo, validação e expiração; adaptação de qualidade.
- Chromium: inferência real encontrou um rosto e duas mãos em imagens de referência Google; os pontos foram renderizados e conferidos visualmente. Teste bloqueou acessos externos durante execução.
- Chromium: acompanhamento em uma amostra, perda de alvo liberando detector simples, sono respeitado, toggles e layout desktop/mobile.
- WebRTC real entre páginas Chromium com câmera simulada: ~30 FPS, transporte de alvo e limpeza via DataChannel, seleção de qualidade, fallback e reconexão.
- APK 0.5: build e assinatura verificados. Medição final de atraso no S10 com a mão do usuário ainda depende do teste físico.
Fontes: [Hand Landmarker Web](https://developers.google.com/edge/mediapipe/solutions/vision/hand_landmarker/web_js), [Face Detector Web](https://developers.google.com/edge/mediapipe/solutions/vision/face_detector/web_js). Imagens de referência usadas nos testes: `https://storage.googleapis.com/mediapipe-assets/portrait.jpg` e `https://storage.googleapis.com/mediapipe-assets/right_hands.jpg`, guardadas em `work/tracking-fixtures`.