Interactive engineering portfolio

Engineering simulators for robots, scanners, agents & learning machines

Thirteen hands-on web apps across mechatronics, medical imaging, assistive robotics, artificial intelligence, agentic systems, research methods, digital health, energy and everyday tools. Each one is a working simulator: tune a servo, plan a robot arm's motion, reconstruct CT and MRI scans, drive a smart wheelchair, control a prosthetic hand with EMG, watch neural networks learn, stress-test LLM agent workflows, run a meta-analysis, manage an EV battery pack, catch falls with a wearable, or sign a PDF privately. Every algorithm is written from scratch, and the apps run in your browser.

13
interactive apps
7
domains
0
build steps or servers
18k+
lines of hand-written JS

Domain 01Mechatronics

Motors, feedback control and robot kinematics: the core of every electromechanical system.

MotorLab screenshot: servo dial, live scope and step metricsLaunch ↗

MotorLab

PID servo tuning studio

Tune the position and velocity loops of a physics-based DC servo. Includes live scopes, step-response metrics, relay auto-tuning, Bode stability margins and closed-loop pole maps, with encoder quantisation, friction and saturation modelled.

RK4 motor modelPID + anti-winduprelay auto-tuneBode · Padépole map
ArmStudio screenshot: robot arm workspace and configuration spaceLaunch ↗

ArmStudio

Robot arm kinematics & C-space planner

Drag a 2- or 3-link manipulator, solve inverse kinematics analytically or with damped least squares, see the configuration-space obstacles and plan collision-free, smoothly time-scaled motions around obstacles.

FK / IKJacobian · manipulabilityC-spaceA* + shortcuttingquintic trajectories

Domain 02Medical Imaging

How scanners turn raw measurements into images: projections and k-space in, diagnostic pictures out.

TomoLab screenshot: phantom, sinogram and reconstructionLaunch ↗

TomoLab

CT reconstruction lab

Scan analytic phantoms, lower the dose to add Poisson noise, introduce metal and motion artefacts, then reconstruct with filtered back-projection or iterative SART with total-variation regularisation. Error maps and PSNR/SSIM quantify the result.

Radon transformFBP · ramp windowsOS-SARTTV (ASD-POCS)PSNR · SSIM
k-Space Explorer screenshot: brain image, k-space and reconstructionLaunch ↗

k-Space Explorer

MRI physics & reconstruction

Set spin-echo, inversion-recovery and gradient-echo contrasts on a synthetic brain. Paint directly on k-space, simulate motion and spike artefacts, and recover undersampled scans with compressed sensing and partial-Fourier reconstruction.

signal equations2-D FFTsampling masksFISTA + waveletsPOCS

Domain 03Assistive Robotics

Robots that work with people: they share control with their users and read their muscle signals.

NaviChair screenshot: wheelchair navigating an apartment with LIDARLaunch ↗

NaviChair

Smart wheelchair shared-control navigator

A powered wheelchair with LIDAR plans cost-aware routes through an apartment and follows them with a dynamic-window planner. It takes voice-style commands, blends in the joystick of a user with tremor, dodges people and builds a map as it drives.

ray-cast LIDARA* on a costmapdynamic windowshared controllog-odds mapping
MyoHand screenshot: EMG channels, features and robotic handLaunch ↗

MyoHand

EMG prosthetic hand controller

Synthesise 8-channel forearm EMG, filter it, extract time-domain features, train LDA, k-NN or neural-network classifiers and drive an animated robotic hand in real time, with confusion matrices and feature-space projections.

sEMG synthesisbiquad filtersHudgins featuresLDA · k-NN · MLPFisher projection

Domain 04Artificial Intelligence

Two ways machines learn: gradient descent through back-propagation, and evolution through selection and mutation.

NeuroPlayground screenshot: network activation maps and decision boundaryLaunch ↗

NeuroPlayground

Neural networks from scratch

Build and train a multilayer perceptron in your browser. Watch each neuron's activation map, the decision boundary and the per-layer gradient flow, and run experiments on vanishing gradients, overfitting and feature engineering.

backpropagationAdam · Momentum · SGD5 activationsL2gradient flow
EvoDrive screenshot: cars racing on a generated track with the leader's neural networkLaunch ↗

