Passer au contenu
megapromotingDiscutons
Produits World Agent

Interaction visuelle & agents Demonstrator de cercetare

Une conversation qui peut changer ce que vous voyez.

World Agent est un démonstrateur pour l’interaction en langage naturel avec une scène visuelle. Nous explorons le lien entre la conversation, l’état d’un objet et des actions visibles dans un environnement 3D.

World Agent: câmpul de intenție, cu o comandă în limbaj natural și candidații de context punctați dedesubt
vision.megapromoting.com · une commande en langage naturel et le contexte que le système considère approprié

World Agent

De l’information au travail accompli.

01

Vous dites ce que vous voulez

Une demande en langage naturel décrit le changement souhaité.

02

Le système interprète

La demande est liée aux actions disponibles dans le démonstrateur.

03

La scène répond

L’environnement visuel se met à jour, et les étapes peuvent être suivies.

Là où il devient utile.

Démonstrations de produit

L’exploration d’un objet et de ses options par la conversation.

Interfaces 3D

Le lien entre les commandes de l’utilisateur et une scène navigable.

Cercetare

Évaluation d’un runtime visuel avant les intégrations commerciales.

La scène et le catalogue du démonstrateur sont conceptuels. Nous ne présentons pas une intégration CRM ni un modèle génératif du monde comme étant connecté dans cette version.

World Agent en détail

Ce que vous pouvez faire avec ce projet.

World Agent répond à une question d’interface : qu’est-ce qui change si, au lieu d’appuyer sur des boutons, vous dites ce que vous voulez et la scène change sous vos yeux ? Vous parlez, et la machine dans la scène change de couleur, les jantes, l’environnement, la météo, l’heure, l’angle de la caméra, les portes et le coffre.

L’élément intéressant n’est pas qu’il comprend la commande, mais que chaque changement laisse une trace qui indique d’où il vient : du catalogue, de la commande de l’utilisateur, de la couche créative ou du système. Une couche de brouillard sur un tracé alpin est étiquetée « simulation visuelle » ; une couleur issue de la palette de quatre est étiquetée « catalogue ». L’utilisateur n’a pas à deviner ce qui est vrai et ce qui est décor.

Il existe trois répertoires aux noms similaires sur le disque ; deux d’entre eux — `world-agent-v2` et `world-agent-provenance-atlas` — ne sont pas des projets séparés, mais des copies de travail git du même dépôt. La vraie version est `world-agent` sur la branche `main`, qui porte aujourd’hui la reformulation V2 « World Generator » et est identique bit à bit à la branche `v2/world-generator`.

01

Compilateur de commandes en roumain, local, déterministe

Environ 22 règles de correspondance sur texte roumains traduisent une phrase en une modification d’état typée. « Rendez la voiture blanche et mettez des jantes sport » déclenche deux règles et produit deux événements distincts. Ce n’est pas un modèle de langage : c’est du code qui s’exécute dans le navigateur, donne le même résultat à chaque fois et peut être lu ligne par ligne.

02

Voix avec retour au texte

La reconnaissance vocale utilise `webkitSpeechRecognition` dans le navigateur, avec la langue fixée sur `ro-RO`. Lorsque l’interface n’existe pas — ou que l’utilisateur préfère le clavier — la barre de commande reste fonctionnelle, avec les mêmes règles. Nous n’envoyons l’audio nulle part.

03

Scène 3D déterministe

Un véhicule construit procéduralement à partir de primitives Three.js (carrosserie, cabine en capsule de verre, quatre roues avec jantes, phares, portes, coffre), sur un socle avec anneau, grille et trois lumières. Rendu avec tone mapping ACES Filmic, rapport de pixels plafonné à 1,75 et arrêt complet de l’animation lorsque le système demande moins de mouvement.

04

Rail de provenance

Chaque mutation d’état produit un événement avec l’une de quatre étiquettes : Catalog, User command, Creative layer ou System. L’étiquette « Creative layer » s’affiche littéralement comme « Strat creativ / simulat ». La fiche d’offre apparaît avec le détail « Date fictive marquées — il ne s’agit pas d’une offre commerciale ».

05

Contrat de runtime pour la voix et les outils visuels

Il existe un runtime normalisé avec huit outils visuels (`visual.inspect`, `visual.highlight`, `visual.move`, `visual.create`, `visual.delete`, `world.query`, `ui.navigate`, `ui.open_panel`) et un journal d’événements avec des numéros de révision du monde. Un appel avec une révision obsolète est rejeté avec `STALE_REVISION`; un appel répété avec le même `actionId` renvoie le reçu original marqué comme reprise. L’adaptateur vocal renvoie lui-même `NOT_CONNECTED` — le contrat est implémenté, le fournisseur n’est pas connecté.

