🚀 Auto-deploy: melhoria no snap e medição AR em 31/05/2026 01:08:46

This commit is contained in:
2026-05-31 01:08:46 +00:00
parent 37bac18534
commit 6372047b9d
9 changed files with 192 additions and 10 deletions
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 191 KiB

+2
View File
@@ -7,6 +7,8 @@
<title>TrackSteelXR</title> <title>TrackSteelXR</title>
<meta name="description" content="VR tool inspection industrial Q.C."> <meta name="description" content="VR tool inspection industrial Q.C.">
<meta name="author" content="Lovable" /> <meta name="author" content="Lovable" />
<link rel="icon" type="image/png" href="/iconeXR_transparente.png" />
<link rel="shortcut icon" href="/favicon.ico" type="image/x-icon" />
<!-- TODO: Update og:title to match your application name --> <!-- TODO: Update og:title to match your application name -->
Binary file not shown.

After

Width:  |  Height:  |  Size: 281 KiB

+49
View File
@@ -0,0 +1,49 @@
from PIL import Image
import numpy as np
def remove_black_background(img_path, out_path):
# Carregar imagem e garantir modo RGBA
img = Image.open(img_path).convert("RGBA")
data = np.array(img)
# Extrair canais
r, g, b, a = data[:,:,0], data[:,:,1], data[:,:,2], data[:,:,3]
# O alpha original é estimado pelo valor máximo dos canais R, G, B
# Isso funciona porque o fundo é preto (0,0,0)
# Usamos fmax para obter o valor float e evitar overflow/underflow
max_rgb = np.fmax(np.fmax(r, g), b)
# Criar nova imagem com o mesmo tamanho
new_data = np.zeros_like(data)
# O novo alpha é o valor máximo de R, G, B
new_alpha = max_rgb.astype(np.uint8)
# Onde new_alpha é maior que zero, desmultiplicamos a cor para remover o halo preto
mask = new_alpha > 0
# Copiar canais
new_data[:,:,0] = r
new_data[:,:,1] = g
new_data[:,:,2] = b
new_data[:,:,3] = new_alpha
# Aplicar unmultiplying alpha para clarear os pixels semi-transparentes de borda
# R_new = R_old * 255 / alpha
alpha_float = new_alpha.astype(float)
for i in range(3):
channel = data[:,:,i].astype(float)
# Onde a máscara for verdadeira, calcula. Onde for falsa, deixa zero.
adjusted = np.zeros_like(channel)
adjusted[mask] = np.minimum(255, (channel[mask] * 255.0 / alpha_float[mask]))
new_data[:,:,i] = adjusted.astype(np.uint8)
# Salvar a nova imagem
out_img = Image.fromarray(new_data, "RGBA")
out_img.save(out_path, "PNG")
print(f"Processada: {img_path} -> {out_path}")
if __name__ == "__main__":
remove_black_background("logotipo_steelXR.png", "public/logotipo_steelXR_transparente.png")
remove_black_background("iconeXR.png", "public/iconeXR_transparente.png")
Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 152 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 330 KiB

