Skip to content
View fammad's full-sized avatar
🎯
Working to create better world
🎯
Working to create better world

Highlights

  • Pro

Block or report fammad

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
fammad/README.md

Hi, I'm Fuad

I build systems that understand people through sensors and respond to them: computer vision and machine learning on one end, XR, robots and embedded hardware on the other. I take them from the raw signal to a working prototype people can use, and I measure where they fail before I report what they do.

MSc Interactive Media Technology at KTH, Stockholm · B.Eng. Mechatronics and Robotics · looking for a 2027 master's thesis in computer vision, human-centred AI, XR or perception for vehicles and robots.

Python PyTorch OpenCV MediaPipe Unity C# ESP32

Projects

Fixations, scanpath and heatmap in a VR workbench, with the IR eye camera in the corner
EYE TRACKING · XR
gaze-XR-training
An infrared camera glued under a Quest 3 lens, a pupil tracker and a Unity gaze toolkit. Calibration fit 0.8°, independent grid about 5°, and a blueprint of which training metrics that accuracy supports.
Unity · C# · Python · OpenCV · Quest 3
Gaze trail over a street scene next to the webcam image
EYE TRACKING · DEEP LEARNING
GazeMap
A CNN trained from scratch on 427k eye images, tested on people it never saw: 3.98° after calibration, 1.55° in the live demo, with a full failure analysis.
PyTorch · MediaPipe · OpenCV · MPIIGaze
Twenty generated futures for one left-turning car under four constraint strategies
AUTOMOTIVE · GENERATIVE MODELS · TEAM
Vehicle trajectory generation
Flow Matching on drone recordings of an Aachen intersection (inD). Without road rules 28 % of generated futures leave the road; soft guidance fixes that at no cost in smoothness, while hard projection multiplies jerk up to 5×.
PyTorch · Flow Matching · inD dataset
Lumen silicone light dome in different states
ATTENTION · EMBEDDED · NORDICHI 2026 DEMO SUBMISSION
Lumen
Blink rate from a webcam drives a silicone light on the desk from white to amber to red. F1 0.92 with head turns up to ±45°. No frames saved, no cloud, failure envelope documented.
MediaPipe · OpenCV · ESP32-S3 · C++
Qonur robot bear, front and back
HUMAN-ROBOT INTERACTION · SDC-FUNDED
Qonur
A talking animatronic bear for anti-bullying theatre: AI conversation, human-operated choreography, ten servos. Deployed in a children's shelter and a rural village. Watch it perform.
Python · Gemini API · ESP32 · Fusion 360
Child and caregiver at the edge of a VR subway platform with glass doors
XR USER STUDY · HUMAN PERCEPTION · TEAM
Perceived safety on a T-bana platform
A within-subject VR study on a Quest 2: 16 randomised scenes, 7 participants, four factors (child or adult, crowd, caregiver, glass doors). Doors raised felt safety in every condition; a child alone at a crowded open edge scored lowest, about 1.9 of 5.
Unity · Quest 2 · Likert survey · KTH DM2350

How I work

I build the whole loop, from the sensor to the model to the thing that moves or lights up. I measure under the ugly conditions first: unseen people, turned heads, a headset that slips. And I write the failure cases next to the headline number, because a calibration fit is not accuracy and a random split is not a test.

Before KTH I spent four years at Ritual Theater lab in Baku putting technology on stage: XR experiences 600 people walked through, a robot bear that talks back to children, projection and motion capture. The interesting problem kept being the same one, a camera trying to work out what a person is paying attention to.

Toolbox
Eye tracking pupil detection and ellipse fitting (RANSAC), appearance-based gaze estimation, polynomial and affine calibration, accuracy and precision grids, I-VT fixations, AOI analysis, blink detection (EAR)
Computer vision and ML OpenCV, MediaPipe, PyTorch (CNNs, Flow Matching), scikit-learn, NumPy, pandas, Matplotlib
Evaluation leave-one-person-out splits, leakage checks, angular error, per-condition failure analysis, seeded reproducible runs
XR Unity 6 (C#, URP, OpenXR, XR Interaction Toolkit), Meta Quest, synced session recording
Hardware IR camera modules, ESP32 / ESP32-S3, Arduino, servo control, USB serial, Fusion 360, 3D printing
Languages Python, C#, C++ for firmware

Now

Two computer vision courses at KTH this autumn, including a vocabulary-tree image retrieval system built from scratch (SIFT, hierarchical k-means, TF-IDF). Next on the headset tracker: slip correction with corneal glints and gaze from commercial headsets through OpenXR.

fammad.com · LinkedIn · hej@fammad.com

Pinned Loading

  1. GazeMap GazeMap Public

    Webcam gaze tracking and attention heatmaps that run offline. CNN trained on MPIIGaze, tested on unseen people (6.0° per eye, 5.0° both eyes), about 1.6° on screen after calibration.

    Python 2

  2. gaze-XR-training gaze-XR-training Public

    Eye tracking for any Unity VR scene, with a DIY infrared tracker for Meta Quest 3. Calibration, fixations, scanpath, heatmap, session logging and analysis.

    C#

  3. Lumen_blink_detection Lumen_blink_detection Public

    Real-time blink & eye-fatigue detection (MediaPipe EAR) driving an ESP32-S3 ambient display. Python CV pipeline + embedded firmware, validated F1 across lighting and distance.

    Python 1

  4. vehicle-trajectory-generation vehicle-trajectory-generation Public

    Jupyter Notebook 1 1

  5. TacTool-VR-Haptic-Project TacTool-VR-Haptic-Project Public

    C++

  6. Qonur_Robotic_Bear Qonur_Robotic_Bear Public

    Conversational animatronic bear for children. Python controller, ESP32 firmware, 3D-printable body. Built with Ritual Theater and Creativity Laboratory, SDC-funded.

    Python 1