3D Printing
At the age of 12, I independently assembled my open-source 3D printer. Following that, I taught myself computer-aided design with Fusion 360 through online tutorials and YouTube. I scoured web pages and internet forums to understand everything from bed leveling to fixing over-extrusion and other print defects. To upgrade my printer, I calibrated e-steps, added mesh bed leveling, installed a silent motherboard, tuned linear advance, and recompiled custom firmware for optimal settings. I also replaced parts of my mini Theseus's ship, adding a hardened steel nozzle, new bed springs, and a Capricorn PTFE tube. My upgrades continued with 3D-printed modifications, including an improved cooling system, filament guide, runout sensor, display backing, connected tool mount, and more. I even set up an open-source server on a Raspberry Pi to remotely monitor prints with live video, perform AI-driven failure detection, and enable wireless file transfers, eliminating the need for a clunky SD card. Ironically, while I've used the printer for countless projects, it remains one of my favorite creations in and of itself.
FIRST Robotics
FIRST Robotics was where I truly brought my passion for programming to life. I eventually served as the lead programmer for our team, though my first role involved building and manufacturing. Working with CNCs came naturally after my time with 3D printing (fun fact, both speak G-code!). As lead programmer, I directed other members of the programming team, managed code merges for new features in our Git repository, and wrote code for our 125-pound robot. I also programmed the autonomous mode and several subsystems, including the intake. Before my time as the programming lead, I had led subsystems such as the shooter and helped coordinate interactions between multiple systems. This involved computer vision with the Limelight, odometry management, and automated aiming. I also contributed to implementing the code for our holonomic drive system.
Science Olympiad Robotics
I competed in several Science Olympiad events, including Tower, Air Trajectory, Codebusters, Electric Vehicle, and, my favorite, Robot Tour. After working on FRC robots, I wanted more control than the pre-made libraries we used could offer. So, I decided to write my own pure-pursuit algorithm from scratch for a fully custom robot. I designed the robot in Fusion 360, researched and purchased all the necessary electronics, soldered the components, and wrote the code in C++. This code responds to the environment responsively by combining odometry and gyroscopic data. It continually calculates the direction by solving for the intersection between a circle centered on the robot and its path, and then calculates an arc that the robot can follow to reach that location. From this arc, it derives the speed each wheel should go. To ensure accuracy, I added PID control for turning and developed a live Python visualization tool for debugging. In addition to smooth and precise motion, I programmed a second PID loop that automatically adjusts the robot's speed to ensure it finishes exactly at the desired time. This was a long process with lots of challenges, including having to switch drive systems multiple times (first tried continuous servos, then small steppers, then finally landed on small DC motors with encoders). I definitely went a little overboard, but I persevered through the challenges and am extremely happy with how it turned out.
Heavy Top Quark Research Project
I led the creation of neural networks to distinguish between multiple theoretical models for the heavy top quark. This began with hours of CERN college lectures to build my foundation in particle physics. I simulated particle collisions from the Large Hadron Collider in MadGraph and Pythia, storing over 400,000 data points in ROOT. I then built custom neural networks in PyTorch, incorporating mini-batch training to achieve faster convergence, all while coordinating with my research team and Professor Daniel Whiteson, my advisor from UCI. He is also my advisor for the following two research projects.
Cosmic Ray Research Project CRAYFIS
I first conducted two optimization studies: one on the ideal arrangement of phones for detecting cosmic rays, and another on the best configuration of scintillators to cross-reference phone data. For the first study, I wrote Monte Carlo simulation code in Python and ran it on UCI's computing cluster, implementing multiprocessing to speed execution by more than fivefold. The second study optimized the number, size, and placement of scintillators for improved detection accuracy. I am currently collaborating with Professor Michael Mulhearn at UC Davis alongside Professor Daniel Whiteson from UCI to build a 1000 ft2 demonstrator array later this year.
Gravitational Waves Anomaly Detection Research Project
I'm spearheading a project focused on detecting anomalies in gravitational-wave data from LIGO detectors. This involves adapting novel machine-learning methods from particle physics toward residual anomaly detection. I've expanded on my experience with PyTorch to build scalable pipelines and am currently collaborating with researchers from Stanford and Yale.
Farnsworth Fusor
During a visit to Caltech earlier this year for the Science Olympiad competition, I toured one of the physics labs. That experience inspired me to explore harnessing fusion on a smaller scale in my own way. When I returned home, I learned how to build a fusion reactor from scratch through online forums and tutorials. After planning the design and sourcing the components, I machined aluminum parts to create the vacuum chamber and assembled the reactor. This project, like all of my others, faced numerous challenges. Among these were the vacuum tube collapsing, the vacuum not getting low enough, the high-voltage rectifier crimp breaking internally, and many more. It took seven attempts before I finally saw the beautiful purple glow. The nuclear fusor I built is capable of fusion reactions, but to stay safe, I run it at 10,000V using regular air instead of deuterium. That keeps it just at the plasma stage, right at the edge of fusion, so I can enjoy the process without, well, getting blasted by neutrons.
Websites/Apps
There are more builds I have made that did not make the cut for the video. Among them are the numerous websites that I have made. I started learning web development all the way back in middle school and spent time learning HTML, JavaScript, and CSS. Soon enough, I branched into more specific frameworks, such as React alongside Next.js and Tailwind CSS. I also created databases and used more advanced technologies like websockets to create my real-time apps, like my chat web-app, which interfaces with Firebase. The websites I have built are visible from my personal website, krishwu.com. I also built some fun projects like a Tetris app for my computer that also meows for every move you make.
