⭐️
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 demoBit 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
Processing
Video presentation Project reportHough 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 ReportSketch2Slides (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) ReportObject 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
GithubFB 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 pageMotorized 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 ReportMandelbrot 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 pageFast 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 pageSleep 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
Website3D 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 reportInsectNN (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.
p5.js
Project pageSLS 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 2FWView (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.
p5.js
WebsiteDIY 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 reportTicker 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)
p5.js
Minesweeper in C (2016)
C
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