This project, titled “Runtime Software Attacks,” was a semester-long project focused on detecting buffer overflow attacks, such as Return-Oriented Programming (ROP). These attacks are particularly challenging because they manipulate a program’s execution without modifying the binary code itself. The central research question was: “How can we implement and detect runtime attacks that manipulate execution flow without altering the source code of the binary iteself?”.
This past semester at Aalborg University, our team dove into one of the trickiest challenges in global shipping: how to make data more transparent, reliable, and secure. Our project, “Developing a Secure Blockchain System,” explored how blockchain technology could tackle inefficiencies, fraud, and disputes that plague the cargo industry.
Back during the covid-19 lockdowns, I picked up an Oculus Quest VR headset, not just for gaming, but also to tinker with some coding experiments. One idea I wanted to try out was exploring how 3D maps would look and perform in VR.
Like many others fascinated by 3D LED cubes, I decided to build one myself. It turned into a fun side project and a great way to practice my soldering skills.
Busstider is a Garmin watch widget that shows upcoming bus departures. It uses the watch’s GPS to find the nearest bus stops and then displays when the next buses are arriving.
For our bachelor project, we were tasked with creating a web-based communication tool for the construction industry. Our team was made up of three game developers and two business students—and this is what we came up with:
As a quick experiment, I built a simple evolution simulator that runs over a few in-game days. Different species compete for survival. They eat, fight, and reproduce. As the player, you can intervene by dropping fireballs from above. In the end, only one group makes it out alive.
This is a small web app for loading .obj models into a scene. It supports real-time shadows and includes controls to adjust the light’s color and direction. The project is written in JavaScript and uses WebGL for rendering.
This is a simple tile editor for 2D games, built as a school assignment in a game programming class. The task was to create a basic level editor, and I decided to extend it with some extra functionality. The project is written in C# with WPF handling the UI.
I wanted to put my Raspberry Pi to use, so I set up a live camera feed to capture cress growing. The Pi took photos at regular intervals and uploaded them to a web server. In the end, I combined all the images into a timelapse. The app was written in Python.
This is a simple tool for creating cards for a card game. It’s fairly generic, with just a handful of settings to tweak. The project was written in C# with WPF for the UI, and was developed as part of a project in a game programming class.
In this project, I experimented with handling particles in WebGL using Three.js. The scene features fire with smoke, falling confetti, and snow. To make it more dynamic, I added wind that changes both direction and strength. The red cone in the scene visualizes the wind. Its length shows the strength, and the tip points in the current direction.
As a kid, I spent a lot of time playing the Flash game Playing with Fire. That inspired me to create an FPS prototype based on it. This is what I’ve built so far, using Unity.
This Unity project started as an experiment to get familiar with the API of the online grocery store Kolonial.no (now rebranded to Oda.no). My goal was to load all the products into a virtual grocery store where you could collect items and sync them with your online shopping account. I also experimented with multiplayer functionality so players could shop together in real time.
SimpleSoccer is a football simulation where both teams are fully AI-controlled. Each player’s behavior is managed using a state machine, with the current state displayed above the player. The project was built in Unity.
A recreation of the classic game Space Invaders, written in C++ using the SDL2 game library. This project was developed as part of an exam in a C++ course.
A school project implementing the A* pathfinding algorithm in Unity. In the scene, the green square is the target, the blue cylinder is the player, the orange blocks are obstacles, and the purple and yellow spheres represent the inner and outer nodes of the algorithm.
This is an endless runner game built in Unity as part of a school course on Unity development. The goal is to survive as long as possible while collecting coins along the way. Collected coins can be spent on fun hats for your character. All models in the game, except for the player model, were custom made for this project.
This is a web app I built in 2017 using JavaScript and PHP. To visualize bus locations more accurately, I calculated estimated arrival times between stops and interpolated the bus icons along the route. The data was fetched from Ruter’s API: http://reisapi.ruter.no/
SkamNotifi is an Android app I created for fans of the popular TV series Skam, produced by NRK in 2016–2017. The app sends users notifications whenever a new episode or blog post about the show is released.
Bouncy is a game prototype where you control a jumping bunny. The goal is to survive as long as possible by dodging cars and birds. Holding the space bar pushes the bunny into the ground to build up extra momentum for higher jumps.
Inspired by my part-time job, I created a mail sorting simulator in Unity. The objective is to stamp letters and packages, check that the correct postage has been paid, and throw away any garbage. Earn enough money, and you can expand your operations by owning more buildings—eventually building your very own postal empire. The game was designed for Android devices.
FitSquare is an Android game where you control a square. The goal is to navigate through obstacles and fit through small openings—each successful pass increases your score. The game was built in Unity.
BallRescue is an Android game inspired by Line Rider. The original version was written in Java, but due to the importance of version control and backups, the project was lost. I later recreated it in Unity, adding an in-game map editor instead of relying on a separate web app.
This is a 2013 project written in plain JavaScript. In the simulation, heads grow in size as they age, and if they’re old enough, they may try to give birth to a new head of the same type. The head that survives the longest is considered the winner.
This is an Android app I built in 2013 for my high school to make it easier to view the class schedule, which was otherwise difficult to check on mobile devices.