As I'm writing this I'm currently studying an AP Graduate in Computer Science at Dania Academy in Denmark. As part of my studies I got the opportunity to study my 4th semester at the Centre of Digital Media (CDM) in Vancouver Canada. Each year Dania sends 3-5 students to CDM to take part in their Master of Digital Media Capstone program. In this blog post, I want to give an insight into what I did and some of the most important things I learned.

Moving to a new country

Centre for Digital Media building

Centre for Digital Media building. The school is situated on the first floor and dorms above.

Each year the faculty at Dania picks out select students from the cohort based on merit, to have the opportunity for the exchange program. Because of some technicalities, I got the offer later than usual. As a consequence, I only had 4 days to decide if I wanted to go. This wasn't an easy decision, as I was getting speed on developing my own Game Engine. I was also quoted on say that "I wouldn't go even If I was selected", because I was "too busy" with my own projects. However, immediately as it became a reality, deep down I knew I had to go. In hindsight this was the right choice.

So after the 4-day deadline, I had to search for scholarships, a place to live in Vancouver and plane tickets all within 1-2 months. That was nerve-racking, and was the start of a stressful period which carried over at least a month into the trip. This definitely had an effect on my ability to adjust to the new environment. Generally, I have a hard time with the 'unknown', and it's much more comfortable having everything planned out. However, I find that the most growth happens when you're a little uncomfortable. So one thing that I learned is that in situations like this, emotional self-awareness and the use of stress management techniques can help. I use meditation in conjunction with exposure to things outside of my comfort zone to expand my knowledge and abilities. I've noticed that that helped keep stress levels down.

I luckily managed to figure it all out. Despite the nightmare, which is the Vancouver housing market, I somehow found a place to live on Craigslist. I found a house with 4 individual rooms so all of us sent by Dania could stay together. This was a great advantage. With all the stress you could unwind a little bit by talking in your native language again. Having a support network was an advantage to figuring everyday things out.

What the project involved - Departure Lounge & Team PI-lab

The industry projects are centred around problem statements delivered in a brief by a company or organization. Our group got paired up with Departure lounge (DL). DL is a metaverse company, with its own Volumetric Capture stage (Volcap). It's using a 106 camera IO Industries setup. With this setup, they are able to capture a full human body and convert it into a 3d model for use in movies and games.

This is an amazing setup, which is worth millions, and it is located right next to CDM. The fact that we had the opportunity to use their stage in our project was incredible. Our project involved creating a tour guide app by using a Volumetrically captured guide. Diana acted as the tour guide (the one in the front middle on the picture) and did an amazing job!

Departure Lounge Volumetric capture Studio.

The PI-Lab team and Departure Lounge at the volumetric capture stage.

We then took that footage and blended the clips together with a software called Arcturus. Afterwards we imported this into Unity and created an interactive application. As a result of the blending, you could now seamlessly interact with Diana through a dialogue system based on Yarn Spinner which I created.

As a final deliverable, we created a trailer for the product:

Youtube Video Trailer for the Granville Island Tour guide App

Development

Honestly, the entire development process was full of challenges. I constantly ran into roadblocks and problems. Mainly with getting the plugins and building to work. There were a bunch of issues with gradle, plugin conflicts, signing etc.

During the project, we pivoted from a Geolocation based application to focusing on blending volumetrically captured clips. With that change, I also changed the underlying AR library. Initially, we used Niantic Lightship but later changed to Unity ARFoundation. The same happened with the Plugin we used to render Volcap models. I first started with Microsoft's Mixed Reality Capture Studios Unity plugin (MRCS), then changed to Arcturus HoloSuite Player.

My work setup with two laptops, a Mac and a windows pc

My work setup with two laptops, a Mac and a windows pc. With an Iphone connected to the Mac.

Therefore I ended up with experience in a whole range of plugins. I also got fairly deep into some of them since we needed some customization. Doing this I found a whole bunch of badly written code without any documentation. This is often a big hassle for developers.

This is one of the reasons I like to make everything from scratch and a big reason why I’m making my game engine. But it’s very time-consuming and unreasonable to do for a semester project. Therefore I was constantly forced to reevaluate my process and the necessity of a plugin and the alignment with our goals. The way to overcome this is definitely by having a clear top-down goal in mind, so you don’t lose focus in the trenches.

Additionally, this was the first time working with a Macbook/MacOS and an Iphone/IOS. The build process was quite slow. This was a huge hinderance for the iteration times, as you need a build to be able to test if the camera and AR features are working.

Studying Abroad at The Centre for Digital Media

The onboarding was very overwhelming for me. Luckily both the students and the faculty are very friendly and helpful. I distinctly remember waking up the day after we arrived. After only a couple hours of sleep and being very jetlagged, having to navigate a completely new urban landscape. As I arrived at the CDM I got welcomed by the amazing Susannah Skerl. Su showed me around and offered a nice cup of tea and it was off to the races.

I managed to settle in, and I feel like I became good friends with the entire team quickly. We visited Granville island a couple of times, which the tour guide was centred around. We also got together across teams to go to dinner, potlucks, city outings etc. It was great to meet such amazing people and experience a new city.

Potluck

Potluck at Centre of Digital Media. We brought traditional Danish meatballs and potatoes.

This was the best part of being a visiting student at CDM. CDM is very multicultural and overall is characterized by west coast culture. You can learn so much from simply being around these thoughtful and talented individuals. Try to have an open mind and take in as much new ‘information’ as possible. Take the opportunities to socialize, work and explore that comes your way. One of the great things that you can gain from traveling is perspective and CDM is full of it.

Industry insight

