SurfaceAI is an open architecture that turns natural language into live, interactive presentations — no code, no build step, no deploy pipeline.
Today, turning an idea into something people can see and use requires a long, fragile pipeline.
SurfaceAI collapses this into something fundamentally simpler:
A minimal, complete instruction set that AI can speak natively to create anything a presentation needs.
A compact intermediate representation designed specifically for AI to produce. Not generated code — a direct stream of typed instructions that the runtime understands immediately.
Six primitives and thirty-one macros cover every layout, content, data, input, navigation, and transition pattern. A complete visual language in a single byte per instruction.
Content appears as it's generated. The runtime renders incrementally — no waiting for a full response. The moment the AI thinks it, you see it.
A built-in state table with observable bindings. User interactions, computed values, and data flows are first-class concepts — not afterthoughts bolted onto a UI framework.
Every piece of state declares how long it lives and who can see it — from session-only locals to permanent shared records. No separate database or API layer required.
An open specification anyone can implement. Runtimes can be built for the browser, native platforms, embedded systems — anywhere a surface can appear.
The design decisions behind SurfaceAI come from a few strong convictions.
Everything a human needs to show, interact with, or persist fits within a small, finite set of patterns. We don't need infinite flexibility — we need the right constraints.
Generating source code so a compiler can turn it back into instructions is unnecessary indirection. Let the model produce the instructions directly.
Streaming IR means the first pixel appears in milliseconds, not after a full round-trip. Progressive rendering turns generation time into a feature.
Reactivity, data binding, and persistence belong inside the runtime — not delegated to external frameworks, databases, or duct-tape integrations.
Once an opcode is assigned, it never changes. Content created today will render correctly on any compliant runtime, indefinitely.
We're building in the open. Join the list to get updates on the specification, early runtime access, and a seat at the table as the architecture evolves.
No spam, ever. We'll only email about meaningful milestones.