I programmed my laptop webcam to answer 36 natural language questions 4 times per second.
Introducing Vertix: a VLM based decision engine inspired by jev's architecture, this can be huge for robotics, security cameras, game testing, self driving or any other visual reasoning system.
Most VLM demos ask a model to describe an image. Robots and monitoring systems don't need descriptions. They need answers to specific questions, many at once, over and over:
> Is a person present in the frame?
> Is the person holding a pen?
> Is the door behind them open?
> Is anyone on their phone?
Asking a VLM each of those as a separate prompt means re-encoding the image and decoding text every time. I've built the opposite: encode the video once, fork every question off that shared state in a single batch, and read a probability instead of generating tokens. On an Apple M5 laptop it answers 36 questions about the last 2–4 seconds of webcam video every ~250 ms, Completely locally.
> The core idea: encode once, fork many
A decoder-only VLM is causal. Tokens only attend backward. So if a frame is processed as a prefix, its KV state is independent of anything that comes after it. Every question can reuse that state:
frame > vision encoder > LM prefix > prefix state > batch questions answered with output probabilities
Each question is one row in a batch that reads the same prefix. Attention never crosses batch rows, so this gives exactly the isolation a block-diagonal "tree attention" mask would, without building a mask. The answer is the softmax over the Yes/No logits at the last token of each question. There's no decoding loop.