EvoDrive

Neuroevolution self-driving cars

A population of neural-network drivers learns to race on procedurally generated circuits through a genetic algorithm. They have ray sensors, grip-limited handling and a live brain view. Test whether they generalise to new tracks, then race the champion yourself.

genetic algorithmray-cast sensorsbicycle modelprocedural tracksrace the AI

Domain 05Agentic Systems & Research Methods

Engineering AI agents as reliable systems, and the statistics that decide what research evidence is worth.

AgentFlow screenshot: agent workflow graph, execution trace and Monte Carlo latency analysisLaunch ↗

AgentFlow

Agentic workflow studio

Design LLM-agent pipelines as graphs: planners, parallel tool calls, reflection loops, routers and human approval. A discrete-event simulator then measures latency, token cost and reliability under retries, timeouts, fallbacks, rate limits and caching, and critical-path analysis shows where to optimise.

discrete-event simulationretries · backoffrate limitscritical pathMonte Carlo SLOs
MetaLab screenshot: forest plot, funnel plot and meta-analysis resultsLaunch ↗

MetaLab

Research synthesis, power & bias workbench

Run random-effects meta-analyses (DerSimonian–Laird, REML, Knapp–Hartung) with forest and contour-enhanced funnel plots, Egger's test and trim-and-fill, plan studies with exact power analysis, and simulate how publication bias and p-hacking distort a literature.

REML meta-analysisforest · funneltrim-and-fillnon-central t powerp-curve

Domain 06Connected Health & Energy

Embedded estimation and detection problems from products people rely on every day: EV batteries and fall alarms for older adults.

VoltWise screenshot: EV drive cycle, state-of-charge estimators and 96-cell battery packLaunch ↗

VoltWise

EV battery management system

Drive an electric car through city, highway and sporty cycles on a 96-cell pack of equivalent-circuit Li-ion cells. Compare state-of-charge estimation by coulomb counting, voltage lookup and extended Kalman filters (including a current-sensor-bias state), then charge with CC-CV and watch passive balancing recover capacity stranded by the weakest cell.

Thevenin cell modelextended Kalman filterdrive cyclesCC-CV chargingcell balancing
FallGuard screenshot: live accelerometer, fall alert and detector benchmarkLaunch ↗

FallGuard

Wearable fall detection & alerting

A wearable accelerometer streams daily life and falls of an older adult. Four detectors (impact threshold, posture checks, a free-fall state machine and a learned model) drive an "Are you OK?" alert and caregiver escalation. A benchmark then shows why algorithms tuned on simulated lab falls miss real ones, trading sensitivity against false alarms per day.

IMU signal modelsstate machinelogistic regressionsensitivity vs false alarmsalert escalation

Domain 07Everyday Tools

Practical software for daily paperwork, built with the same care: private by design, it works offline and needs no account.

InkSign screenshot: a contract signed with a drawn signature, name, date, checkmark and initialsLaunch ↗

InkSign

Create a signature & sign documents

Draw your signature with a speed-sensitive pen, type it in a handwriting font, or photograph it on paper and let the app remove the background. Then open a PDF or a photo of a document and place your signature, initials on every page, name, date, text and checkmarks. Download the signed PDF with an optional signing certificate that records the time and the SHA-256 fingerprint of the original, or export the signature as a transparent PNG or SVG. Nothing is uploaded.

pdf.js + pdf-libvelocity-width inkOtsu background removalrotated-page mappingSHA-256 audit page100 % on-device

How these apps are built

From first principles

There are no frameworks or numeric libraries. FFTs, reconstruction algorithms, planners, classifiers, back-propagation and the genetic algorithm, the event simulator and the meta-analytic estimators are all implemented by hand in plain JavaScript, so the source reads like an annotated textbook.

Tested cores

Each app keeps its maths in a DOM-free *-core.js module that also runs in Node.js. Examples of what is checked: FFT against NumPy, gradients against finite differences, meta-analysis against R's metafor, power against G*Power.

Runs anywhere

The apps are static HTML, CSS and JS with self-hosted fonts. Open index.html from disk, serve the folder, or deploy to GitHub Pages. There is no build step, no API key and no server.