code
Code accompanying my research, and open-source software I maintain.
research code
-
StepWriteDictation works for short replies but breaks down for longer, structured text. StepWrite turns writing into a spoken interview: a language-model planner asks the single most useful next question, drafts in the background as you answer, and fact-checks the final text against what you said. Everything works hands-free and eyes-free, with spoken cues and voice commands for reviewing and revising.
-
"Just Like This": Manner DeixisSome intents are easier to show than to say: how a door should swing, the path a light should travel, how fast a windmill turns. This system combines speech, pointing and hand motion tracked by an Ultraleap sensor: speech names the object and action, pointing picks the referent, and a hand demonstration supplies the manner, which a language model turns into a real animated mechanism in a Unity 3D scene.
-
DiVALoudspeakers amplify a voice for the whole room, but conversation is usually meant for one person. DiVA carries a speaker's live voice in a narrow ultrasonic beam that only the chosen listener hears. A camera on a motorized pan–tilt head detects and identifies faces on the device, so the beam can lock onto and follow a listener, steered from a phone or by voice command.
-
Automated Trauma ScoringCan a general-purpose vision-language model score the motor component of the Glasgow Coma Scale with no task-specific training? Each image is converted into an OpenPose skeleton and a short summary of joint positions, so the model reasons over body pose rather than raw patient imagery. The pipeline supports six-class and three-bin scoring, with evaluation and plotting scripts.
-
Dialogue Tree BuilderDarijaGenie is a framework for building conversational tutors for low-resource languages. We evaluated it on Moroccan Arabic (Darija), a spoken dialect with almost no structured learning material, as a hard test case for the approach. This browser tool authors the tutor's task-based conversations as trees of bot and user turns that branch on possible replies, and exports them as JSON.
open-source software
-
LectureLabRecord a lecture in the browser or upload recordings, videos, slides and notes. LectureLab transcribes and combines every source, then generates study notes, a summary, spaced-repetition flashcards, practice quizzes, a two-host study podcast, diagrams and a glossary, along with a chat tutor that answers only from the course material.
-
AeroTizenAn open-source, ad-free home screen for Samsung Tizen TVs. It reimplements Samsung’s developer bridge, certificate provisioning and package signing in pure Python, and adds a command-line tool that identifies preinstalled bloatware and removes it where the firmware permits. The result is a faster, simpler interface with apps, inputs, time, weather and network status on one screen, plus 31 customizable backgrounds.
-
StillDueA deadline board designed to be left open: a few large countdowns with the next small step for each, color cues as dates approach, and a full-screen mode for a tablet or e-ink display. Boards, calendar and focus views, recurring deadlines, reminders and computer science conference deadlines keep everything in one place, in 14 languages.
-
GenReviewAnswers from language models are often dense and hard to read. GenReview splits every response into sentences: tap one to get five simplified rewrites and keep the one that works for you. Typeface (including OpenDyslexic), spacing and line layout are adjustable, and the model runs locally through Ollama, so text never leaves your machine.