Small Projects

November 2022

Marching Cubes Implementation

My implementation of the classic marching cubes algorithm. I was going to make this into a bigger project where you could walk around on the surface, but my current physics engine was too slow to handle it.

September 2022

Minecraft Clone

Basic clone of minecraft. Placing and destroying blocks, as well as infinite world generation were implemented. The purpose of this project was to test the capabilities of LWJGL.

May 2022

Chess Minimax AI

Two player chess, with a 3 move minimax chess AI on button click. Currently, the function evaluating the fitness of every move is very rudimentary, only factoring in piece values, and their positions, closer to the center the better. Is best in the midgame, ok at the early game, and absolutely garbage at endgame. Only alpha beta pruning is implemented, no other optimizations.

August 2021

Shadow Caster

While working on a 2D top down game, I thought it woud be cool if I could implement a line-of-sight mechanic. The one I had at the time was really slow, only being able to handle 10 or so objects before the framerate dropped.

April 2021

3D Ray Marcher

My first try at raytracing. Using the ray-marching technique I practiced previously, I did some simple graphics. It's really slow, and only supports spheres, so it could definitely use some work.

2020

Polygon Raycaster

After completing my first raycasting project, I wanted to break out of the limitations of a grid cell environment. So, I turned to raymarching to solve the ray-polygon intersection problem.

2020

Chaos Game

Yet another small project inspired by a numberphile video. This one was inspired by Chaos Game. I thought that it was fascinating that such simple rules could make such complex shapes.

2020

Darts

Inspired by Darts in Higher Dimensions. The video poses an interesting probablity question, and I thought it would be interesting to solve it using a simulation.