Contact
Projects
IMT&S Photonic Lab
What is this?
IMT&S (Immersive Technologies and Storytelling) is a six-month period that takes place during the fourth year of the Saxion CMGT course. In collaboration with other students, you work on a related project, provided by a client in the professional field. These projects get distributed based on your skill set and personal preferences. I was assigned to the ‘Quantum Gaming’ project. The student I collaborated with during this project was Arvid van den Hoogen, another engineer.
The product we created simulates free space and integrated quantum photonic circuits with the help of dedicated optic components. Experimenting and prototyping with real life photonic circuits is a tedious process, which our application tries to simplify using a intuitive and realistic emulation interface.
The Quantum Gaming project was a very enjoyable and educational experience for me. I never could have imagined that I would be learning about quantum mechanics during my IMT&S semester, especially considering I was randomly assigned to this project. It was pretty intimidating at first, and it still is, but at least now I understand it well enough to create an application based on it. The application actually barely uses any quantum mechanics at all, it merely adopts its rules. Accurately emulating these rules is nevertheless a very difficult process, requiring creative programming solutions to complex quantum concepts. My programming skills improved significantly as a result. While unintentional, my graphical design skills got a lot better as well.
Space simulator tool
What is this?
During the third year of my education we had to conduct a minor about a complex subject. My chosen subject was space physics simulation. I had always wanted to create something big related to space, but failed to do so in the past. The final product incorporated the most important aspects of space physics, but has turned out to become a Unity tool, with custom rendering techniques to support the scale of the project.
The project is entirely made using the Unity game engine. Newtons laws of physics and universal gravitation are used to simulate a planet orbiting environment. Using those same principles, Saturn rings are also included, and was the biggest engineering challenge so far due to the high amount of calculations/rendering needed. Accurate simulation being my main priority, I couldn’t cut down and use fake ring orbits.
After some iterations and a lot of research and trial and error, I concluded that compute shaders were detrimental for good performance. Instead of rendering using models, I instead calculate positions on the GPU and project those positions onto a 2D image overlapped onto the camera. A custom occlusion culling method utilizing the Unity depth texture allows for a realistic visual experience. On my system, a simulation with 10 million particles can be run with a consistent 60 frames per second.
After implementing a planet position calculation algorithm I noticed that my combined features so far could not be defined as a finished product, which it had to be. That is why I encapsulated all the features into a Unity editor asset, and created a tool out of it. With an easy to use user interface, and access to most of the variable settings, creating your own solar and ring systems is extremely easy to do.
This project has taught me a lot about how to create solutions to unexpected, large scale problems. While most rendering techniques were already quite known to me, implementing it in a custom environment with an actual use case, was proven to be quite a challenge. In the end, this project allowed me to pass my minor, and even further increased my passion for space and its complexity.
Space web API + AR App
What is this?
For the Saxion CMGT personal portfolio course I set myself two learning goals: make a space based web api, and a space based AR app. I made the website using Angular, TypeScript and C# NET, and the AR application using Unity AR foundation.
Both applications work together very well, space data can be uploaded to the database in the website, which the AR app loads and uses for its augmented reality. The main focus was on the technology, not nessecarily the designs, but I still feel like it looks pretty consistent and intuitive.
I learned a lot from this assignment, and have gotten pretty consistent in developing web applications and applications for mobile devices. My Angular and ASP.NET skills greatly improved as a result.
Spacebound game
What is this?
For one of the group projects of my education we had to create a mobile game. Our group consisted of 6 people, and I was responsible for the engineering together with another student. After discussing and brainstorming together, we decided to make an infinite roguelike shooter game, with a space theme. We decided to use the Unity game engine since that was the one we were most familiar with.
We split up the main features into 2 parts, the procedural generation and the AI. The other student already had experience with procedural generation, and I really wanted to create the AI. Other features such as the gameplay mechanics were implemented in a collaborate fashion. The visuals were created by the artists of our group, and most design decisions by the designers.
The 2 weeks allowed for these kind of projects mostly teaches you about teamwork, planning and collaboration. While I also greatly improved my general programming knowledge, algorithm efficiency and AI decision trees.
Bouyancy simulator
What is this?
Personal portfolio is a subject where you as a student get to chose what kind of project you want to work on during a term, which is fit for your online presence. I decided to do one about ships and their respective physics, using the Unity game engine.
The scale of these subjects are quite small, so I soon figured out the I had to scale down my goals a bit. In the end, it became a buoyancy simulation supported by procedurally generated waves, using shaders. A big part of my time invested was into these shaders, since position calculations were determined by the current height of the waves relative to the ship its edges.
The physics itself are quite logical and straight to the point, but implementing it into an environment is where the challenge lied. After polishing and some visuals I was satisfied with the simulation.
Robotic gladiator
What is this?
The first project on the biggest scale I created during the education. Also the first one we could execute inside of the Unity game engine, before mostly using 2d graphics engines. The conditions were very broad, and allowed for quite some creative freedom. Inspired by fast paced combat games, I decided to make one myself, in a miniature gladiator style. I also did not want to rely on external assets, and created almost everything myself using primitive shapes.
The core part was player movement, which had to be fluent and easy to control, while also being satisfying to use. At this point we did not have much experience with physics yet, but after some research and tinkering I managed to have something working. The time that was left over was spend on AI, game design and environment creation.
While I did not necessary learn many new things, this is actually one of the projects I am most proud of. Its an actual complete experience, where I created most of the content myself and is quite enjoyable too.
Party pirates game
What is this?
This group project stood out due to the fact that we had to create an online multiplayer game. The term before we engineers were taught about networking, and were now tasked with implementing it into an actual product. I learned that even the simplest games become the biggest challenge if you decide to host it online for multiplayer purposes.
Even so, I was not even the one in charge for the networking itself. Since we both recognized that networking was going to be taking a big time investment, the other engineer became solely responsible for it. That did not mean I had it any easier however, since I still had to design most of my features around it.
The game was once again designed for mobile, so optimalisation was a big priority. That limitation actually costed us a lot of time, due to terrible performance and the engineering to try to fix it. My main contribution was the ship movement and combat. I am especially proud of the shooting mechanic which uses smooth transitions and engaging design. This was also the first time where I realized how important it is to make your code as readable and clean as possible, since we had to combine our code a lot.
Machine learning
What is this?
Another project I chose for the personal portfolio use case. Machine learning had always been a subject of interest for me, but I never took the chance to work with it. These assignments are outside the scope of complex machine learning, but even scratching the surface taught me a lot.
I kept the bar quite low, as it was hard to predict the time needed for this, and I did not want to get stuck without clear results. Also, python was a completely new programming language for me, which is the most common one used for machine learning. The subjects I decided to research were supervised machine learning and reinforced machine learning.
Only supervised machine learning was implemented using python, as reinforced learning works best in an interactive environment, which unity has an easy to use library wrapper for. Even the python one was encapsulated with external tools, which kept the math behind the scenes. The most important part is knowing how the use those tools, and why it works the way it does, including the logic behind it.
I technically created 2 products, a small variable predictor based on data, and a minigame where a fly learns how to collect apples without crashing.
OpenGL rendering
What is this?
During the second year of my education we were taught about 3D math and 3D rendering. Behind the scenes, OpenGL is one of the main API’s where those techniques get utilized for most applications. We used the C++ programming language, which was also new to most of us, so learning that was our first priority. We did so by creating a relatively small 2d fighting game.
Learning OpenGL itself was not the most challenging part, the thing I learned most was what shaders are, and how to communicate with them. Most of the syntax of OpenGL was already given, or explained in a clear manner. The math and logic we had to do ourself, which was quite challenging. Each week we build upon the knowledge we already had, introducing new techniques along the way, some being lighting, shadows, texture mapping and color manipulation.
The final product is a combination of each of these smaller assignments.
Scrap warriors game
What is this?
In this final group project, the product was to be presented to an actually company and played by many other students. The game had to be playable by multiple people at the same time, using split screen in a competitive environment. Just like the previous projects, teamwork and flexibility was detrimental here. We decided to create a battle arena game, inspired by the tv program “battle bots”. I was in charge of the weapon system, and the creative challenges that come with them. Looking back on it, I did not really learn anything new specifically. Mostly code readability, adaptability and software architecture.
MBO projects
What is this?
The education prior to my current one, was also filled with many projects. However, due to its adequate quality and level, there are not many I am extremely proud to showcase looking back. Many were created using Unity as well, and its where I got my initial programing experience from. But most of them are simply completely overshadowed by other ones, or the techniques used completely replaced. Still, part of journey on how I got here in the first place.
Web development
What is this?
I got a bit of web development knowledge during the past few years, from small web related projects. Such as the one you are looking at right now, my most ambitious one yet. While most were incomplete prototypes, I gained a good grasp on JavaScript, CSS, HTML and even PHP.
About
Who am I?
Besides being a noticeably gigantic space enthusiast (nerd), my passion lies within expressing my endless amount of creativity. Since a very young age throughout my 22 years of existence, I have achieved success by applying it to various methods, including football, piano, woodworking, and many more. Currently, as a CMGT (Creative Media and Game Technologies) student, software development is my medium of choice. Which I am enjoying to a great extent.
During the 3 years of my education, I have created many awesome projects, mainly by using the Unity game engine. We were also taught several programming and development techniques, in multiple languages besides C#. Some examples include 3D math, software architecture and networking. This contrast has resulted in a reasonable grasp on flexibility and adaptability.
Home
My name is Arjen
An aspiring software developer
Embark on a journey through my universe
To start, click on the rocket at the top