06

Registre honnête des moteurs de monde

Six bandes, chacune avec son statut déclaré : API documentée à intégrer, composants exécutables ouverts, recherche ouverte à évaluer, fournisseur à contacter, aperçu de recherche sans API publique, et une bande marquée bloquée pour l’UE où les licences examinées n’autorisent pas le lancement. Genie 3 se situe explicitement dans la catégorie aperçu de recherche — pas intégration.

Données et fonctionnement

Ce qui entre dans le système. Ce qu'il faut vérifier.

Qu’est-ce qu’un moteur de scène et qu’est-ce qu’un modèle génératif
Ici se trouve la frontière la plus souvent confondue. World Agent est un moteur de scène : les objets existent d’avance, les actions autorisées sont énumérées, et la commande choisit parmi elles. Un modèle génératif de monde produirait une géométrie et une dynamique jamais vues auparavant, à la demande. La deuxième chose n’est pas connectée, et l’interface le dit : il n’existe pas de modèle de fondation qui génère des mondes dans ce build.
Le vocabulaire est fini, et c’est une propriété, pas un manque
Une requête hors vocabulaire ne déclenche pas une supposition : le système répond qu’il peut contrôler la couleur, les jantes, l’environnement, la météo, la caméra, les portes, le coffre et la fiche démonstrative, et enregistre un événement « Demande non exécutée — aucune action sûre trouvée dans le vocabulaire de démo ». Dans une démonstration pour un client, la limite du vocabulaire doit être visible, pas masquée.
Ce qui est conceptuel dans la scène
Le véhicule et le catalogue sont conceptuels — quatre couleurs aux noms inventés, deux jeux de jantes, deux intérieurs. Il n’existe ni modèle 3D d’un constructeur automobile ni les droits pour un tel modèle. Les prix sont indisponibles volontairement : la fiche d’offre porte l’étiquette de données fictives.
Ce qui n’est pas connecté
Pas de CRM, pas de catalogue de constructeur, pas de prix en direct, pas d’actions externes autonomes. Les connecteurs personnels (courrier, messagerie) apparaissent dans l’interface avec l’étiquette NOT CONNECTED. Le déploiement sert un build statique : il n’a pas d’état serveur, donc pas de données utilisateur.
L’état ne persiste que dans la session
La configuration « sauvegardée » reste dans la mémoire de la page, avec la provenance System et le détail « État enregistré localement dans la démo ». Un rechargement la perd. Ce n’est pas une base de données.

De l'exploration à l'implémentation

Comment nous préparons un projet avec World Agent.

01

1. Nous choisissons l’objet et ce que le visiteur doit pouvoir explorer

Un produit physique configurable, un espace, une machine. La question de départ est quelle décision le visiteur prend après avoir vu la scène.

02

2. Nous énumérons les actions autorisées, puis nous écrivons les règles

On part de la liste des actions sûres, pas de la liste des phrases. Chaque action reçoit les règles de langage qui la déclenchent, dans la langue du public, et l’étiquette de provenance correcte.

03

3. Nous testons la limite, pas le centre

Les requêtes valides sont la partie facile. On teste les requêtes ambiguës, celles hors scénario et celles qui combinent plusieurs actions, pour que la réponse « je ne peux pas faire cela, mais je peux faire ceci » soit utile.

04

4. Nous publions en build statique

Le résultat est un package statique servi par nginx sur un serveur propre, avec certificat Let's Encrypt et possibilité de revenir à la version précédente en changeant un lien symbolique. Il n’a pas besoin de processus serveur.

Des questions qui méritent d’être clarifiées.

Lequel des trois répertoires avec World Agent est le vrai ?

Un seul : `world-agent`, sur la branche `main`. `world-agent-v2` et `world-agent-provenance-atlas` sont des copies de travail git (`git worktree`) du même dépôt, utilisées pour que plusieurs variantes de design existent simultanément. `main` et `v2/world-generator` sont aujourd’hui au même commit, donc la « version V2 » n’est pas un autre projet, c’est ce qui tourne.

C’est un modèle génératif de monde, comme Genie ou Sora ?

Non. C’est un moteur de scène : les objets et les actions existent déjà, et la commande choisit parmi eux. Genie 3 apparaît dans notre registre des moteurs exactement avec son statut réel — aperçu de recherche, sans API publique à lancer, sans poids publiés. Ce que nous faisons à la place est moins spectaculaire et plus facile à garantir : la même commande donne le même résultat, et chaque changement a une étiquette de provenance.

