Rendering layer
v1.4StableVirtual Browser Protocol
A simulated browser that gives models accurate rendering context.
- Rust
- TypeScript
use legion_vbrowser::{Session, Viewport};
let mut session = Session::new(Viewport::desktop());
let frame = session.render(&vdom_tree)?;
// Verify before a human ever sees it
assert!(frame.matches(&expected_layout));
- Version
- v1.4
- Status
- Stable
- License
- Open specification
- Implementations
- Rust · TypeScript
- Stack layer
- Rendering
What the spec defines
The guarantees, not the vibes.
The Virtual Browser Protocol defines a simulated browser environment that gives models accurate rendering context — layout, viewport, and interaction state — without the cost of driving a real browser. Rendering resolves deterministically from the document and viewport description, so the same input always produces the same boxes.
That determinism is what makes verification practical. Paired with the Virtual DOM Protocol, it lets Nokuva check every generated interface against its intended layout before a human sees it: the resolved frame either matches or the diff names the node that drifted.
The cost profile is the point. A real browser process per generation iteration is the single largest expense in naive generative-UI pipelines; a protocol-level simulation runs the same check in a fraction of the compute. Less compute per iteration, more iterations per idea.
The spec and the Rust reference implementation are published openly, with TypeScript bindings for web tooling. The verification hooks are the same ones our own canvas uses in production.
Proven in production