Bitácora
Kiko Cisneros's research notebook. I build AI models and the tools to run them — and I jot down here what I learn along the way, with diagrams, things that move, and no needless jargon. For humans.
-
no. 12 · published
A model, its runtime, an agent, an IDE and your filesystem — all inside one browser tab.
No server, no account, no API key: you open a URL and a 4B model is running on your GPU, an agent is calling tools with it, a real VS Code editor is open, and it is editing files on your own disk. The whole stack, how it got assembled experiment by experiment, and the embarrassingly simple arithmetic that lets a little site with an elf on it be used every day, for free, forever.
6 aug 2026~9 minWebGPU · agents · local-first -
no. 13 · published
Two runtimes, four gigabytes, one browser tab.
Shipping the brain to the user: LiteRT-LM on WebGPU for Gemma-4, transformers.js/ONNX for the fallback, and three bugs that shaped the design — a
navigator.gputhat exists and lies, a quantization that produces fluent garbage, and the service worker we deliberately turned into a no-op after it broke the loading it was meant to accelerate.6 aug 2026~8 minWebGPU · LiteRT-LM · ONNX -
no. 14 · published
The entire agent is a fenced code block.
No function-calling API, no framework: one fenced JSON block, a six-step loop, and a context manager that re-decides on every turn what the model is allowed to remember (BM25-lite eviction, in a place where the attentions aren't reachable). Plus why the agency lives in the prompt and not in the weights.
6 aug 2026~8 minagents · tool use · context -
no. 16 · published
Four versions, each better than the last. None had been measured against doing nothing.
I shipped a context engine, wrote about it here, and improved it four times — every comparison against my own previous version. Then I added the dumbest possible baseline and found a fifty-point gap, an engine deaf to its own budget, a stopword list I improved by deleting, and the one that still surprises me: a well-chosen 8% of a conversation scores higher than handing the model all of it.
8 aug 2026~8 minretrieval · measurement · honesty -
no. 15 · published
Your folder never leaves your machine.
A web page that opens a real folder, writes to it, parses
.gitby hand, reads your actual.xlsx, watches folders and processes what you drop in, keeps secrets under AES-256-GCM — and, if you opt in, runsnodeandpythonfor real through a local bridge on loopback. Five tools, and the pagination detail that mattered more than the model choice.6 aug 2026~8 minFile System Access · Monaco · local-first
-
no. 11 · published
My AI wrote a flawless floor plan of a building it wasn't looking at.
A language model turned 3D scans into perfect, fluent floor plans — of a building it was ignoring. I proved it (delete the input, the output barely flinches), found the real signal sitting unused in the encoder, and fixed it by asking each point instead of the sentence. Walls, columns, doors and windows recovered decoder-free on real construction sites — plus the metric trap that nearly made me quit. All numbers held-out.
1 aug 2026~8 min3D · point clouds · honest
-
no. 10 · published
A Mac and a good idea is now enough to push AI forward.
One person's model conversion has 243k downloads. A small team took a 27B to 7 GB and ran it on an Apple laptop — I opened the weights to prove they weren't bluffing (2,560/2,560 groups: real ternary). A tour of the individuals and tiny teams moving AI forward with a laptop, a good idea, and the help of the models themselves. Great minds, amplified — not replaced.
16 jul 2026~10 minquantization · ternary · community -
no. 09 · published
I trained a model on the benchmark to make it better. It got worse — then I found the fix.
Fine-tuning a small model on a benchmark's own answers made it worse on every test — and worst on math it never saw. Then I changed one thing (the data, not the recipe) and the sign flipped. Same experiment, three models, all numbers published.
12 jul 2026~7 minfine-tuning · distillation
-
no. 08 · published
The tiny workspace where a small model does its thinking
Anthropic found that Claude reasons in a small hidden "workspace" separate from the words it says. I looked for the same thing in a 0.5B model that runs on a laptop — and found it, with a causal test you can reproduce. With the ablation shown live.
11 jul 2026~6 mininterpretability · reproduction
-
no. 01 · published
Every new AI model breaks the tooling. I built an engine that shrugs it off.
Why every new architecture forces engines to be rewritten from scratch, and how a single swappable piece avoids it. With an interactive demo of the engine's inner workings.
8 jul 2026~7 minRust · GPU · architecture -
no. 02 · published
How I ported a new kind of "attention" to Rust without missing a single decimal
The discipline of validating against ground truth (number by number, down to 0.0000001) before wiring anything up. With a demo where you compare the real output against the oracle.
9 jul 2026~6 minRust · validation · method -
no. 03 · published
Shrinking an AI model 3× with no data and no quality loss
A pure Rust compressor that keeps the weights compressed inside the GPU and decompresses them on the fly. With the chart of how much it really shrinks.
9 jul 2026~6 minRust · quantization · GPU -
no. 04 · published
Why a 3 GB model runs faster than a 14 GB one (and when it stops)
The bandwidth thesis, told honestly about where it stops holding. With a slider to find the point where the lines cross.
9 jul 2026~6 minperformance · GPU · memory -
no. 05 · published
The GPU trick: multiplying straight from compressed data, without unpacking it
A walkthrough of the Metal kernels that reconstruct the weights inside the register. With a demo that decodes code by code.
9 jul 2026~5 minMetal · GPU · kernels -
no. 06 · published
I optimized the GPU and it came out 20× slower. The lesson.
A negative result worth more than a success: why occupancy beats the traffic you save. With the GPU full vs empty, in plain sight.
9 jul 2026~5 minGPU · negative result · lesson -
no. 07 · published
When the honest thing is for your program to say "not yet"
How to half-support a trending architecture without pretending it works. With a terminal that spits out the honest error for real.
9 jul 2026~5 minengineering · honesty
This is a working notebook, not a magazine. I write as I build, I show what works and also what doesn't, and I steer clear of promising things I can't demonstrate. If something here helps you or proves me wrong, all the better.