// ai_demos & tools
Working prototypes and interactive experiments. Proof of concept beats proof of paper.
Voice Clinical Notes
Inspired by the documentation backlog problem depicted in The Pitt Season 2 — the gap between what clinicians know and what gets recorded. This tool reduces that gap to a single button tap. Press Record, dictate your note in plain English, press Stop, then tap Format. The NLP pipeline structures your dictation into a proper clinical note — Presenting Complaint, History, Examination, Investigations, Assessment, Plan — and places it on the clipboard, ready to paste into any EHR.
Share the formatted note instantly via WhatsApp, email, or SMS, or download it as a plain text or rich text file. The app works in Chrome, Edge, and Safari (iOS 15+), and is installable as a home-screen app on both iOS and Android via the Progressive Web App standard. Speech is transcribed on-device — no audio leaves your device.
Open Voice Clinical Notes →Clinical Text NLP Extractor
Paste any clinical note — discharge summary, outpatient letter, medication list, or ward round entry — and the extractor identifies and highlights six categories of entity in real time: medications, diagnoses, dosages, dates, lab values, and vital signs. Each entity is labelled with its type and a confidence score, and the full annotated note is displayed alongside a structured entity table.
The demo uses a deterministic rule-based pipeline — regex patterns for structured data types combined with curated medical vocabularies covering 250+ drugs and 300+ clinical conditions. The production system behind this uses a fine-tuned BioBERT model, SNOMED CT normalisation, and maps output to FHIR R4 resources for downstream integration with clinical data warehouses.
Open the NLP Extractor →LLM Agent Trace Visualiser
Paste any Claude or OpenAI agent session JSON and get an interactive step-by-step timeline of every message, tool call, tool result, and token count.
Accepts the Anthropic Messages API format, OpenAI Chat Completion responses, Claude extended thinking blocks, raw messages arrays, and the tool_calls / tool_result pair structure used by both APIs.
A metadata strip shows total tokens, message count, model name, and number of tool invocations at a glance.
The sample trace shows a six-step clinical agent session: a user query triggers NLP entity extraction, then drug interaction checking, then synthesis of a prioritised clinical summary — with extended thinking blocks and token accounting at each step. Useful for debugging why a multi-step agent looped, auditing token spend per reasoning step, or reviewing tool call inputs and outputs before deploying an agent to production.
Open the Trace Visualiser →Drug Interaction & Polypharmacy Checker
Enter any medication list — one drug per line, paste from a clinic letter, or dictate via the Voice Clinical Notes tool — and the checker screens every pair against a curated database of ~90 clinically significant interactions, graded as contraindicated, major, or moderate. Each flagged pair is presented with its pharmacological mechanism, clinical effect, and a specific management recommendation.
The database covers the interactions that kill or harm patients in practice: warfarin potentiation by amiodarone and fluconazole via CYP2C9 inhibition; the QTc-prolongation risk from combining antiarrhythmics with macrolides or antipsychotics; serotonin syndrome from MAOIs or linezolid combined with SSRIs or tramadol; the ACE inhibitor + NSAID + diuretic triple whammy; opioid + benzodiazepine respiratory depression; methotrexate toxicity from NSAIDs and antifolates; and more.
Open the Drug Checker →Binaural Beat Generator
Two pure tones — one delivered to each ear via stereo headphones — with a small frequency difference. Your auditory cortex perceives the difference as a rhythmic pulse at the beat frequency, an auditory illusion first described by Heinrich Wilhelm Dove in 1839. Select a carrier frequency (80–500 Hz), set the beat frequency, choose from four waveforms (sine, triangle, square, sawtooth), and hit play. The oscilloscope visualiser shows the summed waveform in real time as your brain entrains to the beat.
Six presets cover the canonical brainwave bands: Delta (2 Hz, deep sleep), Theta (6 Hz, meditation), Alpha (10 Hz, relaxed focus), Beta (18 Hz, active thinking), Gamma (40 Hz, peak cognition), and the Schumann resonance (7.83 Hz, Earth's electromagnetic background). Export any configuration as a 60-second stereo WAV file, rendered client-side via OfflineAudioContext — no server involved. Use headphones; the binaural effect does not work on speakers.
Open the Binaural Beat Generator →Algorithmic Trading Backtester
This tool lets you run a complete ML-based trading strategy backtest directly in your browser — no data download, no setup, no Python environment required. You select a machine learning model (Logistic Regression, Random Forest, or Gradient Boosting), tick the technical features you want it trained on (SMA crossover, RSI, momentum, MACD, volatility), set your starting capital and simulation length, then hit Run. Within a few seconds you get a full equity curve plotted against a buy-and-hold benchmark, a drawdown chart, and eight risk/performance metrics including annualised Sharpe ratio, maximum drawdown, signal accuracy, win rate, and alpha versus the passive baseline.
The backtest runs on a synthetic geometric random-walk price series — the same statistical structure as real OHLCV data, but without any dependency on a live market feed. This makes it ideal for experimenting with feature engineering and model selection: change one variable at a time and observe the effect on Sharpe and drawdown immediately. Practitioners can use it as a rapid sanity-check harness before porting a signal to a real data pipeline or an MQL5 strategy on MetaTrader.
Open the Backtester →Drug Interaction & Polypharmacy Checker
Enter a medication list and screen every pair against a curated database of ~90 clinically significant interactions graded contraindicated, major, or moderate. Each flagged pair shows mechanism, clinical effect, and management recommendation. Covers CYP interactions, QTc prolongation, serotonin syndrome, triple whammy AKI, opioid + benzodiazepine respiratory depression, and more.
Voice Clinical Notes
One-tap voice dictation that auto-formats your spoken note into a structured clinical record (PC / Hx / Exam / Ix / Assessment / Plan) and puts it on the clipboard in one tap. Share via WhatsApp, email, SMS, or download as .txt or .rtf. Works in Safari and Chrome; installable as a home-screen app on iOS and Android.
Clinical Text NLP Extractor
Paste clinical notes and extract structured entities: diagnoses, medications, dosages, lab values, vital signs, and dates — highlighted and tabulated in real time. Rule-based pipeline; production system uses fine-tuned BioBERT with FHIR R4 output.
LLM Agent Trace Visualiser
Paste a Claude or OpenAI agent session JSON and get an interactive step-by-step timeline of every message, tool call, tool result, and token count. Accepts Anthropic and OpenAI formats, extended thinking blocks, and tool_use/tool_result pairs. Useful for debugging multi-step agents and auditing token spend per reasoning step.
Algorithmic Trading Backtester
A minimal Python backtesting harness for ML-based trading signals. Input a feature set and a model; get equity curve, drawdown, and Sharpe ratio. Logistic Regression, Random Forest, and Gradient Boosting supported.
DiMSAR LoRa Network Map
Live map of the DiMSAR Kenya LoRa mesh radio network — nodes, signal strength, and last heartbeat. Part of my disaster management / search-and-rescue infrastructure work for the Radio Society of Kenya.
Binaural Beat Generator
Browser-based binaural beat generator built with the Web Audio API. Two pure tones — one per ear — with a small frequency difference your brain perceives as a rhythmic pulse. Five brainwave presets (Delta, Theta, Alpha, Beta, Gamma), four waveforms, real-time oscilloscope visualiser, and WAV export via OfflineAudioContext. Use headphones.