AI

Tooling · AI vision

VSON

A notation inspired by predicate logic, for AI vision.

VSON screenshot

Visual Scene Ontology: every claim a vision-language model makes about an image (object, property, spatial relation, action) becomes a graph assertion a validator checks, so a claim that hides its viewpoint or drops an argument fails the build instead of passing review. Ships a Rust CLI, a Python API, an MCP server, and a keyless browser studio.

01 · Challenge

I studied analytical philosophy and got obsessed with turning anything into logical form. Image models are vague in exactly the way philosophy hates: "move the lamp a bit to the left." Left from where? The model picks a viewpoint, you meant another, and you go three rounds.

02 · Decision

A notation for what an image shows, borrowed from predicate logic. Every claim declares every argument it takes, viewpoint included. Drop one and the document fails, and tells you which rule refused it.

03 · Outcome

An underspecified claim is now a failing check instead of a vibe, across a Rust CLI, a Python API, an MCP server, and a browser studio. Worth being exact about the boundary: SHACL validates the shape of a claim, not its truth. LEFT-OF(cup, laptop, viewpoint=camera) passes every shape and is still wrong if the cup is on the right. Catching that second class is what a labeled benchmark is for, and that is the next piece of work.