Seven things I've built, drawn the way an aircraft draws its own systems: what goes in, what happens to it, and what comes out. Press a demo where there is one. Every figure on these pages comes from the project itself — its README, its benchmark run, or its package index — and says where.
STATUS
Fleet
Seven systems. Four are shipped and reachable; three are research you can read.
Select a system below, or press its ident on the control row
Four independent tests on one document, fused into a verdict and a heatmap.
RESEARCH
DOCROT
docrot
PUBLISHED
Finds the lines in your docs that your code stopped supporting.
drag the drawing sideways to see all of it →
$ docrotdocs/advanced/transports.md:178:53 PY003 error `httpx.Mounts` is documented but has never existed written at 3faa4a8 (2024-02-14)docrot: 187 references | 82 resolved | 85 unknown (skipped) | 1 findings (1 error)
Real output, quoted from the project's README — its first run against httpx.
Documentation rots quietly: a symbol is renamed, a path moves, a make target disappears, and the prose referencing it keeps claiming otherwise. Coding agents now read AGENTS.md and CLAUDE.md as ground truth on every run, so one stale path silently misdirects every session.
docrot resolves every reference in your prose against the codebase using static analysis and git history — no LLM anywhere in the loop — and reports what no longer resolves, with the commit where the claim was written and the commit where it broke.
found a documented class that has never existed, on its first run against httpx (~14k stars)source: the project's README
PRIOR
28.9% of the top-1000 GitHub projects document a code element that no longer existssource: DOCER, Empirical Software Engineering 2023 (arXiv 2212.01479), cited by the README
Maps the string-typed joins where full-stack repos actually break.
drag the drawing sideways to see all of it →
The seven seam kinds, each one a string no compiler checks.
Every code-graph tool models code calling code: imports, symbols, call trees. But real breakages live in the seams between languages — a fetch path against a route decorator, an env var against a compose file, a template name against a file on disk. Those joins are strings, so no compiler checks them and no import graph sees them.
seamgraph indexes seven kinds of seam deterministically and serves them to agents over MCP, so "what references this route?" is one call instead of a grep-storm.
Machine-checkable rules an AI coding agent has to pass before it edits.
drag the drawing sideways to see all of it →
What the engine refuses, and at which gate.
Agents generate good edits and bad boundaries: they refactor adjacent subsystems, import a database handler into a view controller, change behaviour without touching a test, or wander into .env. Asking them to understand the architecture does not reliably stop any of it.
repo-contract takes the opposite approach — declare the negative constraints in YAML, validate the plan before the agent edits and the diff afterwards, and refuse deterministically with a reason a human can read.
Listens to a suspicious call and interrupts the scam before the money moves.
drag the drawing sideways to see all of it →
Call Guard interrupts mid-call with the pattern it recognised.
Fake-police "digital arrest" scams work by isolating an older person and holding them on a call under manufactured authority. The decisive window is the few minutes before a transfer, and in that window the victim is alone.
Second Opinion listens on speakerphone, recognises the coercion pattern rather than any particular script, warns the person calmly in English or Hindi, pulls in a family guardian, asks for a cool-off hold, and drafts the cybercrime complaint. There is no server — the browser talks to Gemini through Firebase AI Logic on the free plan.
BUILT FOR
AI Builder Cup 2026, Google Cloud JAPAC — Social Goodsource: README
AUDIO
16 kHz PCM in 8-second slices to Gemini Flash-Litesource: README's architecture graph
VISION
a frame check every 15 seconds for screen-share coercionsource: README's architecture graph
LOSSES
India 2024 — ₹1,935 crore to digital-arrest scams across 1.23 lakh complaintssource: the project's Impact page (shared/stats.json)
LOSSES
Japan 2025 — ¥142.3B to special fraud; people aged 65+ bore 59.2% of lossessource: the project's Impact page (shared/stats.json)
Rule-based Nifty 50 baskets, recomputed every weekday after the close.
drag the drawing sideways to see all of it →
The live site, embedded. Nothing loads until you press it.
A backtesting study over 107,000+ strategy configurations, survivorship-corrected and replicated across independent data, left a handful of rules standing. This publishes what those surviving rules say today.
GitHub Pages only serves static files, so the computation runs in GitHub Actions at 19:00 IST each weekday and the site displays its latest result. The panel below is that site, live.
STUDY
107k+ configurations, survivorship-corrected, replicated on independent datasource: README
SLEEVES
6 — four monthly rank-based baskets, two event sleevessource: README's view table
CYCLE
regenerates 19:00 IST every weekday, and on demandsource: .github/workflows/pages.yml
CAUTION
Not investment advice. The honest point-in-time edge is modest — Sharpe ~0.5–0.8, drawdowns of 30–50% — and past results don't predict future returns.source: the project's own README disclaimer
Swaps a pixel-by-pixel template scan for nearest-neighbour search over embeddings.
drag the drawing sideways to see all of it →
Where the cost goes when the template set grows.
Comparing a query image against a template set pixel by pixel costs more with every template you add. Encoding each template once as a feature-map embedding turns the same question into a nearest-neighbour lookup, which barely notices how large the set has grown.
ResNet-101 extracts the feature maps, they go into Qdrant as vectors, and a query returns its ten closest matches.
ENCODER
ResNet-101 feature maps → vectorssource: README
INDEX
Qdrant vector search enginesource: README
QUERY
returns the top 10 most similar imagessource: README
Four independent tests on one document, fused into a verdict and a heatmap.
drag the drawing sideways to see all of it →
Four tests, four failure modes, one fused score.
No single signal catches a forged document: metadata can be stripped, compression artifacts can be hidden, and a clean-looking crop can still be missing a clause. So this runs four unrelated tests and fuses them.
Metadata analysis, Error Level Analysis through a CNN with SRM-initialised high-pass filters, a two-stream RGB + DCT analyser that outputs a manipulation heatmap, and SSIM template matching against a ground truth to box what was added or removed.
STAGE 1
metadata — ISO value, creation against modified timestamps (weighted 10/100)source: README
STAGE 2
ELA — an SRM-initialised CNN as a dense patch descriptor, with feature fusionsource: README