Projects


Voice AI & Robotics

Overview: A real-time, multi-modal AI agent designed to facilitate interactive child-robot engagement through natural language and visual perception.
The Problem: Traditional robotic interfaces for children are often rigid or require complex programming knowledge. Many younger children cannot intuitively learn these fundamental programming concepts. There is a need for a more intuitive way to interact with robotics.
The Solution: Supervised by Dr. DK Xu, Dr. Jiang, and Dr. Peng Gao, we are designing and building a system that integrates real-time speech processing with computer vision to create a responsive, voice-programmable robot. By mapping vocal commands and facial gestures to robotic movements, the project aims to make human-robot interaction feel more natural.
Key Features

  • Real-time Logic Framework: Implementing the Pipecat framework to manage the conversation flow and handle tool-calling based on user intent.
  • Visual Perception: Integrating MediaPipe Face Mesh to track 468 3D landmarks, allowing the robot to detect head tilts, nods, and tracking capabilities.
  • Motion Analysis: Utilizing the Perspective-n-Point (PnP) algorithm and One Euro Filter to translate 2D landmarks into smooth, jitter-free 3D robotic movements.
  • Interactive Simulation: Developing a testing environment in Vite + React to visualize and debug robotic head movements before hardware deployment.

Technology Used

  • Frameworks: Pipecat, MediaPipe, React
  • Languages: Python, TypeScript
  • AI Services: Deepgram (STT), OpenAI (LLM), Gemini (TTS)
  • Tools: Vite, GitHub

Dental Implant Inventory Manager

Overview: A full-stack, multi-user web application to manage dental implant inventory.
The Problem: While designing surgical guides at Southpoint Dentistry, I identified a key operational issue. The doctor and I lacked a unified database to track which implants were in stock. This led to potential treatment delays and inefficient/inaccurate inventory keeping.
The Solution: I developed a secure, multi-user, user-friendly web application to track the inventory of all the implants in stock.
Key Features

  • User Authentication: A secure login system (using Flask-Login) ensures each user’s inventory is private.
  • Full CRUD Functionality: Users can Create, Read, Update, and Delete implant records
  • Low Stock Alerts: Automatically alerts users on low inventory based on user-defined minimum thresholds
  • Filtering: Instantly search and filter implants by brand name and/or implant size.

Technology Used

  • Backend: Python, Flask
  • Frontend: HTML, CSS, Bootstrap, Jinja2
  • Database: SQLAlchemy, SQLite
  • Authentication: Flask-Login

Live Link: Implant Database


TCGA Gene Expression Survival Analysis

Overview: A full-stack public web tool that allows clinical researchers to predict a patient’s survival probability by analyzing raw TCGA RNA-seq gene expression data.
The Problem: Survival analysis is a powerful research tool, however it often requires a lot of setup with R and different package configurations. This is a time consuming bottleneck for biomedical researchers to quickly test some hypotheses.
The Solution:

  • Data Pipeline: In collaboration with Dr. Li at NIEHS, we downloaded, cleaned, and normalized raw TCGA RNA-seq gene expression data for 37 different cancer types from the Genomic Data Commons (GDC) Data Portal
  • Backend Analysis: Uses R to perform survival statistical analysis and generate survival plots for any given gene and cancer type.
  • Web Interface: I built the frontend with HTML and used Perl CGI with R and Ppython on the backend to dynamically receive a user’s gene query, execute the R analysis on the server, and then display the resulting survival plot image on the webpage.

Technology Used

  • Backend: Perl CGI, R, and Python
  • Frontend: HTML
  • Data: TCGA (Genomic Data Commons)
  • Server: Apache

Live Link: TCGA Survival


Predicting Tumor Sample Purity

Overview: A web server that implements a method from the 2019 paper by Dr. Li ( Putative biomarkers for predicting tumor sample purity based on gene expression data ), allowing researchers to submit their own gene expression data and receive a tumor sample purity prediction.
The Problem: Tumor purity (proportion of cancer cells in a tissue sample) is a critical aspect of genomic analysis. While Dr. Li’s research was published, there wasn’t a format for other researchers to easily use and test.
The Solution

  • Model Deployment: Mentored by Dr. Li at NIENS, we implemented an XGBoost machine learning model, developed by Dr. Li with Python.
  • Backend System: I engineered the backend to accept user-submitted data and run it through the XGBoost prediction model. Because of the long runtime, the program automatically emails the results back to the user.
  • Web Interface: I used HTML to program the web interface for users and Perl CGI with Python on an Apache server to handle the dynamic data submission and backend processing.

Technology Used

  • Backend: Perl GCI and Python
  • Frontend: HTML
  • Server: Apache
  • Model: XGBoost

Live Link: XGBoost


Glioblastoma Recurrence and Survival Prediction

Overview: A web tool developed in collaboration with Dr. Li at NIEHS and doctors at Union Hospital in Beijing. Analyzes patient data to predict the recurrence and survival probability of glioblastoma.
The Problem: Glioblastoma is a highly aggressive brain cancer. Doctors need fast and reliable tools to predict patients’ prognosis that will influence treatment plans.
The Solution:

  • Model: Dr. Li at NIEHS designed a Random Forest algorithm to predict glioblastoma relapse and survival time based on patient data.
  • Web Interface: I built a web server using HTML for the frontend and Perl CGI and Python to make it a dynamic application. This allows users to input patient data and receive a real-time prediction from the Random Forest model.

Technology Used

  • Backend: Perl CGI and Python
  • Frontend: HTML
  • Server: Apache
  • Model: Random Forest

Live Link: Glioblastoma