Main Page

June, 2024

Spectral Path Tracing

Using a more physically accurate spectral representation of light to model phenomenon like dispersion.

January, 2024

Path Tracing

Simulating the behavior of light to generate physically accurate(ish) rendering of static 3D environments.

November, 2023

Smoothed Particle Hydrodynamics

Simulating water as a collection of particles. Also, learning to utilize compute shaders for general purpose computing.

September, 2023

PBR Rendering Pipeline

Rendering 3D models using PBR; an approach to rendering that attempts to model how light would behave in the real world.

July, 2023

Hydraulic Terrain Generation

Generating realistic(ish) mountainous terrain via hydraulic erosion simulation.

March, 2023

2D Physics Engine

An overview on the math and physics to make a basic 2D rigid body physics engine that can support circles and convex polygons.

February, 2023

Discord Games Clone

Clones of various discord nitro server voice channel games.

November, 2022

Procedural Planets

Generation of procedural planets using 3D noise functions and post processing effects.

October, 2022

CSGO Clone

My first game made using LWJGL.

May, 2022

Roguelike Devlog

Another incomplete game, working with the lessons learned from the previous one.

November, 2021

Platformer 2 Devlog

A rather incomplete game that I spent maybe 2 months on and off making. Although there is much room for improvement, especially in the performance department, I'm pretty happy with how this one turned out.

October, 2021

3D Engine 2

A redone version of my first 3D engine. Framerates have been drastically improved upon, and support for texturing has been added. A file explorer option has also been added so you can load your own 3D meshes. If textures are desired, then you must place the .mtl and .png files in the same directory as the .obj file. There is no support for n-gons, so that means that all polygons in your .obj must be triangles.

September, 2021

Space Balls

An homage to one of the greatest spinoffs of all time: Space Balls! Control the Eagle 5, and observe the magnificent space balls! The balls come with physics based collision and gravity as well. In reality, this is just a 3D graphics test. The application is just a simple rasterizer, but unlike the previous one, camera controls have finally been added.

August, 2021

ML Digit Recognition

My first foray into the world of machine learning! For this project, I used the MNIST dataset of handwritten digits. A fully connected neural network was used, and I managed to train an example network up to 90% accuracy on the testing data. I also included settings so you can generate your own neural network and train it. PSA: You will see a blank screen when you launch, don't worry, it's just loading all the test cases.

August, 2021

Sphere Marcher

Not a ray marcher, but a full fledged ray tracer with proper lighting and shadows. The engine can handle spheres - hence the name - and triangle meshes, although as the object count grows, the program will become much slower.

July, 2021

Tetris Clone

A simple clone of tetris. The mechanics are as faithful to the original as I could get it, some fancy spin maneuvers might not be possible though. The program will make a new file to save your highscore, but it won't break the program to delete the file ... or edit your highscore.

June, 2021

Pathfinding Sketch

Either make your own maze, or let an algorithm make it for you, and then compare the two pathfinding algorithms, bfs search or astar, to see the pros and cons of each. Path cost is measured as the amount of cells travelled through to get to the destination, and as the pathfinding algorithm only checks in the four cardinal directions, it's pretty much manhattan distance.

June, 2021

Powder Game

A small sandbox game based on the one over at DAN-BALL, minus the realistic physics. Place down different types of powder particles, and watch them interact with each other.

June, 2021

Boids

A 2D simulation of birds flocking. Could also be applied to shoaling fish, or any other group animal. The math can also very easily be transferred to the third dimension, but I lack the knowledge to render it, and i'm too lazy to figure it out. This is also my first sketch in p5js!

May, 2021

Javid's 3D Engine

A small 3D engine with fixed lighting. Credit to Javidx86 for carrying me through this one with his excellent video tutorials.

March, 2021

Raycaster Version 2

A raycaster that improves on the previous one I built. The warping due to projection issues is gone, and wall textures have been added.

February, 2021

Gravity Simulator

A simple gravity simulator with circle to circle collision mechanics. You can generate new balls of different sizes by adjusting the sliders at the top.

December, 2020

3D Renderer

My first 3D renderer! Only renders a cube though. Drag and click with the mouse to rotate the cube around.

November, 2020

Raycaster

A small raycaster demo. Fog effects were added in order to help see the walls more clearly. There are a lot of projection issues though, might fix that later.

September, 2020

Pandemic Simulator

A number crunching simulator that approximates how a pandemic would go. You can adjust the specifics of the pandemic through sliders at the top of the screen.

July, 2020

Travelling Salesman Sketch

Place down nodes, and the app will calculate the shortest euclidean distance path to visit all nodes.

Thanks for scrolling down this far, I hope you enjoyed