Skip to content
megapromotingLet's talk
Products World Agent

Visual interaction & agents Research demonstrator

A conversation that can change what you see.

World Agent is a demonstrator for natural-language interaction with a visual scene. We are exploring the link between conversation, an object’s state and visible actions in a 3D environment.

World Agent: the intent field, with a command in natural language and the context candidates listed below
vision.megapromoting.com · a natural-language command and the context the system considers appropriate

World Agent

From information to work done.

01

You say what you want

A natural-language request describes the desired change.

02

The system interprets

The request is linked to the actions available in the demonstrator.

03

The scene responds

The visual environment is updated, and the steps can be followed.

Where it becomes useful.

Product demonstrations

Exploring an object and its options through conversation.

3D interfaces

The link between user commands and a navigable scene.

Cercetare

Evaluating a visual runtime before commercial integrations.

The demo scene and catalogue are conceptual. We do not present a CRM integration or a generative world model as connected in this version.

World Agent in detail

What you can do with this project.

World Agent answers an interface question: what changes if, instead of pressing buttons, you say what you want and the scene changes before you? You speak, and the car in the scene changes its colour, wheels, environment, weather, time, camera angle, doors and boot.

The interesting part is not that it understands the command, but that each change leaves a trace that says where it came from: from the catalogue, from the user command, from the creative layer or from the system. A layer of fog on an alpine route is labelled "visual simulation"; a colour from the four-item palette is labelled "catalogue". The user does not have to guess what is real and what is decor.

There are three directories with a similar name on disk; two of them — `world-agent-v2` and `world-agent-provenance-atlas` — are not separate projects, but git working copies of the same repository. The real version is `world-agent` on the `main` branch, which today carries the V2 reformulation "World Generator" and is bit-for-bit identical to the `v2/world-generator` branch.

01

Local, deterministic Romanian command compiler

Around 22 matching rules on Romanian text translate a phrase into a typed state change. "Make the car white and fit sport wheels" hits two rules and produces two distinct events. It is not a language model: it is code that runs in the browser, gives the same result every time and can be read line by line.

02

Voice with fallback to text

Voice recognition uses `webkitSpeechRecognition` in the browser, with the language fixed to `ro-RO`. Where the interface is not available — or the user prefers the keyboard — the command bar remains functional, with the same rules. We do not send audio anywhere.

03

Deterministic 3D scene

A vehicle built procedurally from Three.js primitives (body, glass capsule cabin, four wheels with rims, headlights, doors, boot), on a platform with a ring, grid and three lights. Rendering with ACES Filmic tone mapping, pixel ratio capped at 1.75 and complete stopping of animation when the system requests reduced motion.

04

Provenance rail

Each state mutation produces an event with one of four labels: Catalog, User command, Creative layer or System. The “Creative layer” label is displayed literally as “Creative / simulated layer”. The offer record appears with the detail “Fictitious data marked — not a commercial offer”.

05

Runtime contract for voice and visual tools

There is a normalised runtime with eight visual tools (`visual.inspect`, `visual.highlight`, `visual.move`, `visual.create`, `visual.delete`, `world.query`, `ui.navigate`, `ui.open_panel`) and an event log with world revision numbers. A call with an outdated revision is rejected with `STALE_REVISION`; a repeated call with the same `actionId` returns the original receipt marked as a replay. The voice adaptor reports `NOT_CONNECTED` itself — the contract is implemented, the provider is not connected.

06

Honest registry of world engines

Six bands, each with its declared status: documented API to integrate, open runnable components, open research to evaluate, provider to contact, research preview without public API, and a band marked blocked for the EU where the licences reviewed do not authorise launch. Genie 3 is explicitly in the research preview category — not integration.

Data and operation

What enters the system. What needs to be checked.

What is a scene engine and what would a generative model be
This is the boundary that is most often confused. World Agent is a scene engine: objects exist in advance, allowed actions are listed, and the command chooses among them. A generative world model would produce unseen geometry and dynamics on demand. The second thing is not connected, and the interface says so: there is no foundation model that generates worlds in this build.
The vocabulary is finite, and that is a property, not a lack
A request outside the vocabulary does not trigger a guess: the system responds that it can control colour, wheels, environment, weather, camera, doors, boot and the demo sheet, and logs an event “Unfulfilled request — no safe action found in the demo vocabulary”. In a client demonstration, the vocabulary boundary must be visible, not masked.
What is conceptual in the scene
The vehicle and the catalogue are conceptual — four colours with invented names, two wheel sets, two interiors. There is no 3D model from a car manufacturer and no rights for one. Prices are deliberately unavailable: the offer sheet carries the label fictitious data.
What is not connected
No CRM, no manufacturer catalogue, no live pricing, no autonomous external actions. Personal connectors (mail, messaging) appear in the interface with the NOT CONNECTED label. The deploy serves a static build: it has no server state, so no user data either.
State persists only in the session
The “saved” configuration remains in the page memory, with System provenance and the detail “State saved locally in the demo”. A reload loses it. It is not a database.

