This was my final project for ECE495: Intro to Robotics. The goal of this project was to simulate a robot that could play tic-tac-toe.
Read MoreThis was my midterm project for ECE495: Intro to Robotics. The goal of this project was to use ROS with Gazebo and MoveIt to write my initials in space with a simulated UR5e robotic arm. The project was an exercise in motion planning and a gentle introduction to the MoveIt Python interface.
Read MoreThis project is my first successful foray into game development, and a submission to my first ever game jam! A game jame is a lot like a hackathon, but for game development. This game, Old Gods, is a small game I programmed for Mini Jam 61, inspired by MOBAs like League of Legends and classic top-down roguelike games. Check out the game on itch.io at https://therhombus.itch.io/old-gods.
The second project in my advanced software design class: a complete simulation of cellular automata. If you've ever seen Conway's Game of Life or similar simulations, this is that! This complete JavaFX application can simulate an arbitrary cellular automata. It is designed with modularity and extensibility in mind. Check out the project on Github at https://github.com/thomas1400/simulation.
I'm taking a class in advanced software design this semester, and our first project was to code our own remake of the classic game Breakout using Java and the JavaFX package. With this project, I started learning best practices that will help me design code that is clean, well-structured, and maintainable. Check out the project on Github at https://github.com/thomas1400/breakout.
I spent some time in fall 2019 designing and building a small robotic arm! It wasn't my most successful project, but was a good learning experience - I learned about the challenges associated with fine control of robotic systems and the limitations of the microcontrollers I used to drive it.
One of my most satisfying software projects: a Java implementation of Ultimate Tic-Tac-Toe -- tic-tac-toe with a twist! The standalone executable includes a simple GUI with the Graphics2D library and an option to play against a (remarkably good!) AI.
View ProjectA creative coding project with p5.js: an implementation of the Floyd-Steinberg Dithering algorithm for color quantization and quantization error correction. This was a really interesting exercise, and I learned a lot about data structures and image processing!
View ProjectAnother creative coding project with p5.js! This one was a ray tracing simulation, a technique often used in 3D rendering algorithms. In this case, it isn't used for rendering, but rather a cool visualization of a light source moving around a 2D space.
View ProjectI started creating this website thinking that I could just download a template, paste in my info, and call it a day. I quickly realized that the template had plenty of issues--fixing them was a huge learning experience! I believe troubleshooting is one of the best ways to learn, and this certainly involved a lot of troubleshooting. I picked up a great amount of HTML and CSS, of which I had no prior knowledge, in just the four or five days it took to make this site, and I really enjoyed doing it!
I'm a senior at Duke University pursuing a double major in electrical and computer engineering and computer science. I love learning new skills through projects, and when they're interesting, I'll post something about them here!
Enabled rapid prototyping during the development of an autonomous robotic system by building an extensible simulation platform for research and design of robotic control schemes. Created a realistic simulation of robotic movement and control in Unity, including automated simulation metric generation/uploading to AWS S3 and data analysis in Python; simulated and analyzed potential robotic control schemes to maximize operator performance and inform future work.
Led a lab of 12 students as they completed a large-scale design challenge involving the integration of 5 robots with microcontroller-driven autonomous movement, sensing, and communication.
Collaborated with business leaders and an agile team of 6 interns to deliver a web app for visualization and management of pharmaceutical shortages. Facilitated productive communication and 6 team meetings/week as an Agile scrum master.
Designed class materials with the goal of greater student engagement and higher-quality technical work, including over 110 minutes of video lectures, online technical instruction with over 7,500 views, and 5 comprehensive technical learning projects that will be completed by 250+ first-year engineers each year.