code

Code accompanying my research, and open-source software I maintain.

research code

  • StepWrite
    StepWrite UIST 2025

    Dictation 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 Deixis arXiv 2026, submitted to CHI 2027

    Some 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.

  • DiVA
    DiVA submitted to UIST 2027

    Loudspeakers 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 Scoring
    Automated Trauma Scoring 2025

    Can 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 Builder
    Dialogue Tree Builder Springer CCIS 2024

    DarijaGenie 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

  • LectureLab
    LectureLab 2026

    Record 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.

  • AeroTizen
    AeroTizen 2026

    An 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.

  • StillDue
    StillDue poster, submitted to CHI 2027

    A 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.

  • GenReview
    GenReview 2024

    Answers 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.