AI Engineer โข Former Particle Physicist โ๏ธ โข Former Risk Modeler ๐
I've spent my whole career looking inside systems that would rather stay opaque โ first particle collisions, then risk models, now neural networks.
The models talk to us all day. I want to be able to affect them back.
So I build tools that make neural networks less mysterious โ because interpretability shouldn't stay in research papers, it belongs in production. (And in zombie games. And in mushroom generators. You'll see.)
Why I'm really doing this โ the manifesto
My personal site is a chat with a tiny LLM running entirely in your browser, and every answer it generates renders as a real particle collision. Click the event below to fire your own question into the chamber:
๐ My main project is an opensource model interpretability lab - I develop it here and experiment with it on a real production app
The stack that makes a model legible in production โ from watching, to diagnosing, to fixing. Watch it think (brainscope) โ diagnose why it did that (causal replay + the lens) โ fix it at the source with a calibrated steering vector, receipts attached (hidden-directions โ hotwire-vllm). Observability first; intervention last, once the instruments have earned it.
Tip
Don't read โ just do it. The core of the lab is on PyPI:
pip install hidden-directions brainscope hotwire-vllm
โ the vector factory with its eval framework, the live lens server, and the production vLLM steering plugin. Everything below runs on CPU or a free Colab GPU:
brainscope --model tinyโ a browser view of a model thinking (CPU is fine)make demoin steering-mechanics โ real measured figures, no GPU at all- point your own OpenAI client at brainscope โ watch your app's live traffic
No account, no course โ install and look.
The lab runs one pre-registered research question: when does a steering vector generalize from calibration to deployment โ and what do steering evals actually measure? The hypotheses were written before the data, and they're allowed to lose.
Click any box to open its repo.
flowchart TD
hd["๐งญ <b>hidden-directions</b><br/>behavior โ vector"]
bs(["๐ง <b>brainscope</b><br/>watch a model think<br/>(on your running app)"])
st["๐น๏ธ <b>steeropathy</b><br/>agents talking through activations"]
tm["โ๏ธ <b>in-two-minds</b><br/>agent hesitating between tools"]
hw["๐ฅ <b>hotwire-vllm</b><br/>steering in production vLLM"]
sm["๐งช <b>steering-mechanics</b><br/>how steering actually works"]
hd -->|"vectors"| bs
bs -->|"hosts & captures"| st
bs -->|"hosts & captures"| tm
st -.->|"steers with"| hd
hd -->|"vector + passport"| hw
bs <-.->|"same spec: lab โ prod"| hw
bs -->|"causal replay"| sm
hw -.->|"vector under study"| sm
click hd "https://github.com/moudrkat/hidden-directions"
click bs "https://github.com/moudrkat/brainscope"
click st "https://github.com/moudrkat/steeropathy"
click tm "https://github.com/moudrkat/in-two-minds"
click hw "https://github.com/moudrkat/hotwire-vllm"
click sm "https://github.com/moudrkat/steering-mechanics"
classDef engine fill:#1f6feb,stroke:#1158c7,color:#ffffff;
classDef exp fill:#8957e5,stroke:#6e40c9,color:#ffffff;
class bs,hd,hw engine;
class st,tm,sm exp;
The blue boxes are the instrument. brainscope hosts any Hugging Face model and streams its internals to the browser; hidden-directions makes the steering vectors โ auto-calibrates them (Optuna, with a KL damage guard), bakes them into weights, then audits for the bake; hotwire-vllm takes those vectors to production โ steering inside vLLM's CUDA graphs, per request, steered speed = vanilla vLLM. All three speak one steering spec: a vector calibrated under the lens deploys unchanged, and a misbehaving production conversation replays back under the lens.
The purple boxes are experiments run under that lens. steeropathy wires agents together through activations instead of text; in-two-minds catches an agent hesitating between tools before it commits; steering-mechanics asks how steering vectors actually work inside the model.
Collaborators and users โ not a job (see the manifesto).
If you build on LLMs and want to see inside your model, or you work on
steering / interpretability and want to compare notes โ or run
SteerBench
against your own method โ open an issue on any repo and say hi. The single
best thing you can do: pip install, try it, and tell me where it breaks.
๐ฌ Also on the bench โ smaller, self-contained ways to look inside
- ๐ paper-remembers โ Hopfield's 1982 paper, running live: rub out any part of the page and watch it rebuild itself
- ๐ญ sixteen-voices โ how a tiny transformer encodes writing style, through LoRA adapters and attention heads
- ๐๏ธ show-me-your-attention โ attention maps and neuron activations over your own prompt
- ๐ฅ detektor โ the collision chamber above, open source (SmolLM2 in your browser, no server)
- ๐ผ๏ธ jepa-demo โ I-JEPA & V-JEPA 2 hands-on, no GPU needed, with a visual deep-dive article
- ๐ Mushroom-generator โ a VAE growing mushrooms, with latent-space walks and the decoder taken apart layer by layer
- ๐ Applepear โ apples vs pears in a tiny CNN, activations and grad-CAM included
- โ๏ธ Minimize_me โ race TensorFlow optimizers across loss landscapes
๐ And off the bench
- ๐จ personal-rembrandt โ you can't build a personal brand, so build a personal Rembrandt: paste your bio, GPT-2 reads it in your browser, and its activations repaint his 1659 self-portrait.
- ๐๏ธ go-to-damn-bed โ a Claude Code skill that sends you to bed like a mom sends naughty children: it saves your work into TOMORROW.md, then counts to three. It never says what happens at three
- ๐ KingOfDiamonds โ the King of Diamonds game from Alice in Borderland, played by LLMs in character, recursive strategic thinking and all
- ๐จ๏ธ paralel-discordverse โ your company's Discord gets a parallel universe, populated entirely by fictional colleagues
- ๐งฎ least-squares-method โ code archaeology: a printed Pascal listing, photographed page by page and revived on Turbo Pascal 5.5
None of it is perfect. That's kind of delightful.