+14 -10
View File
@@ -211,19 +211,23 @@ const Index = () => {
{/* Logo area */} {/* Logo area */}
<div className="mb-8 text-center"> <div className="mb-10 flex flex-col items-center justify-center w-full">
<div className="mb-4 flex items-center justify-center gap-3"> <div className="relative flex items-center justify-center max-w-[280px] md:max-w-[320px] w-full px-4">
<Box className="h-10 w-10 text-primary" /> <img
<h1 className="text-3xl font-bold tracking-tight text-foreground md:text-4xl"> src="/logotipo_steelXR_transparente.png"
TrackSteel<span className="text-primary">XR</span> alt="SteelXR Logo"
</h1> className="w-full h-auto object-contain drop-shadow-[0_0_20px_rgba(251,191,36,0.18)]"
<Button variant="ghost" size="icon" className="ml-2" onClick={() => setShowLanding(!showLanding)} title="Sobre"> />
<Button
variant="ghost"
size="icon"
className="absolute -right-8 md:-right-10 top-1/2 -translate-y-1/2 text-muted-foreground hover:text-foreground hover:bg-transparent"
onClick={() => setShowLanding(!showLanding)}
title="Sobre"
>
<Info className="h-5 w-5" /> <Info className="h-5 w-5" />
</Button> </Button>
</div> </div>
<p className="font-mono text-sm uppercase tracking-widest text-muted-foreground">
Inspeção de Qualidade Industrial
</p>
</div> </div>
{showLanding && <LandingContent />} {showLanding && <LandingContent />}
+127
View File
@@ -0,0 +1,127 @@
# TrackSteelXR — Descritivo Publicitário para Landing Page
---
## Título de Alto Impacto
**Inspeção de obras em tempo real com Realidade Aumentada: meça, valide e decida — sem sair do canteiro.**
---
## 3 Benefícios Principais
### 1. Medições Precisas em AR com Snap Inteligente
Vertex snap, detecção automática de arestas e furos em modelos IFC. O controlador XR identifica automaticamente vértices, arestas e furos — medições em milímetros reais sem trena ou cálculos manuais. Após 1 segundo de focalização, a medição é registrada automaticamente (dwell detection).
### 2. Inspeção por Checklist Digital com Gravação de Voz
Elimine planilhas de papel. Faça inspeções de qualidade diretamente no modelo 3D, com aprovação ou reprovação de cada item, anotações por texto e gravação de voz — tudo rastreável e auditável. Relatório PDF completo gerado em segundos.
### 3. Cortes de Seção Interativos para Análise Estrutural
Visualize o interior de estruturas metálicas com cortes dinâmicos nos eixos X, Y e Z — sem desmontar nada. Ideal para validar projetos complexos antes da montagem.
---
## Análise Resumida de Todos os Recursos
### Visualização 3D e Realidade Aumentada
- Renderização de modelos IFC nativamente via web-ifc (WASM)
- Suporte a Meta Quest com controle por gatilho (trigger), botões A/B e snap toggle
- Laser visual colorido que indica tipo de snap (verde=aresta, âmbar=furo, azul=vértice)
- Modo Perspective e Orthographic comutável sem perda de enquadramento
- Walk mode em primeira pessoa com teclado (WASD + Q/E para elevação)
- Grid infinito auto-follow que se ajusta à posição Y da peça
### Sistema de Medição
- Snap inteligente a vértices, arestas e centros de furos circulares
- Detecção automática de furos por circle-fit em geometria e por face
- Hover label mostra diâmetro de furo ou comprimento de aresta em tempo real
- Lock-on a alvos para medição contínua com interpolação suave
- Dwell detection: 1 segundo de focalização registra medição automaticamente
- Suporte a Undo/redo com teclas Z e Escape
### Inspeção e Checklist
- Checklist por item com status: Pendente, Aprovado, Reprovado
- Anotações em texto livre por item
- Gravação de voz por item (MediaRecorder API com áudio WebM)
- Barra de progresso visual e contadores por status
- Reset completo do checklist
### Cortes de Seção
- Cortes independentes nos eixos X, Y e Z
- Slider de posicionamento com range dinâmico (baseado nos limites reais da peça)
- Inversão de direção do corte por eixo
- Botões de atalho: Min, Centro, Max
- Opacidade configurável da janela de corte
### Calibração e Posicionamento
- Calibração em 3 pontos para alinhamento com referência real
- Ajuste fino de posição (X, Y, Z) e rotação (X, Y, Z) por modelo
- Suporte a múltiplos modelos simultâneos com controles independentes
- Exportação de seleção para GLB
### Relatórios e Compartilhamento
- Relatório PDF completo com: info do modelo, ajustes finos, checklist, medições e screenshots
- Screenshots da cena 3D com anotações
- Compartilhamento via WebRTC (broadcast/source com signaling)
- Logging remoto para diagnóstico
---
## Diferenciais do Mercado Concorrente
| Concorrentes Tradicionais | TrackSteelXR |
|---------------------------|--------------|
| Software de escritório (AutoCAD, Revit) | Visualização **no canteiro** em AR |
| Trena e planilha manual | **Snap inteligente** que identifica geometria automaticamente |
| Relatório em papel ou Excel | **PDF automático** com evidências visuais |
| Medição por estimativa | **Milímetros reais** com calibração |
| Acesso restrito a profissionais | **XR controller** — mãos livres, mobilidade total |
| Sem suporte a IFC | **web-ifc WASM** nativo para IFC direto |
| Checklists em papel | **Checklist digital** com voz, texto e status |
| Sem cortes dinâmicos | **Cortes interativos** X/Y/Z em tempo real |
---
## Inovações Tecnológicas
1. **Pipeline IFC → WebGL nativo**: Parsing de arquivos IFC (IFC2x3, IFC4) via web-ifc (WASM), conversão em Three.js sem servidor — roda 100% no browser.
2. **Smart Snap 3D com dwell detection**: O sistema detecta automaticamente vértices, arestas e furos circulares por raycasting + geometria. Após 1 segundo de focalização, a medição é registrada automaticamente — zero cliques desnecessários.
3. **XR Controller com laser visual colorido**: Meta Quest integrado com laser que muda de cor conforme o tipo de snap (verde=aresta, âmbar=furo, azul=vértice), snap toggle por gatilho esquerdo, medição por gatilho direito, undo/clear por botões A/B.
4. **Section cuts em tempo real com clipping planes**: Utiliza THREE.Plane clipping para cortes per-model, com range dinâmico calculado a partir dos bounds reais da peça.
5. **Relatório PDF com evidências visuais**: jsPDF gera documento completo com screenshots da cena 3D, checklist com status coloridos e tabela de medições — em uma única ação.
6. **WebRTC broadcast para colaboração remota**: Sinalização + broadcast/source para compartilhar a visão AR com outros participantes em tempo real.
7. **Calibração por 3 pontos com quaternions**: Sistema de calibração que captura 3 pares de normais (world + local) e calcula o quaternion de alinhamento para posicionar o modelo no espaço real.
8. **Walk mode com física de colisão simples**: Navegação em primeira pessoa com detecção de limites da peça para orientação no espaço 3D.
---
## Benefícios Incontestáveis
- **Elimina retrabalho**: Validação dimensional no canteiro antes da montagem — erros corrigidos na hora, não no escritório.
- **Precisão em milímetros**: Snap inteligente a geometria real do modelo IFC — não há estimativas, há dados.
- **Rastreabilidade total**: Cada item do checklist tem status, nota, áudio e timestamp. Relatório PDF serve como documento de entrega ao cliente.
- **Mobilidade sem precedentes**: Meta Quest + controllers = profissionais com as mãos livres para manusear a peça enquanto inspecionam.
- **Zero dependência de servidor**: IFC roda no browser via WASM. Sem backend, sem instalação — um link funciona.
- **Decisões em segundos**: Dwell detection registra medições automaticamente. O operador olha, focaliza 1 segundo, e o dado está salvo.
- **Validação visual antes da compra**: Cliente vê o relatório com screenshots e sabe exatamente o que está comprando.
---
## Parágrafo Final — A Dor da Gestão
Atrasos por erros de medição, retrabalho por falhas de comunicação e perdas por não conformidade são o pesadelo de qualquer gestão de produção metalmecânica ou obra civil. O **TrackSteelXR** coloca o modelo 3D IFC no canteiro — em Realidade Aumentada — para que engenheiros e gestores tomem decisões precisas no momento certo. **Menos retrabalho, mais produtividade, entregas dentro do prazo.** E um relatório PDF com evidências visuais que transforma inspeção em documento de entrega.
**Seu próximo projeto já pode começar com a certeza de que cada peça foi validada — não por planilha, mas por realidade.**