Project Span

Computer Science
Javascript - Python - C - C++ - C# - Java - HTML - CSS

- Developed C# & Python GUI applications for factory automation

- Programmed WebGl (js) and OpenGl (java) based games and simulations with custom shaders

- Wrote multithreaded programs for machine learning (python), audio (c++), and image analysis (js)

Embedded Systems
- Designed and built CNC router with custom controller circuit and custom app

- Programmed PID feedback, linear path following, and forward & inverse kinematics for 5 DOF robotic arm

- Programmed microprocessors & built input/output circuitry for digital audio processing

- Built electric drumset controller with real-time audio synthesizing and rgb light controller

Analog Electronics
- Designed and prototyped custom FM & AM transceivers for RC cars and audio transmission

- Built high power class D power amplifier for driving PA speakers

- Designed MOSFET grate driver circuitry for amplifiers, induction heaters, tesla coils, etc.

- Created custom guitar effects pedals (filtering & distortion)

Web Projects
Charged Particle
While taking Physics II, I realized all of the simulators my school used were created and hosted by other colleges. I felt and still feel that RPI, being a technical institution, should have it's own suite of simulators available to students and the general public. This was the motivation behind working on this project, with the long-run goal being gifting the simulator to the RPI physics department. Please go to the "Charge Simulator" page to check it out!
Circuit Simulator
In RPI's Circuits class, students are tasked with solving basic circuits over and over again. Quickly, I became frustrated with the number of circuits we had to solve and how similar each circuit was. To aid in checking my homework and practice problems, I decided to create my own basic circuit simulator. I worked on this project in my free time for a few weeks, and am satisfied with the functionality of the project at this point. In the future I plan to add more electrical components and improve the speed of the program. Please go to the "Circuit Simulator" page to check it out!
WebGL Raytracing
After completing the cpu-based raytracing project (above), I realized I would like to be able to raytrace in real time. This has recently become possible thanks to new raytracing GPUs which have hardware designed to increase the speed of raytracing. Unfortunately, I do not have one of these GPUs, nor does webGL support this new architecture. Instead, I used standard webGL and wrote a program to write the shader with the scene data hardcoded into it. Now I can render almost any scene with reflective spheres and planes in real time!
Snake Game
Neural Network
One day I woke up and decided to make a basic snake game. The next day, I wanted to learn about machine learning and AI. Thus, I created a simple neural network to play the snake game for me! This is my first attempt at making a neural network from scratch, and I hope to add many ML projects in the future!
Snake Game
A few months and a machine learning class later, I looked at my snake game project and thought "I could do that better"...
Web Experiments
As I have been building this website I commonly come across little project and web dev ideas I would like to work on. Sometimes they are large enough projects to deserve an entire page and description, but more often then not they are little gizmos and only take an hour or so to code. This page is where all of the little projects end up, and is a scratch pad for me to experiment with!
Planet Generator
I have always been interested in procedurally generated terrain and objects. The idea that I can generate different 3d objects by simply modifying a few input parameters prompted me to build this model. In this project I learned about generating different 3d models, and randomly augmenting those models to produce familiar-looking objects. In the end algorithms to generate earth-like planets, astroids, satellites, and space stations were implemented. Please go to the "Planet Generator" page to check it out!
Library Demo
CNC Router Build

Use WASD to move camera origin
Left & Right arrows change orbit & rotation speeds