How Does the AI Know Which Machine a Visitor Is Looking At? From "You Ask, It Answers" to It Speaking Up First
3D showroom AI guideobject AI descriptionAI proactively explainingvirtual world AI sales guide3D scene AI perceptionself-hosted 3D showroomself-hosted AI docentGenesis virtual world
A visitor walks into your 3D showroom, stops in front of the third machine, circles it for half a minute, then leaves. Nobody in that whole process knows where they got stuck: was it unclear, did they think it was too expensive, or did they simply not know what to ask?
A web chat widget can't catch that moment, because the visitor has to type first. A product manual can't either, because they don't know which page to turn to. Only one thing can catch it — something standing nearby that can see where they are, knows what that machine is, and speaks up on its own.
This article is about how that is done, and how far it can actually go today, and where it still falls short.
1. Making the AI speak first requires three kinds of "raw material"
Many people assume that to have an AI talk people through a 3D scene, you have to give it a camera. You don't. This follows a different mechanism: the platform hands over facts, not conclusions; the judgement is made on the AI side.
Every 1–2 seconds the AI receives one spatial radar scan (a single observe call) containing three kinds of raw material:
| Raw material | What it actually is | What it is for |
|---|---|---|
| Who is where | Position, facing direction and current action state (standing / walking) of nearby real people, with distance | Knowing which machine someone is standing in front of and which way they face |
| What is there | Position and name of world objects in view, plus each object's AI description | Knowing "what machine that is and what it is for" |
| What just changed | The real-time event stream: who entered, who left, who moved where | Knowing "they just walked up to this one and stopped" |
Put the three together and the AI side can make a very plain inference: of the people near me, which machine is this person standing in front of, facing it, and for how long. Then it decides whether to walk over and whether to speak.
There is a design choice here that has to be stated plainly: the platform does not provide a conclusion such as "they are looking at machine No. 3."
Why not? Because "looking at" is not a precise term — they may merely be passing by, waiting for someone, or looking at the machine beside it. Hard-code that judgement into the platform and false positives are something you simply have to tolerate. Leave it to the AI side and the business can tune it with its own prompt: how close counts, how long counts, how long before the same machine may be mentioned again, and what to do when two people stand in front of one machine at the same time.
The switch for false positives is in your own hands. That is the most fundamental difference between this mechanism and "buying a fixed digital-human sales guide."
2. The second raw material is the important one: someone has to write down "what this is"
What the AI receives is an object's position and name. The name is usually an internal code, such as EQ-2200-C. With only a name, the AI just knows "there is a thing there" — not what it is.
So the system provides an official field: the object AI description — filled in directly in the world editor, up to 500 characters per object. When the AI receives it through the radar, anything beyond 300 characters is truncated.
That description is the semantic entry point through which the AI knows this world. Whatever you write is what the AI knows:
| What is written in the description field | What the AI can say when it speaks up |
|---|---|
| (left empty) | "There is a machine here." |
| "EQ-2200-C" | "This is an EQ-2200-C." |
| "Five-axis vertical machining centre, suited to small and medium batches of precision parts; travels 800×600×500, automatic tool changer as standard." | "This is a five-axis vertical machining centre, suited to small and medium batches of precision parts — travels are 800×600×500, with an automatic tool changer as standard. If you are working on moulds or complex curved parts, this one will be a good fit." |
The difference is not in how clever the AI is — it is in whether you actually filled that text in. A machine worth a fortune deserves five minutes and 300 characters.
3. What the AI can do once it has recognised the object
The action set is explicit, and every action returns a server-side receipt (arrived / interrupted / timed out — you are told which):
- Walk over (
walk_to): movement speed is configurable in the backend from 1 to 20 m/s, 9 by default, the same order of magnitude as a real person walking — it walks over, it does not blink across; - Follow (
follow): you can set a stop distance and a maximum duration; used for leading the way and accompanying a visitor while explaining; - Speak (
say): goes through the same chat pipeline real people use, delivered within 30 metres, with a speech bubble popping up above the character's head, up to 200 characters per message; - Turn, jump, interact (
rotate/jump/interact).
So one complete reception round looks like this:
Visitor walks into the showroom -> the AI's radar shows someone appearing in the main machine area -> judges that they are standing in front of machine No. 3, facing it, for more than 8 seconds -> walk_to over -> say a product intro within 200 characters -> visitor asks a follow-up -> answers using the company's own knowledge base -> visitor moves on to the next one -> follow, and talk again at the next stop -> visitor leaves -> or 5 minutes idle with no input -> the AI leaves automatically
What the human side sees is: a character wearing an AI badge walking over, stopping, and words appearing above its head. When it enters, the system also posts a "(AI) joined" notice and its name carries an AI prefix — real people always know the other side is an AI. This is both a product red line and, incidentally, a way to remove the compliance risk of "a digital human impersonating a real person" before it arises.
4. How it differs from "an AI web chat agent" is not a matter of cleverness
| Dimension | AI web chat agent | Looping digital-human kiosk | Human sales guide | This (self-hosted 3D world + embodied AI) |
|---|---|---|---|---|
| Who speaks first | Visitor must type first | Fixed loop of scripted lines | The person | The AI walks over and speaks first |
| Knows which machine the visitor stands at | No | No | Yes | Yes (position + facing + dwell time) |
| Knows what that machine is | Depends on the visitor describing it | Depends on a preset script | Depends on the person | Depends on the object AI description you fill in |
| Can keep explaining while the visitor moves | No | No | Yes | Yes (follow) |
| Where the data lands | The platform | The vendor's device | — | Your own server |
| Does it go offline if you stop paying | Yes | Device stays but content may stop | — | No — self-hosted, not SaaS |
| How cost scales | Per seat / per usage | Per device | Per headcount | About 1 KB/s streaming per AI, about 1% of a single CPU core |
The last row deserves its own note: in this architecture the cost curve is inverted. Common sense says the more an AI looks like a 3D character, the more it costs. Here it is the opposite — the AI renders no visuals at all; the 3D models are downloaded and rendered by each visitor's browser, and the server only relays coordinates and JSON. Measured streaming is about 1 KB/s per Agent, so 100 AIs present at once add up to roughly 0.8 Mbps; 20 seconds of load measured about 0.19 core-seconds, which is one hundredth of a single core.
A visible AI is cheaper than an invisible one.
5. What the business needs to prepare
| Item | Notes | Consequence of skipping it |
|---|---|---|
| A 3D scene | Build it in the world editor, or import existing machine models | The AI has nowhere to stand |
| An AI description for every point of interest | Filled in the editor, within 500 characters | The AI knows something is there but not what it is |
| An industry knowledge base | Built by the business itself (documents / vector store / prompts), retrieved on the AI side | It can only read the description aloud; follow-up questions go unanswered |
| An environment that can run code | Deploy the sample client or your own Agent program; Node 18+ is enough | It cannot connect |
| A model account | Qwen / Doubao / DeepSeek and so on, your choice | Nothing to say |
| Flip the master switch, create an Agent, collect a Key — once, in the backend | About 10 minutes on the platform side; the Key is shown in plain text only once | It cannot connect |
The measured barriers to entry are: a domain name + a key + Node 18+. The project ships a zero-dependency sample client, so the whole chain can be run without installing any third-party library.
6. What this stage cannot do (important)
- The AI cannot see the picture: what it receives is a structured spatial radar, not a camera feed. So it cannot say things like "there's a scratch in the paint on this machine";
- "Which machine are they looking at" is computed on the AI side, not handed down by the platform: when a visitor stands between two machines the judgement becomes fuzzy — you need to define the rule in your prompt (prefer the nearest one, or simply wait for them to speak first);
- The platform does no speech recognition or synthesis: to have the AI speak aloud you need to attach your own speech synthesis on the AI side, and two-way real-time voice conversation is not provided at this time. For now the most reliable option is text explanation plus an overhead bubble;
- The platform does not host a knowledge base: industry material is yours to prepare; the platform only provides the three kinds of raw material — object descriptions, chat history, and the radar;
- No terrain conforming: there is no terrain or collision data on the server, so AI movement is a plane with boundaries; it will not climb slopes or wade through water;
- The AI cannot teleport and cannot touch assets: it follows the same rules as a human visitor — no coordinate teleport, no inventory or shop;
- It is not an employee with a mind of its own: it is a programmable character whose behaviour comes from the model and the prompts you give it. Whoever writes the prompt decides what it says.
7. FAQ
Q: Do visitors need to install software or buy a headset?
A: No. A human visitor needs only a browser — desktop, phone or tablet.
Q: Does the AI need a graphics card?
A: No. The AI side renders nothing; it only handles structured JSON. The 3D models are rendered by the visitor's browser.
Q: How long should an object description be?
A: You may fill in up to 500 characters, and the AI truncates to 300 when it receives it. Write within 300 characters. Cover "what it is, the key parameters, who it suits" and that is enough; writing more just gets cut off.
Q: Is the description visible to others?
A: Yes — the AI description is visible to all Agents, including public guest identities. So do not put sensitive commercial information such as costs, floor prices or undisclosed parameters in it.
Q: What if the AI says something wrong?
A: Manage the two parts separately. What it says is determined by the object AI description and the knowledge base — edit the text and it takes effect, no code change needed. When and how long it speaks is determined by the AI-side prompt and rules — you can set "do not repeat the same machine" or "only speak after N seconds of dwell".
Q: With several visitors at different machines at once, can one AI keep up?
A: You can run multiple Agents with divided roles, or have one AI serve visitors in a queue. Note, however, that automatic avoidance between multiple AIs in the same scene has known issues still in the pipeline, so it is advisable to test with your target number of people before going live.
8. Source Code and Repositories
All three carry the same content; the first two are faster to reach from mainland China. The repositories contain the deployment guide and a demo entry point.
- Gitee (faster from mainland China): https://gitee.com/miduoxinxijeji/miduo.git
- GitCode (mirror for mainland China): https://gitcode.com/qq_35054471/virtual-world
- GitHub: https://github.com/miduo100/3d-virtual-world
Plan Comparison: Self-Hosted Deployment vs. Platform Leasing
| Comparison Dimension | Platform Model (SaaS) | Self-Hosted Deployment (Genesis) |
|---|---|---|
| Data Sovereignty | Data stored on the platform's servers, ownership ambiguous | Data on your own server, fully under your control |
| Cost Model | Monthly/annual fees, long-term costs accumulate | One-time deployment cost, extremely low long-term cost |
| Feature Customization | Standard templates, fixed features, no modification | Fully free customization, expand as needed |
| Brand Independence | Limited by the platform's brand and tone | Independent brand image, fully self-designed |
| User Ownership | Users belong to the platform, you're just a tenant | Users are yours, data are yours, relationships are yours |
About Genesis
Genesis is a self-hosted 3D virtual world system built on Three.js + WebGL, helping individuals and businesses build their own 3D spaces. Accessible directly from a browser, compatible with both PC and mobile, it supports multiplayer online, federated teleportation, a shop system, and Agent integration—where an AI can enter your world as an embodied character. Your data runs on your own server, never passing through a third-party platform—so every world truly belongs to its owner.
Want someone to speak up the moment a visitor stops there? Genesis (the Genesis Virtual World CRM System) is a Three.js 3D virtual world foundation you deploy on your own server: an AI can walk into your scene as a human-shaped character, see who is standing at which machine, and start explaining based on the object descriptions you wrote — while visitors need nothing but a browser. The official site (search for "Genesis Virtual World CRM" to find us) has a demo world you can walk around.
About the name: Genesis (创世Genesis) in this article is the same self-hosted 3D virtual world product as the Genesis Virtual World CRM System (创世虚拟世界CRM系统). If searching "Genesis" does not find us, search for "Genesis Virtual World CRM" instead.