Programming Projects
Digital projects or those requiring code
01 - COMPLETED
Generational Machine Learning
May 2021 - For a final project in my advanced computer science class, I wrote a machine learning algorithm to enable virtual "cars" to learn to drive. Given sonar-like distance data at 5 angles fed into a neural network, multiple generations would be simulated and improved through a survival-of-the-fittest method.
​
​
​
02 - COMPLETED
Platformer Game
Mar. 2021 - Also as a project for my advanced computer science class, I wrote and animated a multi-level platformer game with from scratch (excluding graphics/interfacing libraries). Collisions are defined mathematically and it a tile-based level system with a variety of functional tiles. Having been an avid Scratch user, this was very reminiscent of my elementary school years programming similar (albeit far simpler) types of games.
​
​
​
03 - COMPLETED
3D Rendering Algorithm
Aug. 2021 - Though the game it was designed for was never completed, I wrote a 3D orthographic voxel renderer for a block puzzle from scratch as a personal challenge. Color, lighting angle, and perspective are all controllable parameters. Unfortunately, it is voxel-based, and doesn't work with meshes. The render system is also fairly unoptimized and inefficient, though the method of drawing the shapes on screen may influence that as well.
​
04 - COMPLETED
Tetris in Java
Nov. 2019 - As a way to learn to use graphics in Java in 9th grade, I l taught myself the rules of Tetris and subsequently programmed it within the same day. Though not as smooth as the original game, it functions and is playable nonetheless.
​
​
​
05 - COMPLETED
Mandelbrot Set on TI-Nspire
Apr. 2022 - Simply out of mathematical curiosity, I wrote a program to render the Mandelbrot Set, a infinitely complex fractal, on my calculator, a TI-Nspire CX II.
​
06 - COMPLETED
Conway's Game of Life
Jul. 2022 - Interested in the emergent complexity from disorder that is a cellular automata, I programmed John Conway's Game of Life in Java with toroidal topology (think Pacman). It has the ability to speed up time, take single steps, and alter the game rules to find other emerging patterns. I also implemented a color-based "age" system to visualize how long a tile has been alive, with green being youngest and grey being oldest.