Work
Vision-language incident retrieval
Text-to-image retrieval of road accidents and vehicle fires from fixed CCTV, trained on a dataset I built from raw footage. Deployed by LTA.
Road-marking segmentation with Mask2Former
Fine-tuned a Mapillary-pretrained Mask2Former to segment lane lines, yellow boxes, dividers and other road features in LTA CCTV views, after replacing its label set with the classes the project needed.
Roll-call face recognition from CCTV
A face-recognition pipeline, built from scratch with CVLFace, that confirms which inmates are present at roll call from CCTV. It picked out all 10 enrolled people among 1,000+ distractor images with zero false positives.
Agentic AI for Serious Illness Conversations
A stateful agent that holds structured Serious Illness Conversations with caregivers while clinicians stay in control. In user acceptance testing at SGH.
AMI Neuroworks: AI companion for elderly users
A voice-driven AI companion for elderly users, deployed across 9 eldercare centres in Singapore to 1,000+ users in closed beta.
DAS D.I.A.L.: individualised AI learning for dyslexic learners
A platform where therapists turn assessment data into learner profiles and generate curriculum-grounded literacy activities. I built the RAG retrieval and review pipeline.
StoryWeaver: generative interactive mystery game
An Android mystery game that generates a map, characters and a consistent story for every playthrough. 1st prize, ISTD Information Systems & Programming Project.
GridBug: FPGA arcade game
A two-player maze game running in FPGA logic around a single 32-bit ALU, built into an arcade cabinet. One of five teams selected for showcase.
Reverse Engineering of RML Models with Machine Learning
An unsupervised pipeline that recovers the guarded commands of an RML (Reactive Modules Language) model, as used by PRISM, from observed state transitions, using DBSCAN and the Hough Transform to find each command and logistic regression to infer its guard.
Advance Care Planning analytics at NUH
Analysed two years of Advance Care Planning records to find when in treatment, and in which departments, ACP conversations work best; redesigned the ACP data-entry template; and analysed billing data to support compassionate discharge.