Braxton Kelso's Portfolio

Web Projects

Get Attribution

Get Attribution is a project that I was hired freelance for. The technology allows website owners to receive information on how users found their website, as well as how they interacted with it. The Project can be broken into 3 parts, a script on the webpage, an interface that the script interacts with, and a dashboard to view gathered data. This project is built entirely on JavaScript using node.js. It uses MySQL for the database.

The script on the webpages saves the URL the user entered the website on and negotiates with the interface to assign the user a unique id. As the user traverses the website the script will note clicks and page changes as well as any custom events the website owner wants to keep track of. For example, on a form submit we can store the information from the form. We can also note whenever chats have been started on the website.

The interface receives data from the script. It has 2 main functions, to assist in ensuring user-ids are unique, and store the information the script gathers. The interface was constructed by scratch on the https protocol and uses a custom REST API.

The dashboard is a custom web app using a purpose-built REST API. The dashboard allows website owners to log in through an encrypted session and view the data recorded on their site. The dashboard features a graph to display where users are coming from at a glance, and a table to view detailed reports which can be filtered by date and sorted by any column.

Passing Over

Passing Over is a web-based horror game I created over the span of about a week. The engine that runs the game is pure JavaScript and purpose built by me. It uses Three.js as its 3D library, Ammo.js as the physics engine, and a custom pipeline and file handler written by me.

I programmatically modeled the room. I also modeled the door, donut, pill, and pill bottle in Blender. The rest of the objects in the room are free models that I imported into Blender and corrected them to be as optimized as possible for web-based graphics. Much of the sound design was either created by me or remastered to fit in the game world.

Due to the nature of this project, it can be hosted live and experienced through the button below. You will need a computer with a decent GPU as a few point lights with dynamic shadows are used. There are settings you can disable before the game starts for lower end computers at the expense of some of the atmosphere.

Unity Games

Mall Rats

Mall Rats has been my most ambitious project yet, even though it was meant as a proof of concept. The game is a horror exploration experience in which you and a group of seemingly random individuals must escape from a mysterious mall. Throughout the game, mannequins will hunt you down when they are out of sight. You and your teammates must work together to keep them all in check and find the keypads which allow access to the generators. Once all generators are started, escape becomes plausible.

The game was created over the course of 10 weeks. I modeled every model in blender, textured the player models, composited the materials, voice acted, and mastered the sounds. I also wrote each behavior either from scratch or using Unity packages. The one exception to this is the multiplayer library I used known as Mirror.

This project was daunting to take alone with such a short time frame, but it definitely grew my skills throughout the entire endeavor. I studied each of Unity's 3 main render pipelines, Default, URP, and HDRP. The final version of the game uses the HDRP. I learned about Unity's scriptable shaders, the VFX graph, and the animation state machine. Though the animations were generated from mixamo I created the 20+ state 40+ transition animation state machine. One of the greatest challenges was learning how to do all of this in a multiplayer environment, this forced me to learn how each component works in depth.

UTSM

UTSM (Ultra Target Shooter Man) was my first fully realized completely original creation in the Unity Engine. The game was created over the course of 2 weeks. Though I have grown a lot since this project, I still look back on it fondly because of what it taught me. The goal of the game is to shoot the targets as fast as possible. If you take too long, any remaining targets are counted as misses. Everything in the game was modeled by me except for the asteroids. The amazing voice work was provided by a friend of mine who would prefer to remain anonymous.

Some of the interesting code in this project is the first-person controller which is a modified open-source asset. If you look closely in the video, you may notice that the glowing parts of the map pulse with the music. This was done with Unity's built-in audio analysis and was a fun effect to pull off. Overall, my favorite thing about this project is just how good the game felt to play. I feel like it is one of the most fun environments I have ever constructed.

UTSM (VR)

This was a quick test I created when I acquired a VR headset. I converted the above game into VR, other than a different control system it is the same game. I used Unity's built in XR components as well as a bit of custom code to modify and customize the experience. The VR hands were modeled and animated by me. The video is pretty much the same as the above video but showcases the new controls and I miss a few targets when I drop my gun.