Projects


Sometimes I make stuff.
Blind Nav - AWS, PCL, Unity
Navigation is a difficult challenge for the blind. Especially in unfamiliar locations, it is difficult to go anywhere when so much of navigation is reliant on visual cues. The goal of the project was to navigate within a building from room to room, completely blindfolded. Read More...

inSight - TensorFlow, ARKit, OpenCV
With all the VR and AR headsets being released, we wondered if it was possible to create a reasonably competitive headset, while still featuring a low price tag. We eventually created an Augmented Reality headset that was controllable through eye gaze tracking, and ran a lightweight image classifier to detect objects at the centre of gaze. Read More...

SignBot - Leapmotion, Arduino, NodeJS
Sign language is already difficult to learn; adding on the difficulty of learning movements from static online pictures makes it next to impossible to do without help. We came up with an elegant robotic solution to remedy this problem. Read More...

Wifi-Vision - Arduino
Wifi-Vision sees through walls with wifi, using only commonly available resources. We use the same concept as what MRI's, or xrays use. Read More...

Sandwich-o-Matic - Arduino, NodeJS, AWS
Sandwich-o-Matic is a fully automated, hands free, voice controlled sandwich making machine. All sandwiches are made from the raw ingredients. Orders can be placed with NFC tap and voice commands, sending information with Amazon Web Services and a NodeJS server. An Arduino and Photon is used to relay data to the mechanical parts. Sandwich-o-Matic has been featured on several sites including Hackaday, Arduino's official blog, and Hackster. Read More...

LEAP - Android, Java, OpenCV, Firebase
LEAP (or Leap Motion Emulating Android Project) is an Android app that allows you to use your front facing camera as a sensor for sign language and guesture commands. Using the OpenCV API, color filters are applied to get a contour of the hand, which is then processed as a convex hull. The hand position and shape is processed again for guesture, then sent to a realtime Firebase Database where a Python script interprets the data and converts it into keyboard commands.

LegoBot - OpenCV, Arduino, Raspberry Pi, C/C++, Python
LegoBot mechanical arm that builds Lego structures from a scattered pile of pieces, relying purely on a Raspberry Pi camera and OpenCV image processing to locate individual Legos with a high degree of accuracy. The Pi processes location data, which is sent to an Arduino to translate into movement commands using several inverse kinematics formulas. A feedback loop between the Arduino and Pi allows for the arm to adjust movements to account for incorrectly placed pieces, or rotating blocks.

Plan Me - ReactJS, JavaScript, Firebase
Plan Me is a calendar website that uses a machine learning algorithm to optimize the scheduling of non-critical events based on past user experience and type. All previous user habits are processed into an alogorithm that develops user categories based on habits, allowing for new users to quickly be added to the system. The website framework is build fully in ReactJS.

Firefighter - Solid Edge, Pic Basic Pro, Traxmaker
Holding the current regional record for speed at 17.6 seconds, the firefighter is a bot that can navigate rooms to find and extinguish fires. The chassis design is created in Solid Edge, circuit boards made with Traxmaker, and is coded with Pic Basic Pro. A video of the firefighter robot can be found here.

Cheqout - Android, Java, Google Vision
Cheqout is a faster, easier way to check out items straight from your phone. Using Google's Vision API to scan items, information for the product is found in real-time from an online Firebase database. Payment is done through Stripe's Android API and Android Pay.

Sumo Bot - Solid Edge, Pic Basic Pro, Traxmaker
The sumo bot is a bot that is designed to knock other bots out of a sumo-style ring. The chassis design is created in Solid Edge, circuit boards made with Traxmaker, and is coded with Pic Basic Pro. IR sensors are used to detect other bots, and a phototransistor are used to detect the ring's white edge. An H-Bridge is used to up the motor's voltage to 12v.

LED Cube - Pic Basic Pro, Traxmaker
The LED cube is a 5x5x5 array of LED's controlled by a Pic16f887 microcontroller. Persistance of vision (POV) is used to light up individual rows in order to prevent interference, and PWM is used to control brightness.

Website - Angular2.js, Node.js
This website was created to broaden my knowledge in web development, and to showcase my portfolio. The site uses Angular 2 for dependency injection, and is run off a Node server. Angular CLI was used to generate and test builds. The version of the site you're seeing now is a static. However, the dynamic work-in-progress version can be found on my GitHub.

Evolve - Java
Created in Java, Evolve simulates the evolution of organisms to demonstrate the population dynamics between predator and prey. Data was exported and used for a biology demonstration.

Infinity Mirror - Pic Basic Pro, Traxmaker
The Infinity Mirror is an optical illusion that simulates an infinite tunnel. It is created from a set of LEDs glued between two parallel mirrors. The bottom mirror is a regular mirror, while the front is a one way mirror film applied to an acrylic pane. The LEDs are controlled by a Pic16f887 microcontroller attached to the back.

Electronic Piano - Pic Basic Pro, Traxmaker
The piano is a 2 octave electric instrument, using the gold button simulating the octave key. The metal keys contain a push button underneath, and the circuitry is housed inside a milled out wooden plank.