Welcome!
I'm Jakob, a software developer and 3D low-poly artist. I have considerable experience in game engines and object-oriented programming. Some of my favorite projects and work experiences can be found below.
Projects
Apr 2026
Solo Project
Creating using Godot, gdscript, Blender
Rescue animals, extinguish fires, and wade through smoke on a limited supply of oxygen.
Created for the Dungeon Crawler Game Jam 2026.
Jan 2026
Solo Project
Creating using Godot, gdscript, Blender
You will need to fight zombies and protect yourself using a gas mask with a limited oxygen supply. This game uses tank controls, using the keyboard for input.
Created for the Global Game Jam 2026.
Feb 2023 - Apr 2023
Solo Project
Creating using Godot, gdscript
This was an exercise for me to recreate the toon surface shaders and water shaders from The Legend of Zelda: The Wind Waker in as much detail as possible, while also learning about how to use wave functions to generate interesting wave patterns and making a fun-to-control and bouncy, yet weighty boat player character.
Sept 2022 - Dec 2022
Group Project
Created using Unity, C#
High-Speed Hominids is a competitive movement-based shooter in which each player spawns in their own "guantlet": a series of rooms containing platforming and combat challenges. Once the guantlet is finished, the players are transported to an arena in which they must use their acquired gear for a final shootout to decide the victor. Complicating matters is that players can sabotage others' runs through status debuffs or even teleporting to their track!
I joined the High-Speed Hominids team as one of the main technical developers. My primary task for the majority of development was implementing the track system, including the spawning and culling of rooms for each player, as well as the fine-tuning of enemy spawning and tweaking of the conditions for locked doors. Towards the end of development, I helped finish various card abilities and got the track teleportation to be a working, complete system by our release date.
Jan 2023 - Apr 2023
Solo Class Project
Created using C++
This program allows the user to define a .ppm image of a scene consisting of spheres and triangle meshes of varying materials, point lights, and directional lights via an input file in which they define the camera position and direction, along with defining the scene itself.
This project was the focus of my Fundamentals of Computer Graphics class at the University of Minnesota. I had to implement everything from scratch starting with a 3D vector class. I've implemented of the Phong reflection model to allow different materials to react to light differently, with spheres and triangles as primitives one can define a scene with.
My most recent addition was the introduction of reflective surfaces and transparent objects with light refraction.
Jan 2022 - May 2022
Group Project
Created using Unity, C#
Remnants is a top-down 2D action game with a primary focus on combat. There are four levels, each populated by environmental puzzles, enemies and a boss. The player has access to a sword, dodge roll and five “specialty” weapon abilities.
I joined the Remnants team as one of the main technical developers. Based on discussions with the project lead and design notes describing the player character and weapon abilities, I created the player controller and all of its default and weapon abilities. I also made the first draft of the demon and witch enemy classes and the enemy base class they both derive from. Towards the end of development I helped make modifications to the code and tweaked values on the nearly-finished enemy classes to shift the gameplay toward what I thought would evoke desired feelings in players.
Nov 2022 - Dec 2022
Group Project
Created using JavaScript
This program allows the user to play chess against two different adversarial AI algorithms of varying complexity or an opponent that makes random moves. The user can also pit any three of these opponents against one another to test their relative proficiency.
This was the final project for my Introduction to Artificial Intelligence class at the University of Minnesota. I worked on this project with classmate Fahia Tabassum. After researching the history and modern practices of adversarial AI methods, we settled on a minimax search with alpha-beta pruning that uses the total value of material on the board and a piece-square table that interpolates between a "mid-game" state and an "end-game" state based on the amount of material still on the board. The interface and third AI option are from github user lhartikk's chess AI repo. I implemented our new algorithm in JavaScript and added the option to switch the AI players on both the white and black sides.
Nov 2022
Solo Class Project
Created using Unity, C#
This inverse kinematics demo is an interactive program in which the user can interact with implementations of three-dimensional inverse kinematics. There is the spider demo, in which the user can control a spider character with realistically moving limbs. The other two demos are arms in a 3D space, and using the mouse the user can place points in the 3D space, which the arm will then reach out towards.
This was an assignment for my Animation and Planning in Games class at the University of Minnesota. The first arm demo and spider demo both use the CCD method of inverse kinematics. I first got this algorithm working in 2D and then adapted it to 3D for the arm demo.
I then repurposed this 3D implementation for the spider demo, for which I tweaked movement values and joint limits to make the spider’s limbs move more naturally. I created a script for the spider player character that would redefine the endpoints for the limbs based on its movement, and I used raycasts from above the spider to find points of the correct height so the spider could look as if it naturally climbs up slopes, which is a feature I was really excited to include as it does a lot for the feel of the spider.
The second arm demo uses the FABRIK method of inverse kinematics, and was created to test another popular algorithm of inverse kinematics.
Jan 2021 - Nov 2021
Group Project
Created using Unity, C#
Arpeggio is a 2D turn-based RPG. After a battle is initiated on the map, the player controls 3 player characters and battles against enemy units in “turns” that are more frequent the higher a unit’s speed stat is. All units can move and attack across the battlefield, with stats and action type affecting the range and distance over which these moves can be used.
I was project manager and a lead programmer on Arpeggio. I also came up with the gameplay concept, which I pitched in front of the club using a PowerPoint and a small proof-of-concept demo made in Unity. The chief idea behind the gameplay is that spatial RPG combat on a continuous field more easily allows for expression of the unique characteristics of characters through their actions.
As this project was done during the height of the pandemic, we were restricted to only online forms of communication for the project. We met via Zoom twice a week, and as project manager I would check in with programmers, artists and designers on the project, discussing their progress and next steps.
Aug 2021 - Jan 2022
Solo Project
Created using Unity, C#
Fox Treadmill Adventure is a 2D platforming game demo in which the player can control a small fox character. The fox controls similarly to many other platformers, but instead of running along a long, horizontal level, the entire ground is a treadmill that must be moved for the level to progress, and all of the level elements are either tacked to the wall or hanging from ropes! Can these strange qualities be used to the player’s advantage?
Fox Treadmill Adventure is a personal project that started out of me wanting to learn more about the coding of platformer physics and collision detection. I used some of Unity’s collision detection in the form of its colliders, but coded all of the collision resolution and platformer physics myself, which was a great learning experience for me. Then, based on the idea of a “single room” theme I saw used in a game jam, I created the treadmill mechanic. I focused on creating interesting interactions with the treadmill and the environment, which is how I created the clouds and platforms suspended by swinging ropes.
Oct 2022
Group Class Project
Created using Unity, C#
This cloth simulation program allows the user to interact with a simulation of a piece of hanging cloth by moving a ball object to collide with it and can get different vantage points of the cloth with the ability to move the camera.
This was an assignment for my Animation and Planning in Games class at the University of Minnesota. I worked on this project with classmate Thien Nguyen. I first worked on assigning the UV values to the mesh vertices correctly so the texture assigned to the cloth would display correctly. After this, I worked on tweaking the values for the physics simulation implemented by my partner to stabilize and smooth the simulation. I also added some extra assets and music for fun.
Sept 2022
Group Class Project
Created using Processing
This is a program in which a probabilistic roadmap is generated from randomly-placed obstacles, along with an agent and a goal. The agent will follow the optimal path along the roadmap to the goal. The user can move the position of both the agent and goal to show the robustness of this algorithm. Furthermore, the user can have the program generate a new environment with obstacles and a probabilistic roadmap.
This was an assignment for my Animation and Planning in Games class. I worked on the project with classmate Skylar Volden. My main task was programming and troubleshooting the A* search algorithm to allow for nearly instant pathfinding along a probabilistic roadmap generated by code from the class instructor.
May 2022
Solo Class Project
Created using TypeScript, Three.js
Crayon World is an interactive program in which the user can draw on the screen with the mouse. Depending on where the drawn line starts and ends, the line can be projected onto the skybox, placed on the ground as a billboard, or introduce changes to the ground’s topology.
This was the final project for my class Programming Interactive Computer Graphics and Games at the University of Minnesota. I was tasked with implementing the functionality of sending raycasts into the 3D environment from the drawn points on the screen. Using those raycasts, I had to project the drawn points onto the skybox or the ground plane mesh and redraw the drawing at that point in the 3D world using various matrix transformations. Modifying the ground mesh meant taking these projected points and modifying individual vertices of the ground mesh. The toon shader for the ground is one we programmed in an earlier project.
Experience
June 2023 - July 2025
Website: https://www.oati.com/
Description:
Implemented bug fixes and change orders into OATI’s reliability products based on outlines from customers and QA teams
Maintained and updated SQL databases for OATI’s reliability products
Communicated current progress on tasks and discuss customer orders in daily team meetings
May 2022 - January 2023
Website: https://www.versebuilding.com/
Description:
Head Unity developer for The Verse's Animal Realm: The Ladder game
Designed and developed game prototype in Unity for the gameplay of Animal Realm: The Ladder
Lead Scrum Method "Sprint" check-in meetings with Animal Realm: The Ladder team every week
Coordinate with Unity developers, visual artists and writers to ensure that Sprint goals are substantial and achievable
April 2020 - May 2023
Website: https://vgdc.club/
Description:
In charge of taking care of monetary concerns when holding events such as game jams or speaking events
Tasked with knowing where to access funding from university
General Officer duties consist of participating in club fair events and regularly participating in meetings, helping coordinate own group project and the group projects of members
Sept 2022 - May 2023
Classes:
Introduction to Artificial Intelligence, Jan 2023 - May 2023
Introduction to Algorithms, Data Structures, and Program Development, Sept 2022 - Dec 2022
Description:
Assist students with coding questions in labs and office hours
Support students with issues in their code for assignments, ultimately resolving the issue without giving the answer directly to strengthen critical-thinking code skills
Prepare for weekly labs by reading over the materials in advance and planning any necessary tutorials with which to introduce the lab to the students
Evaluate student code with parameters set by the instructor for weekly grading assignments
Attend weekly meetings with fellow teaching assistants and class instructor to discuss upcoming labs and projects