Stayed late after school for our LEGO engineering club
Wiring up sensors, tweaking small robots, and showing quick demos to classmates. First time I saw how simple prototypes can get other people to try things.
Role: StudentI build gaze and cognition tools that run on webcams and everyday devices.
I’m a student working at the edge of biomedical engineering, cognition, and HCI. Most of what I build starts as a small experiment and sticks around if other people find it useful.
Came from EyeTrax or Reddix? Jump to Tools I use ↓
Work — Gaze & cognition
Webcam-based workflows for screening, experiments, and clinics.
Journey — Gaze pipeline
How the eye-tracking stack evolved.
Built EyePy during a research program: a webcam-based eye-tracking prototype using dlib and low-cost webcams.
Turned the EyePy ideas into EyeTrax, a reusable library with calibration flows, smoothing filters, and an overlay tool built on MediaPipe landmarks so others could use the gaze pipeline without rewriting it.
Sample gaze trace from the EyeTrax overlay tool.
Built EyeCI on top of EyeTrax: designed tasks, ran early webcam sessions, cleaned the data, and trained a model that turns gaze traces into screening probabilities with reliability checks.
Worked with a healthcare partner to reshape EyeCI into Argus, a five-minute browser-based screening tool for outpatient clinics and community screenings, with bilingual onboarding and clinic-friendly reports, validated on 2,095 webcam sessions.
Side projects and experiments in chronological order.
Wiring up sensors, tweaking small robots, and showing quick demos to classmates. First time I saw how simple prototypes can get other people to try things.
Role: StudentMoved my diaries into Neovim and wanted autocorrect that didn’t get in the way. Mistake.nvim started as a personal plugin and slowly turned into something other people also installed.
Role: BuilderBuilt Reddix so Reddit could live in the same terminal pane as my tools. It picked up users quickly and became my main playground for Rust async pipelines, caching, and release discipline.
Role: Solo builderWork — Tools I use myself
Small open-source projects that started as workflow hacks.
Reddix is a keyboard-first Reddit client that lives in the terminal. It supports inline image previews using Kitty graphics,
video playback through mpv, multi-account login, smart caching, and Vim-style navigation.
I originally built it so I could keep Reddit threads beside my tools without opening a browser. wait for it.
Mistake.nvim is a spelling autocorrect plugin for Neovim built from GitHub “fixed typo” commits and common misspelling datasets. It lazy-loads a 20k+ entry correction dictionary in chunks, lets me add my own corrections, and keeps everything fast enough to use while journaling.
About
I’m CK (Kevin) Zhang, a student who likes building around gaze, cognition, and interfaces. Most of my work sits where biomedical engineering, HCI, and everyday devices overlap.
I care about tools that can survive crowded clinics and shared classrooms without asking people to change how they behave. That’s why I’ve stayed with the same thread from EyePy to EyeTrax, EyeCI, and now Argus: keep the hardware cheap, use the signals well, and make the interface feel as close to “just look” as possible.
Long-term, I want to keep working on gaze and cognition tools within biomedical engineering and HCI.
If you’re working on gaze, cognition tools, terminal UIs, or related projects, I’m happy to chat or share what I’ve tried so far.
Email: ck.zhang26@gmail.com
GitHub: github.com/ck-zhang