I'm Chris, I just graduated from Western Univerity's Software engineering programming in 2023.
As a kid, I was fascinated by games and gained a deep curiosity about how they worked, prompting me to learn how to code. Years later, I still love exploring game development, particularly on the engine side of things.
I've also gained an interest in other facets of programming as well, such as making web applications (typically on the MERN stack), generative art, artificial intelligence, and embedded systems.
Some of my other passions include photography, playing the piano, going to the gym, snowboarding, and watching long video essays about niche topics.
A recreaction of Overwatch's bubble shield effect in OpenGL, implementing an intersection shader with a linearalized depth pass, rim lighting using the Fresnel effect, and generic model loading into a scene
A light-weight C++ header-only implementation of an Entity Component System, which efficiently organizes and iterates cache-friendly data using sparse sets.
My entry for Ubisoft NEXT 2024, where I build a 3D renderer ontop of Ubisoft's 2D line renderer API and then implemented a game using that engine. Contains patterns like an Entity Component System and Object pooling, as well as having its own math backbone.
A once a day journaling web app built on the MERN stack, built to journal for today, and the future using time-locked entries.
A water effect made in OpenGL. Features tessellation, Gerstner wave simulations in the geometry shader, displacement maps, and phong lighting.
The Marching Cubes algorithm implemented in C++/OpenGL.
Features real-time rendering using threads, a .ply file output, phong lighting, and VBO partitioning for large vertex processing.
A project that simulates the creation of splines using OpenGL's immediate mode
A fully functional Scene Graph Renderer made within the Nintendo DS using LIBNDS and to be run in the DeSMuME emulator.
Supports a SceneGraph Tree with cascading transforms, an Entity Component System, Animation keyframe LERPing, and LODs.
A 2D space SHUMP made to run on the DS using embedded graphics on the OAM and Background layers.
Projects made during a week long challenge where I set aside an hour to make a generative program a day.
A simulation of rope physics with both static and dynamic points using verlet integration
The interaction of two point lights over a texture using multiplicative blending, to show light interaction
Inspired by Celeste, a program made to simulate pixel-aligned water with multiple adjustable paramters.
A draft my schedule clone made for a web development course. Has functionality like authenticated logins, managing timetables by adding/removing courses, and admin accounts with special permissions.
A terminal based socket chat app that can host multiple clients connecting and disconnecting, where clients can talk to eachother.
A platformer made in LWJGL (OpenGL) With multiple levels and obstacles within each level. Levels are loaded from images.