From exploration to implementation

How we prepare a project with World Agent.

01

1. We choose the object and what the visitor should be able to explore

A configurable physical product, a space, a machine. The starting question is what decision the visitor makes after seeing the scene.

02

2. We list the allowed actions, then write the rules

We start from the list of safe actions, not from the list of phrases. Each action gets the language rules that trigger it, in the public’s language, and the correct provenance label.

03

3. We test the boundary, not the centre

Valid requests are the easy part. We test ambiguous requests, those outside the scenario and those that combine several actions, so that the answer “I cannot do that, but I can do these” is useful.

04

4. We publish as a static build

The result is a static package served by nginx on our own server, with a Let’s Encrypt certificate and the possibility of rolling back to the previous version by changing a symbolic link. It does not need a server process.

Questions worth clarifying.

Which of the three directories with World Agent is the real one?

Only one: `world-agent`, on the `main` branch. `world-agent-v2` and `world-agent-provenance-atlas` are git worktrees of the same repository, used so that several design variants can exist at the same time. `main` and `v2/world-generator` are today at the same commit, so the “V2 variant” is not a different project, it is what runs.

Is it a generative world model, like Genie or Sora?

No. It is a scene engine: the objects and actions exist beforehand, and the command chooses among them. Genie 3 appears in our engine register exactly with its real status — research preview, no public API to launch, no published weights. What we do instead is less spectacular and easier to guarantee: the same command gives the same result, and every change has a provenance label.

How does it understand the command — do you use a language model?

No, and that is a choice. The compiler is a set of about 22 text-matching rules in Romanian, run in the browser, which produce typed state changes. The advantage: it is deterministic, costs nothing per request, sends the text nowhere and can be audited line by line. The disadvantage: the vocabulary is finite, and when a request falls outside it the system says so instead of improvising.

What does the voice work with?

With the browser’s speech recognition — `webkitSpeechRecognition`, with the language fixed to `ro-RO`. In practice, that means Chromium-based browsers. Otherwise, the text bar does exactly the same thing, with the same rules: voice is a convenience, not a dependency.

Are the prices in the offer sheet real?

No, and they are marked as such in the very event that displays them: “Fictitious data marked — not a commercial offer”. There is no integration with a manufacturer catalogue or a pricing system. In an implementation for a client, the price source would be their system, and the provenance label would change from “Demo catalogue” to the real source.

Does it connect to our CRM?

Not in this build. The connectors appear in the interface with the NOT CONNECTED label, and the tool contract exists but the vendor adapter reports `NOT_CONNECTED` itself. However, the hard part is already written: eight typed visual tools, world revision numbers, rejection on stale revision and idempotent receipts — that is, exactly the safeguards you need so that an agent does not apply the same action twice over a state that has changed in the meantime.

Can it be used for something other than a car?

Yes, with the configuration work described above: the scene, the list of allowed actions and the language rules are rewritten for that object. What is reused is the architecture — the deterministic compiler, the provenance rail, the tool contract and the discipline of state revision.

Illustrative example

“Take us to the Alps, at night, in the rain”

A use case, without client data or attributed commercial results.

Initial situation

The visitor says or writes the phrase in the command bar.

How it works

The text is passed through the matching rules in Romanian: “alpi” activates the alpine environment, “noapte” changes the time, “ploa” activates the rain layer. Each rule produces a separate event with its provenance label, and the Three.js scene repositions the camera, the fog and the background colour accordingly.

Rezultatul

The scene changes immediately, and in the side rail three entries appear: “Composed environment — Creative / simulated layer — Alpine route”, “Simulated time — Creative / simulated layer — Night lighting” and “Simulated weather — Creative / simulated layer — Rain layer active”. The agent replies that it has applied 3 changes and kept the source of each. No entry claims to be real data.

What is required:A browser with WebGL. For voice command, a browser on the Chromium engine; otherwise the text bar does the same thing.

Collaboration possibilities

World Agent, in the context of your organisation.

Internal flows and information

Connecting authorised sources, organising information and reviewing actions by the team, with separate access by role.

Private companies

We define a pilot around a real process: users, data, integrations, costs and acceptance criteria. Expansion follows after evaluating the result.

State institutions and companies

We establish the requirements for accessibility, hosting, data protection and interoperability. Any connection to AGE or STISC services requires validation of eligibility, access and approvals.

These are adaptation scenarios, not statements about existing contracts or partnerships. The proposed functions are confirmed within the project scope.

Discuss a pilot

Part of an ecosystem.

What would you want to work better?

Tell us about your process. Together we decide what is worth building, what we can connect, and how we check the result.

Let's talk