GoldGuard client progress portal — live capture
01IA Y HARDWARE2026EN DESARROLLO

GOLDGUARD

Inteligencia para joyería. En tiempo real.

Composición horizontal del logotipo de GoldGuard

Un sistema de seguridad de IA + hardware + visión por computadora que convierte las superficies de exhibición de joyería en zonas pesadas de forma continua, de modo que una pieza que sale de una bandeja se convierte en un evento y no en un hallazgo a la hora del cierre.

GoldGuard es una plataforma de inteligencia de inventario físico y prevención de pérdidas en tiempo real para joyerías. Cuatro zonas con celdas de carga bajo una superficie de exhibición alimentan un ADC delta-sigma de 24 bits y un controlador ESP32-S3; el backend ejecuta una cascada de filtros DSP, una máquina de estados de estabilidad, un clasificador de eventos y un motor de correlación entre zonas que reconoce transferencias internas sin pérdida. Los resultados se transmiten por WebSocket a un panel de control en React con roles, enlaces compartidos y un informe matutino.

Un subsistema de visión paralelo añade seguimiento de personas y manos mediante cámara, manteniendo la celda de carga como fuente autoritativa: una asociación incorrecta se degrada a AMBIGUOUS, nunca a una falsa alerta de robo. El repositorio se autoaudita en cuanto a su propio estado: la plataforma de software es funcional y está cubierta por una suite automatizada, la simulación está verificada, el firmware compila para ESP32-S3 y la validación física está explícitamente a la espera del hardware.

01

Visión general

El propio oro es el escudo. GoldGuard convierte cada gramo de una vitrina en datos: pesado de forma continua, clasificado en eventos de negocio, correlacionado entre zonas y entregado a la tienda en tiempo real.

FUNCIONAL
PLATAFORMA DE SOFTWARE
FUENTE · Tabla de estado del README
VERIFICADA
SIMULACIÓN
FUENTE · docs/INTERNAL-STATUS.md
COMPILA · NO FLASHEADO
FIRMWARE
FUENTE · docs/28-HARDWARE-TEST-RESULTS.md
PENDIENTE DE VALIDACIÓN
HARDWARE
FUENTE · Tabla de estado del README
02

Problema

La pérdida de joyería se descubre a la hora del cierre, cuando el recuento no cuadra y nadie puede decir qué bandeja, qué hora ni qué mano. Las cámaras lo graban todo y no explican nada. Una báscula bajo una sola bandeja te dice un peso, no un evento.

Una pieza que sale de una bandeja se convierte en un evento —ITEM_REMOVED, ITEM_ADDED, INTERNAL_TRANSFER, TRAY_REMOVED, TAMPER_EVENT— en lugar de un hallazgo a la hora del cierre.

README de GoldGuard
03

Sistema

  1. 01
    CÁMARAS
    Sensor de visión artificial sobre la vitrina
  2. 02
    VISIÓN
    Cajas de personas · puntos clave de muñeca · región de la mano
  3. 03
    DETECCIÓN
    Censo de bandejas sobre mosaicos a resolución nativa
  4. 04
    BÁSCULA INTELIGENTE
    4 zonas con celdas de carga · ADC de 24 bits · ESP32-S3
  5. 05
    MOTOR DE EVENTOS
    Cascada de filtros · FSM de estabilidad · clasificador · correlación entre zonas
  6. 06
    SEGURIDAD
    RBAC · enlaces compartidos con alcance · WebSocket protegido por token
  7. 07
    DATOS
    PostgreSQL · informe matutino · paquete de evidencias

La capa 1 son los transductores: cuatro celdas de carga de galga extensiométrica de punto único con capacidad de 5 kg por zona, un sensor de temperatura TMP117 y un acelerómetro LIS2DW12 para vibración y manipulación. La capa 2 es el firmware de borde del ESP32-S3, que muestrea a 10–80 Hz por canal con DSP en el dispositivo y una máquina de estados de estabilidad. La capa 3 es un backend de arquitectura limpia —dominio, aplicación, infraestructura, API— con Express, un hub ws y PostgreSQL detrás de un contrato de repositorio con respaldo en memoria.

La canalización de peso es una cascada de rechazo de valores atípicos → mediana móvil → EMA → media móvil, seguida de compensación de deriva, un motor estadístico de estabilidad y un clasificador de eventos. Un motor de correlación entre zonas empareja ΣΔW ≈ 0 entre zonas dentro de una ventana de 1,5 s para reconocer una pieza movida de una bandeja a otra como una transferencia interna, no como una pérdida.

04

Arquitectura

  1. CELDAS DE CARGA ×4
    5 kg / zone
  2. ADC ADS1234 DE 24 BITS
    ganancia 128
  3. FIRMWARE ESP32-S3
    DSP · FSM · cola sin conexión
  4. INGESTA STORE-AND-FORWARD
    guarda de secuencia
  5. MOTOR DE PESO
    filtros · deriva · estabilidad · clasificador
  6. CORRELACIÓN ENTRE ZONAS
    ΣΔW ≈ 0 en 1,5 s
  7. FUSIÓN DE VISIÓN
    identidad portada por la mano · celdas autoritativas
  8. POSTGRESQL
    27 tablas · migraciones
  9. HUB WEBSOCKET
    protegido por token
  10. PANEL · ESCRITORIO · PORTAL
    React · Tauri · Cloudflare

