Dices lo que quieres
Una solicitud en lenguaje natural describe el cambio deseado.
Interacción visual y agentes Demonstrator de cercetare
World Agent es un demostrador para la interacción en lenguaje natural con una escena visual. Exploramos la relación entre la conversación, el estado de un objeto y acciones visibles en un entorno 3D.

World Agent
Una solicitud en lenguaje natural describe el cambio deseado.
La solicitud se vincula con las acciones disponibles en el demostrador.
El entorno visual se actualiza, y los pasos pueden seguirse.
La exploración de un objeto y sus opciones mediante conversación.
La relación entre las órdenes del usuario y una escena navegable.
Evaluación de un runtime visual antes de las integraciones comerciales.
La escena y el catálogo del demostrador son conceptuales. No presentamos una integración CRM ni un modelo generativo de mundo como conectado en esta versión.
World Agent en detalle
World Agent responde a una pregunta de interfaz: ¿qué cambia si, en lugar de pulsar botones, dices lo que quieres y la escena cambia delante de ti? Hablas, y el coche en la escena cambia de color, las llantas, el entorno, el clima, la hora, el ángulo de la cámara, las puertas y el maletero.
Lo interesante no es que entienda la orden, sino que cada cambio deja una huella que dice de dónde vino: del catálogo, de la orden del usuario, de la capa creativa o del sistema. Una capa de niebla en una ruta alpina se etiqueta «simulación visual»; un color de la paleta de cuatro se etiqueta «catálogo». El usuario no tiene que adivinar qué es real y qué es decoración.
Hay tres directorios con nombres parecidos en el disco; dos de ellos — `world-agent-v2` y `world-agent-provenance-atlas` — no son proyectos separados, sino copias de trabajo git del mismo repositorio. La variante real es `world-agent` en la rama `main`, que hoy lleva la reformulación V2 «World Generator» y es idéntica bit a bit a la rama `v2/world-generator`.
Aproximadamente 22 reglas de coincidencia sobre texto rumano traducen una frase en un cambio de estado tipado. «Pon el coche blanco y añade llantas deportivas» activa dos reglas y produce dos eventos distintos. No es un modelo de lenguaje: es código que se ejecuta en el navegador, da el mismo resultado cada vez y se puede leer línea por línea.
El reconocimiento de voz usa `webkitSpeechRecognition` del navegador, con el idioma fijado en `ro-RO`. Donde la interfaz no existe — o el usuario prefiere el teclado — la barra de comandos sigue funcionando, con las mismas reglas. No enviamos audio a ningún sitio.
Un vehículo construido procedimentalmente a partir de primitivas Three.js (carrocería, cabina de cápsula de cristal, cuatro ruedas con llantas, faros, puertas, maletero), sobre una plataforma con anillo, rejilla y tres luces. Renderizado con tone mapping ACES Filmic, relación de píxeles limitada a 1,75 y parada completa de la animación cuando el sistema solicita menos movimiento.
Cada mutación de estado produce un evento con una de cuatro etiquetas: Catalog, User command, Creative layer o System. La etiqueta “Creative layer” se muestra literalmente como “Capa creativa / simulada”. La ficha de oferta aparece con el detalle “Datos ficticios marcados — no es una oferta comercial”.
Existe un runtime normalizado con ocho herramientas visuales (`visual.inspect`, `visual.highlight`, `visual.move`, `visual.create`, `visual.delete`, `world.query`, `ui.navigate`, `ui.open_panel`) y un registro de eventos con números de revisión del mundo. Una llamada con revisión obsoleta se rechaza con `STALE_REVISION`; una llamada repetida con el mismo `actionId` devuelve el recibo original marcado como repetición. El adaptador de voz informa por sí mismo `NOT_CONNECTED` — el contrato está implementado, el proveedor no está conectado.
Seis bandas, cada una con su estado declarado: API documentada para integrar, componentes ejecutables abiertos, investigación abierta para evaluar, proveedor por contactar, vista previa de investigación sin API pública, y una banda marcada como bloqueada para la UE donde las licencias examinadas no autorizan el lanzamiento. Genie 3 está explícitamente en la categoría de vista previa de investigación — no integración.
Datos y funcionamiento
De la exploración a la implementación
Un producto físico configurable, un espacio, una máquina. La pregunta inicial es qué decisión toma el visitante después de ver la escena.
Se parte de la lista de acciones seguras, no de la lista de frases. Cada acción recibe las reglas de lenguaje que la activan, en el idioma del público, y la etiqueta de procedencia correcta.
Las solicitudes válidas son la parte fácil. Se prueban las solicitudes ambiguas, las que están fuera del escenario y las que combinan varias acciones, para que la respuesta «no puedo hacer eso, pero sí puedo hacer esto» sea útil.
El resultado es un paquete estático servido por nginx en un servidor propio, con certificado Let's Encrypt y posibilidad de volver a la versión anterior mediante el cambio de un enlace simbólico. No necesita un proceso de servidor.
Solo uno: `world-agent`, en la rama `main`. `world-agent-v2` y `world-agent-provenance-atlas` son copias de trabajo git (`git worktree`) del mismo repositorio, usadas para que existan varias variantes de diseño al mismo tiempo. `main` y `v2/world-generator` están hoy en el mismo commit, así que la «versión V2» no es otro proyecto, es lo que está en ejecución.
No. Es un motor de escena: los objetos y las acciones existen antes, y el comando elige entre ellos. Genie 3 aparece en nuestro registro de motores exactamente con su estado real: vista previa de investigación, sin API pública para lanzar, sin pesos publicados. Lo que hacemos nosotros, en cambio, es menos espectacular y más fácil de garantizar: el mismo comando da el mismo resultado, y cada cambio tiene una etiqueta de procedencia.
No, y es una elección. El compilador es un conjunto de aproximadamente 22 reglas de coincidencia sobre texto en rumano, ejecutadas en el navegador, que producen cambios tipificados de estado. La ventaja: es determinista, no cuesta nada por solicitud, no envía el texto a ningún lado y se puede auditar línea por línea. La desventaja: el vocabulario es finito, y cuando una solicitud sale de él el sistema lo dice en lugar de improvisar.
Con el reconocimiento de voz del navegador — `webkitSpeechRecognition`, con el idioma fijado en `ro-RO`. Eso significa en la práctica navegadores con motor Chromium. Por lo demás, la barra de texto hace exactamente lo mismo, con las mismas reglas: la voz es una comodidad, no una dependencia.
No, y están marcados como tales en el mismo evento que los muestra: «Datos ficticios marcados — no es una oferta comercial». No existe integración con un catálogo de fabricante ni con un sistema de precios. En una implementación para un cliente, la fuente de precios sería su sistema, y la etiqueta de procedencia cambiaría de «Catálogo demo» a la fuente real.
No en esta compilación. Los conectores aparecen en la interfaz con la etiqueta NOT CONNECTED, y el contrato de herramientas existe pero el adaptador del proveedor devuelve por sí solo `NOT_CONNECTED`. Sin embargo, ya está escrita la parte difícil: ocho herramientas visuales tipificadas, números de revisión del mundo, rechazo por revisión obsoleta y recibos idempotentes — es decir, exactamente las protecciones que necesitas para que un agente no aplique dos veces la misma acción sobre un estado que ha cambiado mientras tanto.
Sí, con el trabajo de configuración descrito arriba: la escena, la lista de acciones permitidas y las reglas de lenguaje se reescriben para el objeto respectivo. Lo que se reutiliza es la arquitectura — el compilador determinista, el rail de procedencia, el contrato de herramientas y la disciplina de revisión del estado.
Ejemplo ilustrativo
Un escenario de uso, sin datos de cliente ni resultados comerciales atribuidos.
El visitante pronuncia o escribe la frase en la barra de comandos.
El texto pasa por las reglas de coincidencia en rumano: «alpi» activa el entorno alpino, «noapte» cambia la hora, «ploa» activa la capa de lluvia. Cada regla produce un evento separado con su propia etiqueta de procedencia, y la escena Three.js reajusta la cámara, la niebla y el color de fondo en consecuencia.
La escena cambia de inmediato, y en la rail lateral aparecen tres entradas: «Medio compuesto — Capa creativa / simulada — Ruta alpina», «Tiempo simulado — Capa creativa / simulada — Iluminación nocturna» y «Clima simulado — Capa creativa / simulada — Capa de lluvia activa». El agente responde que ha aplicado 3 cambios y ha conservado la fuente de cada uno. Ninguna entrada afirma que sea un dato real.
Ce este necesar:Un browser cu WebGL. Pentru comandă vocală, un browser pe motor Chromium; altfel bara de text face același lucru.
Posibilidades de colaboración
La conexión de las fuentes autorizadas, la organización de la información y la revisión de las acciones por parte del equipo, con acceso separado por roles.
Definimos un piloto en torno a un proceso real: usuarios, datos, integraciones, costes y criterios de aceptación. La ampliación sigue después de evaluar el resultado.
Establecemos los requisitos de accesibilidad, alojamiento, protección de datos e interoperabilidad. Cualquier conexión con servicios AGE o STISC requiere la validación de la elegibilidad, el acceso y las aprobaciones.
Estos son escenarios de adaptación, no declaraciones sobre contratos o colaboraciones existentes. Las funciones propuestas se confirman en el ámbito de trabajo del proyecto.
Habla de un pilotoDesarrollamos representaciones 3D de la ciudad que combinan relieve, mapas y datos sobre el espacio construido.
Prototip & cercetareAcceso API a modelos de IA a través de una interfaz común.
PlatformăGrai es nuestra línea de investigación en síntesis de voz y modelos adaptados a las lenguas que se hablan aquí.
Cercetare & dezvoltareCuéntanos tu proceso. Juntos decidimos qué merece la pena construir, qué podemos conectar y cómo verificamos el resultado.