Mart van Saane
CV

Welcome!

I am a Dutch software engineer, currently located in North Vancouver, Canada. I love working on interactive pieces of software, and using 2D and 3D math.

I use this website to showcase some of the projects I have worked on in my studies and career.

AMD Tools for Unity

As part of my work at Alterego Games, I worked on an implementation for AMD FidelityX FSR 2 and CACAO in Unity. The tools run on all modern devices, through use of compute shaders. The FSR 2 tool is publicly available on the Unity Asset Store, and has been very well received.

Creating both of these tools taught me a lot about graphics in Unity. The tools require different C# implementations for all the Unity render pipelines (BIRP, URP & HDRP), because they all have different ways of accessing the various required graphics buffers for the tools. The biggest lesson of the project was learning how to use RenderDoc. Which proved extremely valuable in debugging problems with the tool.

Module Based Simulation Game

I spend most of my time at Alterego Games working on a yet to be released sports simulation game. Within the game the user interacts with the physical simulator, allowing to be used as a training tool for amateur to semi-professional athletes as well. Therefore, one of the main goals for the game is to be as realistic as possible.

After 10 months on the project, I was assigned as the lead developer. In a development team of 6 programmers, and total team size of 15 people across 3 companies and locations.
The full code architecture is module-based, which means that all the code is split up into standalone chunks. Where individual modules are only able to communicate with each other through a custom event system. This setup certainly had some major advantages but also disadvantages. It was generally easy to work with multiple developers at the same time, because you would encounter no merge conflicts when people worked in separate modules. However, it proved difficult to keep the modules as standalone as possible. Over time, dependencies between modules would slowly start to creep in. So, one of my main tasks as the lead developer was to identify and prevent these issues.

We delivered a closed alpha build of the game. Which includes full playability of singleplayer and local multiplayer matches in the essential game modes. And communication with a remote database to retrieve online level and localization data. With the next milestone being implementation of the online multiplayer. Unfortunately, shortly after this our company stopped working on the project, due to a change in collaboration between the companies.


Things I have worked on include:
  • Unit localisation system
  • Syncing compressed level data with server
  • Offline lobby system
  • POC crowd system
  • Camera movement system
  • Material detection system for physics calculations

BIM Model Analyzer

For my master dissertation, I worked on an application for viewing and analyzing Building Information Modeling (BIM) models. I made this in cooperation with BT, as part of their Network Digital Twins project. Within the application, the user can import an IFC file. Which is then converted to an OBJ and XML file using the IfcOpenShell library, giving access to the geometry and BIM metadata. Through the work of another researcher, an algorithm had been made to be able to parse all the cable tray data out of an IFC file. I have used this data to provide the user with a 2D overview of the cable tray network. Equipped with an A* pathfinding algorithm, so that it can be used to check if and how the cable trays are connected. Assisting the user with the validation of the BIM model.

About Me

I have always had a general interest in learning how things work, ranging from very theoretical topics like mathematics and physics, to the workings of everyday objects in the world around us.
I believe this is part of the reason why I love software engineering, because there is always something new to learn. Every piece of code we write, has most likely never been written before, and requires some unique and creative thinking.
Debugging code is one of the most rewarding tasks in development for me. It is a very raw form of problem-solving. Where I tend to solve problems more “scientifically” than most developers, by validating that every piece of the code does exactly what I expect.

As software engineering tends to be very brain-intensive work. I like to relax my brain in my free time, and tire my body instead. For the past few years, my main passion has been rock climbing. But from a young age I also compete in a motorcycle trials events. I especially love being outdoors in nature during these activities. Which is the main reason why I am currently making the move to Canada, because the Netherlands is certainly not the best for either of these passions.