Automatic Blinds Opener (2020)
I rigged a stepper motor to my blinds so that I can open them by issuing an Alexa command. I can also put them on automated timers. This has been a surprisingly big quality of life improvement! And with a white 3D printed encosure, it blends right into the wall.
Alexa-controlled RGB TV Backlight (2020)
I really like LEDs. This LED strip is individually addressible, so it can do patterns. In the video you can see the colors slowly shifting.
CartPole w/ Markov Decision Process (2019)
I solved the OpenAI Gym CartPole problem using a custom Python implementaton of policy iteration over a Markov decision process. I hope to soon apply this model to a <em>real</em> cartpole. For the uninitiated, the goal is to keep a pole balanced on top of a cart that can move left and right. This is a machine learning algorithm, so the computer is teaching itself to balance the pole instead of me giving it specific instructions, roughly speaking.
Links
Storytime: 2D physics in a 3D world (Unity) (2018)
Storyime is a 2D platformer set on the pages of a popup book which exists in the 3D world! It's a really neat effect visually, and can possibly lead to some interesting mechanics.
Traffic Racer (Rendering from scratch; dynamic shadows) (2018)
I volunteered at the Texas Biomedical Device Center (TxBDC) during my final semester of college. I developed a video game, Traffic Racer, to help rehabilitate stroke & spinal cord injury patients. Patients would engage in physical therapy by playing Traffic Racer using a specialized controller. In tandem, the patient would receive stimulation to their vagus nerve which the lab has shown improves the efficacy of the physical therapy (game). I also helped develop an app called RePlay which is a sort of physical-therapy-oriented Android games launcher.
Traffic Racer is developed in C# with Mono Game. This game is done "from scratch" meaning that I implemented all of the rendering and gameplay myself.
Links
Python ID3 Decision Tree Generator (2018)
Generates decision trees by maximizing information gain
Links
High Power RGBW LED Saltwater Aquarium Lighting (2017)
I was (re)starting my saltwater aquarium but I didn't want to deal with the heat, energy, & hassle of the old 250w metal halide system that I was previously using. I also didn't find any suitable lighting fixtures online, so I built my own. This primarily uses white and blue LEDs of a specific wavelength for ideal reef lighting, but also includes red, green, blue, and UV LEDs just for added fun. The whole thing is CNC'd out of a chunk of aluminum because it gets HOT!
DIY Quadcopter Drone (2016)
This was actually the second drone I built, but the first one that actually flew well. That said, you can watch me crash it below.
4x4x4 RGB LED Cube (2016)
This thing looks simple, but is actually horribly complicated. There are 4x4x4=64 physical LEDs, but since these are RGB, each physical bulb is actually 3 LEDs: R, G, and B, giving us a total of 192 LEDs! We also need to rapidly pulsing the R, G, and B channels at specific duty cycles in order to acheive proper color blending. But the Arduino Uno I was using only had 6 PWM pins! I ended up daisy chaining 3 TLC5940 LED drivers which gave me 48 dimmable constant-current sinks, but that is still only 1/4 of the pins I need to control all the lights. To get around this, I used Charlieplexing to light each 4x4 layer (which happens to contain 48 LEDS) separately at such a high speed that persistence-of-vision effects trick your eye into believing they're all lit at the same time. Combining this with PWM, though, was really hard...
Links
Blinking Hardhat (2016)
I designed blinking hardhats based on a 555 clock and a green 3W LED. Green and black were the colors for my high school FRC robotics team, the 5212 TAMSformers. All ~20 of us assembled our own hats and wore them to competition. Below you can see my friend Floyd modeling one.
FRC 120lb ball-shooting pull-up tank robot (2016)
I did the CAD modeling, parts sourcing, and a large part of the design & assembly for my senior year First Robotics Competition (FRC) robot along side my highly dedicated team. The robot has tank treads to get over obstacles, can pick up and shoot dodge balls, and can actually lift its entire 120lb weight off the ground as if its doing a pull-up! I wish I had a video of the pull-up. This was the greatest team I have ever been a part of.
Unity Custom Bézier Curve Tool for Generating 2.5D Hills (2016)
I basically implemented the Photoshop Pen Tool in Unity. The cool part is, it generates 2.5D terrain with edge colliders so that it can be used as terrain for a game.
Links
xkcd Inspired Sign (2015)
I love this xkcd comic, and I wanted to make one in real life. Sadly I didn't get the lighting diffused, so the effect wasn't quite as good as desired. I would like to revisit this one at some point.
Links
Automated Dorm Room (2015)
How do you automatically unlock your door if you're not allowed to change the locking mechanism? 3D print a custom doorknob with a built in gear, of course! I wanted a fully automated dorm room, but I wasn't really allowed to modify or damage anything that was school property. I ended up with a face-recognizing peephole which unlocks my door, 2 automatic light switch flippers, a custom smart touch screen display, as well as phone, web, & voice controls.
Links
Robot Object Segmentation & Localization (2015)
I programmed a robot to segment and localize objects while looking around a playing field. This is used to extract visual features to improve training during gameplay. In the video, you can see that the robot points to the objects location and also says the color of the object.
Links
Xbox Kinect Experiments (2015)
The 2015 First Robotics Competition (FRC) challenge involved picking up and stacking plastic totes. I was using OpenCV and an Xbox Kinect to detect stacks of totes and count the number of totes in each stack.
PSAT Early-release Score Checker (2014)
There is a long waiting period between taking the PSAT and getting your scores. After taking the PSAT my junior year, I created a website which allows you to calculate your score (to within 2 points) long before scores are actually released by your school. It spread virally across north Texas and beyond and helped thousands of Class of 2016 juniors get their scores early.
Check out some of the buzz on College Confidential.
Links
Dorm Room Automatic Light Switch (2014)
I lived in a dorm room at the Texas Academy of Math and Science in 2014. I wanted to get into home automation, but I couldn't connect Alexa to the dorm wifi, and I couldn't take anything apart or damage the walls. So, I hacked together a system with an Arduino, Raspberry Pi, and a servo motor, to control my lights via voice, phone, & web.
Links
OpenCV Ping Pong Ball Tracking (2014)
I started learning about computer vision my junior year of high school. Here is my first cool demo - tracking a ping pong ball.
Links
TangleRidge.com Golf Course Website (2013)
Tangle Ridge is a golf course located in my hometown of Grand Prairie, TX, and I made their website. There's actually a giant advertisement for it on the side of a water tower next to TX 360. I worked on several other websites for the City of Grand Prairie, including websites for another golf course, the mayor Ron Jensen's campaign website, the Housing & Neighborhood Services website, and more.
Links
ESPN Deportes Affiliate Sites (2013)
I got involved with a local web design company and was able to work on the websites for ESPN Deportes affiliates in Dallas, Houston, Miami, and San Francisco. I got to implement a custom audio player, an engagement rewards points system, and other neat things. It doesn't look the greatest on the Wayback Machine, but I sure was having fun getting paid to make websites.
Links
2D Dynamic Lighting & Shadows with OpenGL (2013)
This was my first experience with low-level graphics. Lights blend together and cast dynamic shadows against rigid bodies. I first created this in Java, and later ported it to JavaScript (WebGL) and also Lua (Love2D).
Links
Color Code Door Lock (2013)
This home-made smart lock uses a sequence of colors to unlock the door. It's an IoT device which allowed you to remotely (un)lock the door, change passwords, add guest passwords, log activity, and more with a custom iOS app & web interface. I designed & manufactured custom circuit boards & silicone buttons pads and sourced all of the electornics and hardware necessary to produce these on a larger scale. At some point I realized that this project was too big for one kid and it has since fell by the wayside.
uCreate Minecraft Server Mod (2012)
Before Minecraft had an actual creative mode, I created this mod to allow you to implement your own customizable creative mode in your Minecraft server. After creative mode was added, I pivoted the mod to focus on augmenting the short comings of the built-in creative mode.
Links
Server Chunk (2012)
I created a Minecraft server listing website in 8th grade. Server owners could add their server to the site, and users could vote on their favorite sites. I created an accompanying server mod which tracked tons of statistics, like player count, uptime, & performance, and reported them back to the website. All of this data fed into a custom ranking algorithm that I felt was superior to all other listing sites.
Links