During the semester we also had a bunch of company visits and industry related extracurricular events:

Among others, we visited Electronic Arts Vancouver in Burnaby. The studio mainly produces all EA Sports titles like FIFA, NHL and UFC. We got a tour of the office, and it was huge! There were incredible amenities like indoor sports facilities and a huge cafeteria. I can definitely see reasons to be attracted to perks like these! Additionally we got an opportunity to ask questions to a panel of seniors within the company.

Panel at EA including: James Banting, Nicole Senger, Derek Weeres, Thomas Caleffi

Panel at EA including: James Banting, Nicole Senger, Derek Weeres, Thomas Caleffi

An Amazing talk by Dr. Patrick Parra Pennefather who gave great insight into speaker engagement and retention.

Noah and Esteban from Unity visited us at CDM and we briefly had introductions and a talk about Unity.

We visited Willowtree and got to ask questions regarding App development and client work.

At the time I was also working on a resume which Su, Rachel Ralph and Esteban offered to help me with. I went through a bunch of iterations. I mostly removed unnecessary clutter and ended up polishing what was left. In the end, I landed on something I'm very happy with.

These interactions broadened my horizons of what's out there within my industry (software & games). And were great opportunities to network and meet new people!

What I learned - More than just programming

As I'm a very technically oriented person, my initial learning goals reflected that. One of them was: “Implement necessary AR functionality to develop a functional prototype in Unity. The prototype has to use at least one AR feature”. But it turned out that areas where I didn’t have goals, were where I grew the most. I didn’t have enough emphasis on the human aspect of development and learning. I think this is because I worked alone on most of my development journey. This however is changing.

Working in a Team

One of the things I quickly realized is that the relationships you make are really important. Both in terms of professional ones during networking events, also friendships and acquaintances.

PI-Lab Team

The PI-lab Team (From left to right): Rachel Ralph (supervisor), Katarzyna (Kate) Kolasa, Soren Saket (me!), Jacky Ip, Aaryaman (Rono) Basu and Saleema Rani Abdul Lateef

Working more and more in teams I realize the immense potential benefits. Having a team of people with the same goals and passions can lead to a multiplying effect. Where everyone gains more motivation from seeing each other's work. That can create a growth environment which is beneficial for the individual, the team and the project.

It's however not all sunshine and rainbows when working in a team. There are a lot of factors that come into play. One example is different individuals have different learning goals. It's not always that the project you're given fits your personal goals. Therefore I would advise you to do work that fits your skill set and that you can put in your CV. Many times the projects are broad and require a wide set of skills. Try to push a feature into the product that matches your skills and interests. By doing this you increase your internal motivation to deliver the feature, and the product becomes better as a consequence.

And there where times, the team was directionless, and it was hard to keep it structured with different schedules etc. One thing that we could have done better is sticking more rigidly to SCRUM. A more traditional approach with a physical scrum board and a Monday-Friday sprint could benefit structure and work ethic. So one of the most important things I learnt, is that resolve and leadership are extremely important. (and in high demand!) One example where I did well was at the shoot at the Volcap stage. We were discussing back and forth about how we should go about doing a last-minute recording. I felt the conversation got convoluted, and as a result, I raised my voice and took an “executive decision”. Previously I would have felt like this was rude or unprofessional. However it turned out that the team really appreciated it, and it was one of the universally positive things mentioned at the "360" retrospective.

Lower expectations

Hand tracking in unity

Hand tracking in Unity.

One of the goals that I set during the projects was “Be a continued driving force in developing the prototype. I would like to add one “nice to have” feature like handtracking or voice recognition.”. That however didn't come to fruition. Adding an advanced feature like that was definitely more than I could handle. It was a optimistic goal that was only possible if everything went smoothly. Some unforeseen emotional turmoil during the project kinda put me out of commission for some time.

If you plan on going aboard for internships or similar, especially if it's your first time, expect the traveling and life to take up more space than usual! You might not be able to work at the efficiency you previously did. This is in a totally good way! Since life is about more than just work you do!

Personal Growth

I learnt so many new things about myself. Many things only came to light when interacting with other people. I learnt that despite having some difficulties socializing, I am a very social person. I really like being around other people and collaborating on stuff.

I also learnt that I’m very emotional, despite at times not feeling or showing them. These emotions affect my well-being and work performance. So going forward, a big task for me will be to have a deeper emotional understanding of myself.

Holding a Unity workshop

During the semester multiple peers asked me to teach them Unity and programming. Therefore I decided to run a small workshop during the vacation. The workshop was mainly focused on teaching the basics of Unity and visual programming. I had done some Unity teaching previously at high school (gymnasium). That was many years ago and I wanted to take on the challenge. I did 4 workshop sessions ~1.5 hours each. It was a mild success. About 2-5 students showed up each session. This was to be expected since it technically was a vacation and many people travelled abroad. Luckily it seemed like the people who attended did get a lot out of it.

I regained a lot of respect for tutors and teachers. A lot more work goes into teaching than it might seem from the outside. To be an effective teacher your levels of knowledge have to be way deeper than the level you teach. Preparing good teaching material also takes a lot of time.

I did record the sessions if you're interested. However I do not recommend watching the videos, since there exist much better resources for learning out there. The main advantage of a workshop is a tutored learning experience, that you only get from being there live. (also day 2 has no audio)

Conclusion

This post didn't even scratch the surface of what it was like studying aboard. I would recommend anyone who gets the opportunity to go explore the world! There defiantly were some negatives, like the stress and having to pause development on my engine. However, for me, travelling was the right choice and an invaluable experience. I will cherish the many moments, lessons and friendships I made at CDM for life.