Realtime WebGPU raytracer written in Rust with a dynamic scene scripting interface.
It's just a fact: Kool Kids have nice Backgrounds. KKB is a mini CLI tool to set your background image using OpenAI's DALL-E 3 model.
An eBook manager for Kindle users. Download any book you want, add it to your library, and click one button to have it sent to your Kindle. Humbly hosted on an Nginx webserver running off of a laptop far far away. Amazon should have an API for sending eBooks, but we make due.
A CLI tool that allows you to create custom backgrounds, from the command line. Supports backgrounds with random images, random quotes, words, custom messages, text sizes, and colors. Works on Windows, Linux, and (of course) MacOS. I use it everyday :)
A ray tracing playground with an interactive web interface. Implements a variety of material types, volumes, and rendering qualities. Sits on top of a React front end running multithreaded WASM.
A space-alien shooter powered by Rust and the Bevy game engine. It may or may not be impossible to complete, but I assure you the final screen is glorious.
A 3D voxel game engine built from the ground up. Implements an entity component system, a flexible rendering pipeline, lighting, collisions, and more. Demo clips can be found in the project's README.
An implementation of 2D perlin noise. Allows you to mess around with the parameters of the noise function and related functions. Got some great results given the simplicity of it.
A better version of https://when2meet.com and https://whenisgood.net. In a few clicks, you can create an event, share your event, and set your availability for existing events. Updates are synced in real time and timezone conversions are handled automatically. It's a great platform to find timeslots that work for a group of people - no signup required.
ASCII-based 3D raster graphics render engine that runs in the terminal. Uses a graphics pipeline that functions similarly to OpenGL (or at least shares similar components) and has a rasterizer, depth buffer, and double-buffered window. It also features a camera to let you move around and an example demonstrating diffuse and ambient lighting. Clips can be found in the project's README.
Implemented a neural network in C using the standard library. Uses the sigmoid activation function, and softmax to generate results. To demonstrate that it works, I trained it on the MNIST dataset and achieved 95.6% accuracy on the test set. It's not fast, but it works :)
I wrote a small platformer game in Pygame and then let some agents loose on it. Using NEAT, a genetic algorithm for reinforcement learning, the agents were able to get pretty good at the game. They could beat my high score, in any case.
A sketch board you can use to draw things. Go figure! It saves your board in real time using Firebase and everything is secured through Google so your masterpieces are good and safe. You can customise the drawing pen, insert images and rotate things.
One day I decided to build Tetris. It's got all the swaps, boost-to-the-ground, hold-a-block, and a _riveting_ color scheme.
I suited a Pytorch implementation of Deep Q-learning, a reinforcement learning algorithm, against a couple of the control theory tasks in OpenAI's Gym. The cartpole, mountain car, and the lunar lander. The models performed pretty well. I've attached some video in the project README.
My first full-stack project. A messaging platform that's centered around group threads. You can create threads, add friends, search for chats, add tags, customise your profile, chat, etc. And, it uses a _very secure_ salted hash password encryption scheme that can be trusted with impunity :)
A Pygame clone of the 80s classic Pacman. Features the berries, the bonus life at 10000 score and an iteration of the classic splash screen. I also made a Youtube video documenting all the programming which you can find here: https://www.youtube.com/watch?v=qBWCuSID1rc&t=120s.
A iOS mobile chess app featuring local multiplayer, pass-and-play, and single player game modes. The single player game mode suits you against a chess engine which uses a search tree optimized with alpha-beta pruning. It also tells you awesome chess quotes!
A one-file path finding algorithm visualizer. You can draw walls, set start and end points, and compare two popular search algorithms for non-weighted graphs: breadth-first search and A*.