Open Visualization Protocol

Describe the chart once.
Every renderer draws the same pixels.

OVP is an open, deterministic, AI-native standard for information design. A visualization is an instruction, not an artwork: Render CH-TIM-02 in DL-03 with data.json. Any agent, human, or renderer that speaks the protocol produces the same visual result from the same instruction.

16DESIGN LANGUAGES
74CHART OBJECTS BUILT
8ANALYTICAL PATTERNS
11COMPONENTS
6RECIPES
1184GOLDEN RENDERS

The principles

Deterministic by contract

Same spec, same tokens, same data: byte-identical output, every run, every machine. No randomness, no timestamps, no jitter. A QA gate re-renders every golden and blocks the repo on a single byte of drift.

Roles, never hex

Chart specs name color roles (primary, muted, negative). Design languages bind roles to hex. Rebranding a whole deliverable is swapping one token file; no spec changes, no re-authoring.

Honest by rule

Zero baselines. Direct labels instead of legends. Declared inputs only: no silent KDE, no silent trend lines, no unstated normalization. Every chart ships with anti-patterns and a QA checklist.

Message first

Charts are coded by what the message is (ranking, deviation, distribution), not by shape. The first question an agent answers is "what is the message"; the shape is metadata.

AI-native

A controlled intent vocabulary, machine metadata on every object, a decision engine for language choice, and copy-paste blocks in two flavors: hex-resolved for design systems, role-based for themeable skills.

Canonical JSON, generated everything else

Specs and tokens are the source of truth. Blocks, chooser, decider, pattern docs, previews, and this entire site are generated from them and drift-gated where it matters.

How an agent resolves a request

1. Decider picks the design language from audience, purpose, and medium.  2. Patterns map what was found in the data to chart codes.  3. Charts disambiguate by message intent, with "see instead" exits.  4. Render the code in the language: exact px, exact hex, no adjectives.

Learn

Manifesto

Why OVP exists and the seven laws that never break: determinism, roles never hex, honesty by construction, message first.

Foundations

The rule sets everything builds on: token contract, canvas and grid, type scale, contrast, numbers and scales, perceptual research.

Reference

The protocol

The normative reference: object grammar, layer model, determinism contract, conformance levels, lifecycle and stability policy.

Taxonomy

The full object map: every family, every entry, statuses, and the exclusions with their reasons.

Explore

Design languages

16 complete visual identities, each built on a philosophy: a civilization, a principle, a motto, and design laws that explain why the rules exist.

Chart objects

74 built entries coded by message family, each with exact geometry, honesty rules, QA checklist, golden renders in all 16 languages, and one-click copy blocks.

Build

Business questions

Start from what is being asked: each question names its observations, patterns, charts, and the narrative skeleton that tells the finding.

Analytical patterns

The layer above charts: recognize what the data shows, read its meaning, take the recommended chart codes.

Language decider

Audience, purpose, medium in; design language out. Ordered rules over a controlled vocabulary, validator-enforced.

Components

Titles, sources, KPI cards, chips, callouts: the furniture around charts, same role contract, composable into recipes.

Recipes

Fully determined pages: language, charts, components, exact positions. A recurring deliverable renders identically forever.

Implement and automate

Implement

Build an OVP-conformant renderer or validator from the published schemas, the determinism contract, and the conformance levels. No questions to the authors required.

AI

How agents speak OVP: the resolution order, the machine registry, the controlled vocabularies, and the copy-paste blocks.

Get the code

Every chart page carries copy buttons for two block flavors. Design-system blocks resolve colors to hex for one language: paste into any CLAUDE.md or design-system doc, zero dependencies. Skill blocks stay role-based: paste next to a language token block and re-theme by swapping that one block.