November 2022
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
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
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
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
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
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
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
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.