Superficie del repositorio

  • 01backend — API Express, hub ws, motores, migraciones, 36 archivos de test
  • 02frontend/goldguard-dashboard — React 19 + Vite, más de 23 vistas, árabe / hebreo / inglés
  • 03apps/marketing — exportación estática de Next.js, historia de producto en three.js guiada por scroll, 5 idiomas
  • 04apps/desktop — shell Tauri 2 con flujos de publicación para Windows y macOS
  • 05apps/twin-studio + simulator/goldguard-twin — gemelo digital visual y headless
  • 06services/goldguard-vision + goldguard-vision-runtime — dominio de visión en TS puro y runtime ONNX
  • 07services/goldguard-vision/ml — entrenamiento en PyTorch, evaluación y exportación a ONNX
  • 08firmware/goldguard-controller — C++ con ESP-IDF para ESP32-S3
  • 09hardware/cad/fusion360 — scripts paramétricos de Fusion 360; geometría exportada a la web
05

IA y visión

La arquitectura de visión parte de una restricción medida, no de una lista de deseos: en grabaciones de tienda a 3840×2160, un anillo sobre la bandeja tiene una huella mediana de 28 px y, tras el redimensionado a 800 px del detector, queda en 5,8 px frente a un ancla mínima de 32 px. La inferencia sobre el fotograma completo encontró 0 anillos donde 32 mosaicos nativos encontraron 7. Por eso el diseño ejecuta dos flujos —personas y manos sobre un fotograma reducido a 10 Hz, y censo de bandejas sobre mosaicos a resolución nativa condicionado a la presencia de manos— y permite que una pieza herede la identidad de la mano que la transportó.

28 px de mediana
HUELLA DEL ANILLO
FUENTE · REALTIME-VISION-ARCHITECTURE.md §1
7 vs 0
MOSAICOS vs COMPLETO
FUENTE · mismo fotograma, mismo checkpoint
33 mosaicos/s
RENDIMIENTO FP16
FUENTE · RTX 5060 Ti, modo eager
445 + 45
TESTS DE VISIÓN
FUENTE · goldguard-vision · runtime

La identidad individual y continua de ~50 anillos estáticos, en contacto y casi idénticos es una degeneración del problema, no un límite de calidad del modelo. Sigue la mano; deja que la pieza herede la identidad de quien la porta.

REALTIME-VISION-ARCHITECTURE.md §0
06

Diseño

El propio oro es el escudo.

Dos caras de oro enfrentadas forman un escudo con un lingote sobre una plataforma de pesaje en su corazón oscuro. Solo geometría recta, legible desde una valla publicitaria hasta un favicon de 16 px. El cian de sensor se reserva para la medición en vivo dentro del panel de control y se mantiene deliberadamente fuera de la marca.

  • GOLD en #F5F7FA, GUARD en el degradado dorado
  • Inter ExtraBold, espaciado de letras 2,5
  • Corte compacto para 16–31 px, corte mono para grabado
Marca de escudo de GoldGuard
Tarjeta social de GoldGuard — Inteligencia para joyería. En tiempo real.
Composición horizontal del logotipo de GoldGuard
07

Desafíos

  • 01Un primer ajuste de filtros cancelaba los cambios de peso reales como valores atípicos: una extracción de 8 g producía 0 eventos. Corregido el 2026-08-23; la misma extracción ahora genera exactamente un ITEM_REMOVED con Δ −8,05 g.
  • 02La v1.0.0-rc estaba en verde 67/67 mientras la ruta de PostgreSQL estaba rota: los tests en verde que nunca tocan la ruta de producción no demuestran nada sobre ella. La suite con Postgres real ahora forma parte de la CI.
  • 03El producto se dividió brevemente en dos árboles con 44 archivos en conflicto y seis conflictos semánticos que una herramienta de merge no señalaría. Un plan de merge escrito y una auditoría de arquitectura preceden a la fusión.
  • 04Nunca se ha conectado una celda de carga. Cada cifra de masa, ruido y latencia del repositorio está etiquetada como objetivo de diseño, no como medición.
08

Resultados

1.125
TESTS EN VERDE
FUENTE · auditoría 2026-09-11
51
ENDPOINTS
FUENTE · routes.ts
23+
VISTAS DEL PANEL
FUENTE · recuento de *View.tsx
EN VIVO
PORTAL
FUENTE · Cloudflare Workers

El cliente recibe un portal de progreso permanente y sin túneles en Cloudflare Workers —porcentaje, el plan de cinco semanas, lo completado y lo que viene después—, mientras que las mediciones en vivo y la consola operativa nunca llegan a él.

Siguiente proyecto
ROYAL ROULETTE