Muchen He


This page contains projects that I’ve created or contributed to. They are ordered reverse-chronologically.

PhotoStats (2022)

Python script that interpolates macOS Photos library statistics and image metadata; produces data visualizations including heatmap, GPS heatmap, and chord diagrams

Python, Processing, d3.js, p5.js

Web demo

Bit Flip Attacks on DNNs (2022)

Surveyed the literature for attacks and defense of deep neural networks that utilize bit flip to directly perturb the network weights.

FutureGazer (2021)

Gaze-tracking user study; team of three; animated avatar in video conferencing to study participation, engagement, focus, and attention


Video presentation Project report

Hough Transform Hardware Acceleration (2020)

Exploring parallel-computing techniques, including CUDA on Nvidia GPU, OpenCL, and Open MPI to accelerate Hough transform to detect lines in an image. Resulting in 50 × speedup compared to serial/baseline implementation.

C, Open MPI, OpenCL, CUDA

Github Project presentation Report

Sketch2Slides (2020)

A MATLAB script to automatically scan and convert drawn content to PowerPoint slides. The image processing pipeline makes use of Hough transform, morphological operations, and accurate colour correction. The automation outputs a fully-functional .pptx file.

MATLAB, Python

Github Project presentation (video) Report

Object Detection with FPGA Drone (2020)

As machine learning is employed in more portable and remote devices, programmable digital circuits such as field-programmable-gate-arrays (FPGAs) are attractive given the speed and flexibility they provide. In this project, we explored integrating an object detection model (YOLOv2) onto a portable package with an FPGA, camera, and processor. To demonstrate its portability, the system is mounted to a drone, showcasing its potential deployability in remote or highly-portable situations. This project won the UBC APSC Capstone Faculty Award.

FPGA, Raspberry Pi, C, Python, JavaScript, Autodesk Inventor, APM 2.6, Electronic Tools, 2.4/5.8 GHz Radio


FB Messenger Visualizer (2019)

An animated visualizer that visualizes entire Facebook messages archive in chronological order. Where people are drawn as nodes and exchange of messages are drawn as as beams of light.

Processing 3, Python 3

Github page

Motorized Laser Pointer (2018)

Built and programmed PID controllers in C++ and MATLAB for 2-DOF spherical wrist controlled laser pointers that draws shapes, using DC commutating motors built from scratch.

Arduino, C++, SolidWorks, Autodesk Inventor, MATLAB, SimuLink, Altium Designer, 3D Printer, Laser Cutter, Waterjet, Node.js, p5.js, Electronic Tools

Blog 1 Blog 2 Report

Mandelbrot Set on FPGA (2018)

An interactive Mandelbrot Set fractal via VGA on the DE1-SoC FPGA development board written in SystemVerilog.

SystemVerilog, DE1-SoC FPGA Dev. Board, Quartus II Synthesizer, ModelSim

Project page

Fast Grader (2018)

Desktop app used to help grading C programming lab submissions more efficiently. Runs cross-platform and features dockable UI.

Python 3, Qt

Project page

Sleep Logger (2017)

Web application with real-time database and authentication to keep track of sleep statistics, featuring beautifully animated front-end.

Firebase, Android SDK, p5.js, chart.js


3D Game with DIY Serialized Game Controller (2017)

DIY game controller using custom microcontroller that communicates via serial with a 3D game programmed in Processing.

Oscilloscope, H-Bridge, Soldering iron, Processing, SPI Protocol

Magnetic Field Tracking Robot (2017)

Microcontroller robot that follows magnetic field generated by a wire; can be wirelessly controlled via the magnetic field.

AVR, 8051 Assembly, C, Make, Circuit prototyping, Soldering iron, multimeter, Signal generator, Oscilloscope

Read report

InsectNN (2016)

Simulation of a simple insect with antennae staying on a road using a shallow neural network.

Processing 3

Other Projects

Here are some more (smaller) projects that I’ve done through out the years.

Lab Tracker iOS App (2020)

A simple Swift app written for iOS as a way for me to learn iOS development with Swift. It allows me to do my TA duties for APSC 160 easier by tracking and logging activities during a lab section.

Swift, UIKit, XCode

Augmented Reality Minesweeper (2020)

A Minesweeper-type game except implemented in Augmented Reality (AR), which allows the mine field to be augmented realistically over real surfaces.

Swift, ARKit, RealityKit, XCode

VGACoreSim (2018)

Interactive browser app for simulating the FPGA VGA-core where user can input custom drawing scripts.


Project page

SLS 3D Printer System Model (2017)

A Selective Laser Sintering 3D printer designed and accurately modelled in MATLAB and SimuLink. Controlled via tuned PID controller and maximized print speed and minimized error.

MATLAB, SimuLink

Report part 1 Report part 2

FWView (2017)

3D simulation visualizer for Thunderbot's physics based firmware simulator.

Processing 3, Python 3

CircuitDraw (2017)

Circuit drawing web app with has all basic electrical components and features saving and reloading circuits.



DIY 3D Printer (2017)

Soldering iron, multimeter

Temperature Monitor (2017)

Microcontroller controlled temperature monitor using temperature sensor and ADC, serialized output is visualized in Processing.

8051 Assembly, AT89 Microcontroller

Reflow Oven Controller (2017)

Microcontroller powered SMT reflow oven controller that follows a temperature profile.

8051 Assembly, AT89 Microcontroller, Thermocouple, OP-AMP, Soldering iron, Oscilloscope, Signal generator

Read report

Ticker LCD with Music (2017)

First project using AT89 microcontrollers, used memory access, timers, and interrputs to make looping animation and music.

8051 Assembly, AT89 Microcontroller

Simple RISC Machine (2016)

Reduced-Instruction-Set-Computer CPU created using System Verilog HDL. Runs basic OS programmed in ARM assembly.

ARM Assembly, Quartus II, ModelSim, SystemVerilog

SmartRocket Evolution Simulator (2016)


Minesweeper in C (2016)


Rainwater Harvesting System (2016)

Obtaining the best configuration for a rainwater harvetsting system design to maximize user satisfaction.

Microsoft Excel, C

Autonomous Claw (2016)

Arduino powered, custom made alumium chasis, autonomous operation to pick up objects.

Arduino, SolidWorks, Autodesk Inventor, Shop tools

Adaptive Device for Disabled (2015)

Designed guitar picking accessory for the disabled and written technical documentation.

SolidWorks, Autodesk Inventor

Cardboard Chair (2015)

Foldable cardboard chair that supports up to 200 pounds.

Autodesk Inventor

Architecture Project (2015)

Autodesk Revit

Provincial Skills Canada 2015 (2015)

Autodesk Inventor, Precision Tools

FPV Racing Quadcopter / Drone (2015)

DIY FPV 250 mm drone with live video feedback via 5.8GHz radio transmission. Capable of reaching up to 60km/h for 10 minutes.

Naze32 Cleanflight, BLDC Motors, 2.4/5.8 GHz radio, Electronic tools, LiPo Batteries

Arduino Exploration (2014)

Experimented with tinkering and building using Arduino microcontrollers. I made various small projects using photo-sensors, servo motors, speakes, and LCD. I also wrote journals to keep track of my learning progress.

Arduino, C

Microscope CAD (2014)

Reverse engineered a microscope assembly by precisely measuring the parts and replicating them in Autodesk Inventor in 3D. I also produced standard part drawings and parts list.

Autodesk Inventor, Precision Tools