Twelve experiments. Every one of them is the same question in a different domain.
Four divisions. Grouped by the question the work asks, not the language it happens to be written in.
Every card is a real repository. Open the notebook under it for the objective, the failure it guards against, the architecture and the stack.
Can a system diagnose a fault and act on it without a human in the loop?
Open the notebook — EXP-01 FaultSeeker
Objective. Locate the vulnerability behind an on-chain exploit by replaying the transaction that caused it.
The problem. After a smart contract is drained, the evidence is a raw trace. Reading it by hand is slow, and a wrong conclusion is worse than none.
Architecture. Trace ingestion across EVM chains, a reentrancy detection engine, and a confidence calibrator that reports how much the verdict should be trusted.
flowchart LR
S0("Trace")
S1("Replay")
S2("Detect")
S3("Calibrate")
S4("Verdict")
S0 --> S1 --> S2 --> S3 --> S4
| Stack | Python · EVM traces · Ollama · OpenAI · Gemini · Claude · Qwen · LaTeX |
| Language | Python |
| Licence | Apache-2.0 |
| Created | 13 March 2026 |
| Repository | FaultSeeker- |
| Status | Open source, no public deployment |
Carries a LaTeX survey paper alongside the code. The only repo of the twelve with an outside fork.
Open the notebook — EXP-05 RepoMedic-Agent
Objective. Audit any GitHub repository or local codebase and return one health report.
The problem. Code review catches the diff. Nobody reviews the repository itself -- its secrets, its missing tests, its stale dependencies.
Architecture. Six skills run in sequence -- repo analysis, security scan, doc analysis, test analysis, dependency analysis, scoring -- producing a weighted score, ranked issues and quick wins as structured JSON.
flowchart LR
S0("Clone")
S1("Six skills")
S2("Score")
S3("Rank")
S4("Report")
S0 --> S1 --> S2 --> S3 --> S4
| Stack | Node.js 18+ · gitagent · GitHub API · npm registry |
| Language | JavaScript |
| Licence | MIT |
| Created | 3 April 2026 |
| Topics | ai-agent · code-quality · dev-tools · gitagent · gitclaw · hackathon · nodejs · security |
| Repository | RepoMedic-Agent |
| Status | Open source, no public deployment |
Audits itself in CI. Secrets are masked in every finding.
Open the notebook — EXP-10 neuroops
Objective. Detect a cluster incident, find the root cause, and remediate it without paging a human.
The problem. On-call exists because the diagnosis step is human. An agent that guesses the cause and acts on it is more dangerous than the outage.
Architecture. A LangGraph multi-agent root-cause pipeline over Kubernetes, instrumented with OpenTelemetry so the agent's own reasoning is observable, and benchmarked against deliberately injected chaos experiments.
flowchart LR
S0("Detect")
S1("Diagnose")
S2("Plan")
S3("Remediate")
S4("Verify")
S0 --> S1 --> S2 --> S3 --> S4
| Stack | Python · LangGraph · Kubernetes · OpenTelemetry · Chaos engineering |
| Language | Python |
| Licence | MIT |
| Created | 22 May 2026 |
| Repository | neuroops |
| Status | Open source, no public deployment |
Self-observability is the point -- the agent is measured the way it measures the cluster.
Can a model answer only from evidence it is able to cite?
Open the notebook — EXP-02 StudyMind
Objective. Upload PDFs, get summaries, and hold a conversation with your own notes.
The problem. A general chatbot will answer confidently about a document it has never read.
Architecture. React client, Node service, MongoDB store, JWT auth, Claude for summarisation and chat.
flowchart LR
S0("PDF")
S1("Index")
S2("Retrieve")
S3("Summarise")
S4("Chat")
S0 --> S1 --> S2 --> S3 --> S4
| Stack | React · Node.js · MongoDB · JWT · Claude |
| Language | JavaScript |
| Licence | none declared |
| Created | March 2026 |
| Repository | StudyMind |
| Status | Prototype, no public deployment |
The earliest retrieval experiment. Everything in Division 02 is a stricter answer to the same question.
Open the notebook — EXP-09 AI-Sakhi
Objective. Teach, then measure whether the teaching worked, then adapt -- with every claim traceable to a source page.
The problem. A tutor that hallucinates does not merely fail to teach. It installs a misconception that has to be removed later.
Architecture. Next.js 16 standalone and FastAPI. Retrieval uses all-MiniLM-L6-v2 embeddings in ChromaDB with page-level attribution and a distance threshold that refuses to answer rather than guess. SM-2 spaced repetition schedules review; a mastery score combines accuracy, difficulty, recency and hint penalty; a deterministic, auditable classifier labels misconceptions. JWT, role-based access and tenant isolation across student, teacher, guardian and admin roles.
flowchart LR
S0("Diagnose")
S1("Teach")
S2("Practise")
S3("Measure")
S4("Adapt")
S0 --> S1 --> S2 --> S3 --> S4
| Stack | Next.js 16 · FastAPI · Python 3.11 · Groq · Llama · ChromaDB · all-MiniLM-L6-v2 · SQLite WAL · JWT · Docker |
| Language | TypeScript |
| Licence | none declared |
| Created | 12 May 2026 |
| Repository | AI-Sakhi |
| Status | Prototype, no public deployment |
The retrieval threshold is a refusal mechanism: below it, the system declines to answer.
Open the notebook — EXP-11 VetAid
Objective. Give a pet owner calm, step-by-step first aid during an emergency, with every step cited.
The problem. An owner searching during an emergency gets contradictory advice from strangers. A hallucinated instruction here can kill the animal.
Architecture. Streamlit interface over a LangChain and ChromaDB retrieval pipeline into Groq-hosted Llama 3.1. Species-aware filters for dog, cat and other; inline citations with expandable source evidence; conversational memory across follow-ups; indexes both the bundled manuals and user-uploaded PDFs.
flowchart LR
S0("Symptom")
S1("Filter")
S2("Retrieve")
S3("Cite")
S4("Guide")
S0 --> S1 --> S2 --> S3 --> S4
| Stack | Python · Streamlit · LangChain · ChromaDB · Groq · Llama 3.1 |
| Language | Python |
| Licence | none declared |
| Created | 2 July 2026 |
| Topics | ai-assistant · chatbot · chromadb · groq · langchain · llama3 · rag · semantic-search · streamlit |
| Repository | vetaid-rag-assistant |
| Status | Prototype, no public deployment |
Ships a warning that it is not a substitute for a veterinarian. Knowing the limit is part of the design.
Can a single camera frame become a decision?
Open the notebook — EXP-03 Pothole-Detection
Objective. Detect potholes in a live camera feed, a video file, or a still image, and log every detection.
The problem. Road defect surveys are manual. A detector is only useful if it runs on the hardware a survey team already has.
Architecture. YOLOv8 inference behind both a Flask dashboard and a CLI, with webcam, video and image inputs and CSV export.
flowchart LR
S0("Frame")
S1("YOLOv8")
S2("Detect")
S3("Log")
S4("CSV")
S0 --> S1 --> S2 --> S3 --> S4
| Stack | Python · YOLOv8 · Flask · OpenCV · CSV export |
| Language | Python |
| Licence | none declared |
| Created | March 2026 |
| Repository | Pothole-Detection |
| Status | Prototype, no public deployment |
First perception experiment. Two interfaces over one model -- a pattern that repeats later.
Open the notebook — EXP-07 ecosentinel
Objective. Watch air quality and wildfire risk on one map, and forecast where the readings are heading.
The problem. Environmental data arrives from separate feeds at separate cadences, and none of them tell you what happens next.
Architecture. Next.js 16 and React 19 front end with Three.js, Leaflet and Recharts; FastAPI backend on SQLModel and Alembic over PostgreSQL; Gemini Vision for imagery, Prophet for PM2.5, CO2 and NO2 forecasting, Whisper for speech input, NASA FIRMS for wildfire coordinates.
flowchart LR
S0("Feeds")
S1("Ingest")
S2("Prophet")
S3("Map")
S4("Forecast")
S0 --> S1 --> S2 --> S3 --> S4
| Stack | Next.js 16 · React 19 · Tailwind v4 · Three.js · Leaflet · FastAPI · SQLModel · Alembic · PostgreSQL · Gemini Vision · Prophet · Whisper · NASA FIRMS |
| Language | TypeScript |
| Licence | MIT |
| Created | 19 April 2026 |
| Topics | air-quality · climate · computer-vision · docker · environmental-monitoring · fastapi · full-stack · machine-learning · nextjs · react · typescript · wildfire-detection |
| Repository | ecosentinel |
| Status | Open source, no public deployment |
Ships its own design system rather than a component library.
Open the notebook — EXP-12 ReloopAI
Objective. Turn one photo of surplus into a matched, routed, tracked and impact-reported pickup.
The problem. Surplus is redistributed by phone calls and spreadsheets, so it expires before it reaches anyone.
Architecture. Vision, OCR and an LLM run in parallel on the uploaded photo to draft the listing. A weighted scorer ranks recipients on distance 30, urgency 25, category fit 20, storage 15 and availability 10. Three n8n workflows then orchestrate approval, dispatch and the post-pickup impact receipt. The AI layer is provider-agnostic and boots with no keys at all on a mock provider.
flowchart LR
S0("Photo")
S1("Vision + OCR")
S2("Match")
S3("Dispatch")
S4("Receipt")
S0 --> S1 --> S2 --> S3 --> S4
| Stack | React 18 · TypeScript 5.6 · Vite 6 · Three.js r169 · Framer Motion · Node 20 · Express · MongoDB · Groq · Llama 3.2 Vision · n8n · SendGrid · Twilio · S3 |
| Language | TypeScript |
| Licence | MIT |
| Created | 13 July 2026 |
| Repository | ReloopAI |
| Status | Live — deployed and reachable |
| Live | reloop-ai-liart.vercel.app |
The only experiment with a public deployment, and the most committed-to of the twelve.
Can we test the consequence before it reaches the world?
Open the notebook — EXP-04 Deploy-Platform
Objective. Give a single machine the deploy-a-container-and-get-a-URL workflow of a hosted PaaS.
The problem. Managed platforms are the fastest way to ship and the fastest way to lose control of your own infrastructure.
Architecture. Go 1.22 API on the standard library with zero external dependencies, React and Vite dashboard, k3s for scheduling, a local Docker Registry v2, Nginx wildcard routing, and a JSON file as the database.
flowchart LR
S0("Push")
S1("Build")
S2("Registry")
S3("k3s")
S4("URL")
S0 --> S1 --> S2 --> S3 --> S4
| Stack | Go 1.22 · React 18 · Vite · k3s · Docker Registry v2 · Nginx |
| Language | Go |
| Licence | MIT |
| Created | 30 March 2026 |
| Topics | container-registry · deployment · devops · docker · docker-compose · golang · heroku-alternative · k3s · kubernetes · nginx · paas · platform-engineering · react · self-hosted · vite · wsl2 |
| Repository | Deploy-Platform |
| Status | Open source, no public deployment |
Zero external Go dependencies. The whole API is standard library.
Open the notebook — EXP-06 LifeSim-AI
Objective. Play out a sequence of financial life decisions and see the compounded consequence.
The problem. Financial advice is abstract until you watch a choice compound against you.
Architecture. A deterministic rules engine with clamped effects and hidden traits runs the simulation locally; an optional AI mode narrates it. The rules engine is authoritative either way.
flowchart LR
S0("Choice")
S1("Rules")
S2("Clamp")
S3("Compound")
S4("Outcome")
S0 --> S1 --> S2 --> S3 --> S4
| Stack | TypeScript · React · OpenAI · Gemini · Qwen |
| Language | TypeScript |
| Licence | none declared |
| Created | 9 April 2026 |
| Repository | LifeSim-AI |
| Status | Prototype, no public deployment |
Clearest statement of the fallback pattern -- the model narrates, the rules engine decides.
Open the notebook — EXP-08 SETRS
Objective. Hold a green corridor ahead of a moving ambulance by predicting its trajectory and preempting the signals on its path.
The problem. An ambulance loses minutes at intersections it was always going to reach. The signals only react once it arrives.
Architecture. SUMO traffic simulation driven through TraCI, a FastAPI control service, and a React operations view -- the corridor is proven in simulation before any real intersection is touched.
flowchart LR
S0("Trajectory")
S1("Predict")
S2("Preempt")
S3("SUMO")
S4("Corridor")
S0 --> S1 --> S2 --> S3 --> S4
| Stack | Python · SUMO · TraCI · FastAPI · React |
| Language | Python |
| Licence | none declared |
| Created | 26 April 2026 |
| Topics | ambulance-routing · emergency-response · fastapi · intelligent-transportation-systems · react · smart-city · sumo-simulation · traci · traffic-signal-preemption |
| Repository | SETRS-Trajectory-Preemption |
| Status | Prototype, no public deployment |
The strongest case for simulating first -- the failure mode here is measured in lives.
These repositories were not planned as an ecosystem. The connections are there anyway, because the same conclusions kept getting reached. Read across a row to see who shares a decision; read down a column to see what a system is made of.
The same graph, as a graph
flowchart TB
subgraph SHARED ["Shared decisions"]
ROUTE("Multi-provider routing")
FALL("Deterministic fallback")
CITE("Grounding and citation")
SCORE("Weighted scoring")
SIM("Simulate before shipping")
end
ROUTE --> FaultSeeker & ReloopAI & LifeSim
FALL --> ReloopAI & LifeSim & AISakhi & FaultSeeker
CITE --> AISakhi & VetAid & StudyMind
SCORE --> ReloopAI & AISakhi & RepoMedic
SIM --> SETRS & neuroops & LifeSim
FaultSeeker("FaultSeeker")
ReloopAI("ReloopAI")
LifeSim("LifeSim-AI")
AISakhi("AI-Sakhi")
VetAid("vetaid-rag-assistant")
StudyMind("StudyMind")
RepoMedic("RepoMedic-Agent")
SETRS("SETRS-Trajectory-Preemption")
neuroops("neuroops")
01 Never depend on one model
Four repositories put two or more providers behind a single interface. ReloopAI goes furthest: it boots and stays browsable with no API key at all.
FaultSeeker · ReloopAI · LifeSim-AI · AI-Sakhi
02 Make the answer show its evidence
AI-Sakhi attributes to the page and refuses below a distance threshold. VetAid puts citations inline and lets you expand the source. FaultSeeker reports a calibrated confidence with its verdict.
AI-Sakhi · VetAid · FaultSeeker · StudyMind
03 Simulate before it reaches the world
SETRS proves an ambulance corridor in SUMO before touching an intersection. neuroops benchmarks its own agent against injected chaos. LifeSim keeps a deterministic engine authoritative over the narration.
SETRS · neuroops · LifeSim-AI
The next step is the one the log is already pointing at. The twelve experiments taught me how to make a single system behave; what they have not yet taught me is how to prove it. AI-Sakhi has release gates, neuroops benchmarks itself against injected chaos, FaultSeeker reports a calibrated confidence, RepoMedic audits its own repository in CI. Four separate attempts at the same missing discipline: evaluation.
So that is where I am going. AI engineering where the evaluation harness is built before the feature, where refusal is a designed behaviour rather than an edge case, and where a system that cannot show its evidence is not considered finished.
I am looking for AI or ML engineering work where that is the standard.
How this page is built
Every image on this page is an SVG generated by a Python script in scripts/. Nothing is hand-drawn, nothing is stock, nothing was downloaded. The facts all live in one file, scripts/repos.py, which is also where this README's prose comes from — so the words and the pictures cannot disagree.
python3 scripts/build_all.py # regenerates every asset and this README
| Assets | 38 SVG files, light and dark pairs, roughly 3–20 KB each |
| Dependencies | none — the standard library draws the SVG by hand |
| Dark mode | <picture> with prefers-color-scheme, honoured natively by GitHub |
| Accessibility | every SVG carries <title> and <desc>; every <img> carries alt text; all body copy is real Markdown |
| JavaScript | none |
A word on honesty. This page shows no star counts, no follower counts and no streak graphics, because those numbers are currently zero and dressing them up would undermine everything else here. The counts that do appear — twelve repositories, four divisions, five months, one live deployment — are all verifiable from the repository list. One repository, foundry, is a fork of the Ethereum toolchain and is deliberately excluded from the twelve.
