Creations

Checkmatr: A Custom Chess Engine

Chess has simple rules, but the game space is extremely large. With the strength of our current computers, we aren't even close to solving the game of chess by brute force. As a fallback, engines use a heuristic to try to find the best moves for a given player, which basically traverses a 'game tree' (tree of possible moves for both players) and quantitatively evaluates the resulting position. This project primarily focuses on how to efficiently traverse such a game tree and create an effective heuristic to maximize the strength of a chess engine. With my partner Andrew Mascillaro, we created a custom chess engine. To test the engine's strength, we have scripts that allow the engine to play agains humans or Stockfish (a top open source chess engine) at different rating levels. Our engine outperformed our expectations, and has won games against the 2400 rated Stockfish engine, which basically means this engine is strong enough to be a titled player in the chess world.

Project Link

Olin Planetary Rover

For the final Fundamentals of Robotics project, our team (Isabella Abilheira, Chris Allum, Olivia Jo Bradley, Oscar De La Garza,Nabih Estefan, Maya Sivanandan) was tasked with creating a rover that could complete several missions in The O, the center courtyard of Olin’s campus. The three main challenges were: Navigation of unobstructed terrain, Docking in a supply station, and Delivering a payload to a drop box. Besides this, our team decided to try and do 3 extra stretch goals: Navigate through stationary obstacles, park within the medium box of the supply station, and deliver our payload to a specific dropbox using April tags (with a possible one being finding payloads around the O and picking those up for extra deliveries). Of these, we were able to complete the first two during our demo, with the two payload stretch goals not being tried since the payload rules we’re re-instated halfway through the development of the project, and stretching ourselves to complete these seemed unnecessary.

Project Link

Terminal Chess

For our first project in our Software Systems class, me and my partner (Oscar De La Garza) developed a set of executable C files that can be used to set up a server for two clients to play chess. The server is run from the terminal of one computer and the two clients can connect by running the client script. These clients then take turns playing a chess game, which is all taken care of by the server. The only restriction to the game is that the clients and server have to be on the same Wi-Fi, and the clients need to know the server's IP address, if these are met, the connection between the server and the clients will work as expected.

Project Link

Self-Balancing Rocky Robot

For the final project of Engineering Systems Analysis (ESA) I programmed (with Olivia Jo Bradley) a Balboa U324 robot (which we called Rocky) to self-balance. This project was centered mostly around the logic and calculations behind transfer functions, and how these can be used for feedback loops with PI control, simulating the robot as an inverted pendulum, and having Rocky react to changes in its position to stabilize.

Project Link

CPU Components in Minecraft: 8-bit ALU

Throughout the semester in our Computer Architecture class, we learned how different logic gates are used to create different components of a CPU, eventually leading up to us building a full Single-Cycle CPU (which you can see in another project). For our final project, Oscar De La Garza and I decided to recreate one of these very important components from a CPU in a different platform than the ones we had used previously: Minecraft.

Project Link

Elliptic Curve Cryptography

Elliptic Curve Cryptography is one of the most common forms of cryptography used in messaging services and different internet transactions and information exchanges. For our final project in Discrete Math, Jack Greenberg, Oscar De La Garza, and I decided that we were going to create a webpage with a set of slides that helps people understand the basic of what ECC is, how, and why it works.

Project Link

The Perfect Pancake Flip Trainer

Taking orientations and accelerations of a pan in a pancake flip, we calculate the positions of the pan so that we can compare it against a perfect pancake flip and we can tell the differences so the person flipping can perfect their technique.

Project Link

Single Cycle CPU in Verilog

Throughout the semester of Computer Architecture we started with Binary logic and built our knowledge all the way to how different components of a CPU are built from logic gates. This last Lab was centered around me and Oscar De La Garza creating a Single Cycle CPU in Verilog. We built the CPU with branches, jumps, loads, stores, and so many other functions for our ALU.

Project Link

Medieval Quest: An Adventure Game

For the final project for our Software Design class, Oscar De La Garza and I decided to create an Adventure Game in the style of the original The Legend Of Zelda. We created this game using Python's PyGame library, developing different enemies, characters, screens, and mechanics that are used on different goals throughout the game.You can see in more detail the Sprites and mechanics we developed for Medieval Quest in our project webpage below.

Project Link

Dum-E: a 2x2x2 Rubik's Cube Solver

Olivia Jo Bradley, Maya Sivanandan, Florian Schwarzinger, and I participated in the MakeHarvard 2020 Make-a-thon. We decided to create, in our 24 hours, an automatic 2x2x2 Rubiks Cube solver. The difference between this and a normal Rubik's cube solver is the fact that a 2x2x2 Rubik's cube cant be held by the center pieces to turn the sides of the cube the way Rubik's cubes are normally are held, meaning it has to be free to twist and turn while it's being solved. We designed the structure during the start of our Make-a-thon and while Olivia Jo and Maya built it, I created the code that told our machine (which we called Dum-E as a callback to Iron Man) how to scan the cube and create a string that represented its state. Then, this string would be sent to a script that Florian created, which returned another string that signified the set of steps needed to solve it, which my code would decode and tell Dum-E how to perform.
We won the MakeHarvard 2020 Original Prize.

Project Link

Nifty tech tag lists from Wouter Beeftink