Agent City in the Rectangle scenario while "Send deposit invoice" waits for approval: an isometric city of colored district buildings, a toast reading "Waiting for approval: Send deposit invoice", the Human Approval Hall showing one item awaiting decision, and a work queue listing a DJ rehearsal inquiry as Awaiting Approval.
The current build: the deposit invoice cannot go out until a person approves it. Synthetic data.

A live 3D city that shows a business owner what their AI agents are doing and holds every consequential step for a person to approve.

What it is

Owners who hand work to AI agents lose sight of it. Agent City turns agent work into a city you can read at a glance: each district is a stage of work, agents walk between buildings, and the integrations they touch light up as they are used. Consequential actions wait in the Human Approval Hall until a person decides.

What we built

One normalized event model for agents, work items, capability calls, approvals, integration activity, and outcomes, reduced into a single world state. Source adapters for several agent runtimes, Agent Forge execution events, DASP envelopes, and a business event schema, each with sanitize and translate steps. A privacy layer that strips names, contact details, prompts, and secrets before anything renders and fails closed. A Three.js renderer with Business and Developer views, a capability inspector, and five WebMCP tools built with Agent Forge.

How it is used

The public demo plays eight synthetic scenarios. In the flagship one, a rehearsal inquiry for The Rectangle is classified, routed, and synced to the CRM, and “Send deposit invoice” waits for approval before the invoice goes out, payment arrives, and the booking is confirmed. Approvals in the demo are scripted, and the demo bundle contains no API calls, live data, or secrets.

Agent City as an isometric island city at night: districts labeled Plan, Build, Test, Create, Learn, and Deploy around a glowing central hub, with a Live Activity panel listing agents running, builds complete, tests passing, new ideas, and deploying.
Agent City: one district for each stage of work, around a central hub.
Agent City a moment later: toasts read "Approved: Send deposit invoice" and "Resumed after approval", the approvals panel marks the invoice as resumed, and a "DEMO · SYNTHETIC DATA" badge sits in the top bar.
After approval the agent resumes, sends the invoice, and moves on to payment and confirmation.

Evidence

What it shows

What changed

A business owner can read agent work as a city, and every consequential step waits in the approval hall until a person decides.

  • One event model

    Agents, work items, capability calls, approvals, integration activity, and outcomes are normalized into one event model and reduced into a single world state. The privacy projection fails closed.

  • Seven source adapters

    Adapters for several agent runtimes, Agent Forge execution events, DASP envelopes, the Rectangle site’s business events, and the Atlas feed.

  • Renderer and scenarios

    A Three.js renderer with Business and Developer views and eight scenarios, seven of them business scenarios.

  • Five WebMCP tools

    Defined with Agent Forge and registered in the browser.

  • Static demo bundle

    The public demo makes no API calls and contains no secrets.

Context

Approvals in the demo are scripted and all scenario data is synthetic.

Next step

Have a similar problem?

Describe it in a few sentences. You get a draft brief to review before anything is sent.

Get in touch

Farwhen

Behind the experience

The systems this project uses, grouped by the part of Farwhen they belong to.

Our technology

What it runs on

  • Agent City

    This is Agent City itself.

  • Agent Forge

    Defines the demo’s five WebMCP tools and emits the execution events the city renders.

  • DASP

    DASP envelopes are one of the event sources the city adapts.

Built with

  • TypeScript
  • Three.js
  • Vite
  • Agent Forge
  • WebMCP
  • node:test
  • Vercel

Credit

Built by Dream Awake Labs. Private repository. All scenario data is synthetic.

Get in touch

Tell us what you have in mind.

Describe it in a few sentences. You get a draft brief to review before anything is sent.