Comment comprend-il la commande — utilisez-vous un modèle de langage ?

Non, et c’est un choix. Le compilateur est un ensemble d’environ 22 règles de correspondance sur du texte roumain, exécutées dans le navigateur, qui produisent des changements d’état typés. L’avantage : c’est déterministe, cela ne coûte rien par requête, n’envoie le texte nulle part et peut être audité ligne par ligne. L’inconvénient : le vocabulaire est fini, et lorsqu’une requête en sort, le système le dit au lieu d’improviser.

Avec quoi fonctionne la voix ?

Avec la reconnaissance vocale du navigateur — `webkitSpeechRecognition`, avec la langue fixée sur `ro-RO`. Cela signifie en pratique les navigateurs sur moteur Chromium. Le reste, la barre de texte fait exactement la même chose, avec les mêmes règles : la voix est un confort, pas une dépendance.

Les prix dans la fiche de l’offre sont-ils réels ?

Non, et ils sont marqués comme tels dans l’événement même qui les affiche : « Données fictives marquées — ce n’est pas une offre commerciale ». Il n’y a pas d’intégration avec un catalogue de fabricant ni avec un système de prix. Dans une implémentation pour un client, la source des prix serait son système, et l’étiquette de provenance passerait de « Catalogue démo » à la source réelle.

Se connecte-t-il à notre CRM ?

Pas dans ce build. Les connecteurs apparaissent dans l’interface avec l’étiquette NOT CONNECTED, et le contrat d’outils existe, mais l’adaptateur du fournisseur renvoie lui-même `NOT_CONNECTED`. Il y a cependant déjà écrit la partie lourde : huit outils visuels typés, des numéros de révision du monde, un rejet sur révision obsolète et des reçus idempotents — c’est-à-dire exactement les protections dont vous avez besoin pour qu’un agent n’applique pas deux fois la même action sur un état qui a changé entre-temps.

Peut-il être utilisé pour autre chose qu’une machine ?

Oui, avec le travail de configuration décrit ci-dessus : la scène, la liste des actions autorisées et les règles de langage sont réécrites pour l’objet concerné. Ce qui est réutilisé, c’est l’architecture — le compilateur déterministe, le rail de provenance, le contrat d’outils et la discipline de révision de l’état.

Exemple illustratif

« Emmenez-nous dans les Alpes, la nuit, sous la pluie »

Un scénario d’utilisation, sans données client ni résultats commerciaux attribués.

Situation initiale

Le visiteur prononce ou écrit la phrase dans la barre de commande.

Comment ça fonctionne

Le texte est passé par les règles de correspondance en roumain : « alpi » active l’environnement alpin, « noapte » change l’heure, « ploa » active la couche de pluie. Chaque règle produit un événement séparé avec son étiquette de provenance, et la scène Three.js réorganise la caméra, le brouillard et la couleur de fond en conséquence.

Rezultatul

La scène change immédiatement, et dans le rail latéral apparaissent trois entrées : « Milieu composé — Couche créative / simulée — Parcours alpin », « Temps simulé — Couche créative / simulée — Éclairage de nuit » et « Météo simulée — Couche créative / simulée — Couche de pluie active ». L’agent répond qu’il a appliqué 3 modifications et a conservé la source de chacune. Aucune entrée ne prétend qu’il s’agit de données réelles.

Ce este necesar:Un browser cu WebGL. Pentru comandă vocală, un browser pe motor Chromium; altfel bara de text face același lucru.

Possibilités de collaboration

World Agent, dans le contexte de votre organisation.

Flux internes et information

Connexion des sources autorisées, organisation de l’information et revue des actions par l’équipe, avec accès séparé par rôles.

Entreprises privées

Nous définissons un pilote autour d’un processus réel : utilisateurs, données, intégrations, coûts et critères d’acceptation. L’extension suit après l’évaluation du résultat.

Institutions et entreprises publiques

Nous établissons les exigences d’accessibilité, d’hébergement, de protection des données et d’interopérabilité. Toute connexion avec des services AGE ou STISC nécessite la validation de l’éligibilité, de l’accès et des approbations.

Ce sont des scénarios d’adaptation, non des déclarations sur des contrats ou partenariats existants. Les fonctions proposées sont confirmées dans le périmètre de travail du projet.

Discuter d'un pilote

Faisant partie d’un écosystème.

Qu'est-ce que vous voudriez voir mieux fonctionner ?

Racontez-nous votre processus. Ensemble, nous décidons ce qui vaut la peine d'être construit, ce que nous pouvons connecter et comment nous vérifions le résultat.

Discutons