Una nave industrial de pruebas a la hora azul, con tuberías, depósitos y un banco de pruebas funcionando sin nadie en la planta.

N° 09Para operaciones

Toda la planta, en vivo en un solo mundo.

Cada máquina es un dispositivo que transmite lo que reporta a un mundo 3D. Los agentes vigilan los flujos y actúan dentro de los permisos que tú redactas, y cada acción queda registrada antes de llegar a una máquina.

Lámina 30 · Una nave de pruebas a la hora azul, funcionando sin nadie en la planta

Un mundo

La instalación es un mundo. Cada máquina es un dispositivo.

Un mundo es un archivo simple, worlds/<id>/world.json, marcado como físico o simulación. Cada máquina, robot, cámara y computadora de tu planta es un dispositivo con canales, colocado en él como una unidad: un flujo de estado, una línea de G-code, un bus de servos, un flujo de video.

Cada unidad se dibuja en 3D a partir del modelo CAD de su dispositivo, convertido a glTF desde STEP o una malla, o como una caja hasta que tenga uno. Donde un canal reporta una posición, la vista del mundo dibuja la herramienta, o el esqueleto del brazo, donde la máquina dice que está. Es en vivo, o en el momento al que vuelvas en la línea de tiempo.

Un monitor en una sala a oscuras con el modelo en alambre de una nave industrial y algunos puntos marcados en naranja.

Lámina 31 · La planta en alambre, con cuatro puntos marcados

Anotado con lo que la máquina dijo.

Abre el trabajo de una máquina en el modo CAM de la app 3D y el gemelo lo etiqueta a partir de los registros: la línea, el avance, el husillo, el láser, el extrusor y el progreso. Una alarma aparece como error. Una desviación de más de 0,5 mm respecto del plan es una advertencia, y también lo es un enlace perdido: estado desconocido, sin herramienta dibujada. El plan y el reporte son dos fuentes. Están etiquetadas y nunca se mezclan.

Una pequeña cámara y un sensor sujetos al motor de una bomba, con una luz de estado naranja encendida.

Flujos

Cada canal escribe un flujo.

Lo que hace un dispositivo se registra como flujos en una ejecución. records.jsonl crece línea a línea a medida que la máquina reporta. Una cámara escribe su único archivo de video con el mismo reloj.

No hay un historiador aparte que mantener sincronizado. La carpeta de la ejecución es la historia: archivos simples que puedes copiar, comparar y leer con cualquier herramienta.

Lámina 32 · Una cámara y un sensor sujetos al motor de una bomba

Analítica a partir de los registros.

El visor de gráficas lee directamente el records.jsonl de una ejecución, o cualquier CSV que exporte tu MES, en seis vistas: líneas, mosaicos, barras, mapa de calor, coordenadas paralelas y dispersión. El panel de fábrica pone una tabla de OEE junto al gemelo y las cámaras.

Hay un solo reloj por ventana. Mueve la barra de tiempo y todos los paneles van juntos a ese momento: el mundo 3D, las gráficas, las cámaras y los registros.

runs/line-2/streams/mill-2.gcoderegistros de ejemplo
03:41:02.115 state   Run · line 4127 · F1200 S12000
03:41:02.367 state   Run · line 4128 · F1200 S12000
03:41:02.402 event   ALARM:1 hard limit
03:41:02.410 state   Alarm
03:41:06.021 note    agent:floor-watch: stop mill-2/gcode
03:41:06.388 state   Alarm · job stopped at line 4128

Autoridad

Los agentes actúan en tiempo real, bajo un permiso permanente.

Decides una vez qué puede tocar un agente: qué mundo, qué unidades, qué canales, qué verbos, durante cuánto tiempo. Dentro de ese permiso lee los flujos, abre canales, arma la máquina, ejecuta programas y envía comandos por MCP, sin diálogos de confirmación a las 3 de la madrugada.

Cada acción se escribe en la ejecución, con el principal que la envió, antes de llamar al driver. Una confirmación no es un estado, y un enlace perdido se registra como desconocido. Nada se reintenta en silencio. Si el agente vuelve a intentarlo, es un nuevo comando registrado. Los límites los impone el driver, y los verbos de parada, retención y emergencia siempre están permitidos a cualquiera que tenga algún permiso sobre la unidad.

shell
commandagi grant add --principal agent:floor-watch \
  --world plant --unit mill-2 --unit press-4 \
  --verb open --verb run --verb send --for 12h --note "night watch"
Una sala de control vacía de noche, con monitores que muestran gráficas y la planta a oscuras tras la ventana.

Paneles

Los paneles son archivos.

Un panel es un archivo JSON, dashboards/<id>.dashboard.json. Contiene los paneles, su disposición y parámetros con tipo: un mundo, una unidad, una ejecución, un flujo, un archivo. Empieza con uno de los que vienen incluidos, como la planta de fábrica, el muro de cámaras, el muro de seguridad, la cabina del dispositivo, la reproducción de ejecuciones, la granja de impresión o el almacén. Después edítalo, haz commit y cópialo a la siguiente planta.

El muro de cámaras pone todos los flujos de video registrados en una sola pantalla, con el mismo reloj que las máquinas.

Lámina 33 · Una sala de control de noche, la silla vacía

Partes interesadas

Comparte la ejecución, no una captura de pantalla.

Un enlace compartido abre un archivo o una carpeta, como un panel, una ejecución o un mundo, en modo de solo lectura en el banco de trabajo, con la disposición propia de su tipo. Un mundo compartido no tiene nada que se pueda armar. Un enlace a la carpeta de una ejecución en vivo incluye lo que la ejecución escriba después de enviarlo.

Contado, no proyectado.

Lo que hay hoy en el producto, según los números del repositorio.

26
Drivers en el catálogo

CNC, impresoras, buses de servos, brazos, cámaras, shells y más, detrás de una sola interfaz de sesión.

6
Vistas de gráficas

Líneas, mosaicos, barras, mapa de calor, coordenadas paralelas y dispersión, trazadas a partir de los registros.

0,5mm
Desviación que se señala

Entre lo que dice el plan y donde la máquina reporta que está.

0
Reintentos silenciosos

Un comando físico se envía una vez. Reintentar es una decisión, y queda registrada.

Verificación

Decimos exactamente hasta dónde se ha probado.

Cada driver lleva una palabra que indica contra qué se ha verificado: none, loopback, bench o hardware. Hoy 23 de los 26 dicen loopback, es decir, se probaron contra réplicas fieles en software de cada protocolo. Los otros tres dicen none. Todavía no se ha puesto en servicio ninguna máquina.

Los drivers de bus de campo como Modbus, OPC UA y MQTT aún no están en el catálogo. Si tu planta los habla, cuéntanos.

Pon tu planta en un solo mundo.

Construye primero el mundo en simulación, ejecuta el turno ahí y después conecta las máquinas.