Gdańsk University of Technology • Faculty of Electronics, Telecommunications and Informatics
~ building immersive apps & games from Seoul to California
Patron VT, a truck simulator for driving license training.
I joined Mad Chicken Studio, a Polish playable ads company. Developing on Mads Crafter, the proprietary engine and customisation platform, we have delivered for studios including Electronic Arts, Warner Bros., and Kabam Games. With scores of projects completed, some of them served as quick reskin templates or build-ups for additional features.
The tempo demands compromises - a great way of enforcing creative and/or (politely put) silly solutions. The combination of both is the most efficient. It doesn’t mean the final product is bad. It is just a perfectly balanced price-time-quality triangle.
There was also room for learning new tools and mastering the craft. The number of projects strengthened my game development flexibility. I have become better with PixiJS and complex tweens. And honestly, I was not that much invested in the Node.js ecosystem before.
Similar to augmented reality effects, asset optimisation is a crucial part of the delivery due to the microscopic build size constraints. Since I transitioned to Linux, simple yet powerful console tools are my allies. There are two main interconnected reasons: repetition and quantity. Pngquant, oxipng and guetzli for sprites and textures, and FFmpeg for audio. I took it a step further and made an automated script for that job.
I believed that I was kind of a Windows Power User after years of sticking to the platform. Well, an obvious plot twist for this story… it turned out I was not. I just couldn’t tinker with the system enough to make it a fast, lightweight and productive workspace. Also, it didn’t play nicely with my limited set of daily games.
My friend experimented with some Linux distros to play Counter-Strike 2. With all due respect to him, he is not an IT guy. Nevertheless, I got the point - if he can run it, I can too! However, I took a harder path by installing Arch with an optimal-minimal package set. A few attempts later, I got it working without major flaws - eureka! And it runs to this day, but someday I will switch to Fedora, I guess.
The gaming partition test succeeded, but I still wanted to practise more. I decided to go all-in and bet on Debian for my work-related activities, as it is “stable”. Similarly to Arch, the goal was to achieve a minimalistic setup. I noted every step required, and that turned into my first hardcoded auto-install script with debootstrap.
Sequoia - the last macOS version supported on my Intel MacBook Pro. I really like my 13-inch, and I wished I could give it another life. And that’s exactly what I did! I repasted it and replaced the battery myself. I remade my auto-install script to be modular, and experimented a lot. The hell of hundreds of reinstalls turned into the TrashNOS project. For six months, almost every day in my free time, I secretly cooked the second version. The result: a fully personalised and preconfigured Linux with a debloated set of tools on both laptops in under an hour!
Huge thanks to the awesome T2 Linux and KaiT2en communities - I learnt even more about system management and open source. Unironically, the memed Year of the Linux Desktop became a reality for me. I finally regained control over my shed, and that’s the best feeling in my whole virtual life.

PawnBox is based on the Entity-Component pattern, written in TypeScript, and mainly designed for PixiJS. Inevitably, it will become a game engine, as I plan to add a chunk of my reusable base scripts and collision detection/physics. Yet I want to keep PawnBox as simple as possible, allowing users to add what they really need, create their own shareable plug-in components, and streamline development. I aim to build a healthy developer community, and create examples and demo games for them. At its current stage, deeper PixiJS integration is the main focus. Let’s see what the future brings!
I implemented new functionality for the instructor panel. The vehicle physics can be adjusted in real time, including causing system and truck mechanic malfunctions. I was responsible for creating and modifying the training scenarios. The outdated traffic system was upgraded with new vehicle types and their own behaviours. I also fixed the plugin code for density management and traffic lights. Additionally, I added support for new input devices, such as a manual gearbox and retarder.

Both trips to New York and California were exciting and ended up with a partnership with Meta and joining the secret Virtual Objects Beta for Meta Spark.

With the slow decline of Social AR effects and 8thWall being
a too pricey option, the company decided to research
the possibilities of WebAR in Unity. As a result of the first
attempts, I created internal packages to organize and
standardize the building process and make development more
straightforward. They reduced blind copy-pasting to a minimum,
fixed bugs inherited from project to project, and enforced better
code reuse. The modules included: browser and camera
permissions, file saver, debugger, UI, video recorder, and scripting define symbols management.
It is based on the Meta’s Presence Platform and uses the built-in features including Passthrough, Scene and Wit.ai voice recognition. It has fine-tuned interactions, instructions, flame and foam particles. My other tasks were fire behaviour systems for spawning in a real environment, condition and spread.

There will also be a place for education in Manhole Avenue, thanks to the app that uses AR (augmented reality) technology. At the beginning of the walk, users will be able to download a free application that will make Ołowianka reveal… a virtual toilet! It is a part of an interactive educational game in which the task will be to correctly indicate what can and must not be thrown into the sewerage. Users will also be able to go back to the times when the first modern sewage networks were built and see the virtual, underground routes. The application will also serve as a guide and will tell what to do to discover the next attractions during the Manhole Avenue walk.
My winning project - Prism is an Ultimate Endless Dancer Game. The player catches incoming prisms by matching the corresponding color rings attached to the player’s body. The goal is to dance out the perfect combos. The best score is saved between sessions.
I heavily abused listening to funk while creating this game. The idea is a mix of Beat Saber, DDR and Flappy Bird. The fluorescent silhouette came from disco vibes. The floating neon prisms make the game more cyber stylish.
Two months later, minutes before Facebook Connect 2021, I officially became one of the first certified Spark AR professionals!

In The Fairy Tale, we open heads and pour knowledge into them, and recently... we are augmenting the reality! A completely brand new way of exploring The Fairy Tale using AR technology. Sounds complicated? It's nothing hard! We invite you to explore with multimedia tablets with which you will discover a new face of the exhibition!
Puggy is a virtual pet. As a dog, it likes playing fetch. The AR pug is allergy-friendly and free of genetic problems. Adopt it today!
In our small team, I was responsible for programming, design, and text creation. The virtual pug follows the owner smoothly and is willing to play fetch. We adjusted the accelerations, speeds, and timings to make the augmented reality effect a truly immersive experience. Puggy was created using Spark AR.
Pugs are the breed with genetic disorders. Our project eternalizes the adorable behaviour of our smaller friends while no real dog is hurt. In the future, virtual dogs will help people learn how to interact with or take care of real pets. An AR dog is not only a safe and allergy-free substitute for a real dog, but there are also no real consequences for being bored with your digital adoptee.
The site is entirely based on Wordpress and uses the iconic Elementor plugin. In addition, I linked the client's Google Workspace account with the domain so that notifications and forms are sent by the company's Gmail. I also set up SSL to make the website run on a secure HTTPS protocol.
My primary responsibility was to implement in-game Entity Component System mechanics, and animations for the puzzle board elements. I played a significant role in reworking the UI, optimised the code and project assets, dealt with the cross-platform development, and handled complex refactoring. I learned about the essential systems and plugins for professional mobile games. As side tasks, I introduced a new teammate to the project, helped to implement LiveOps services and new events, tested the game on a daily basis.
I worked in a highly organized and multicultural company, Playsoft. My development team was the largest and we frequently cooperated remotely with our foreign partners. The project was developed in close cooperation with the publisher, Jam City, one of the leading American mobile game studios. I appreciate and admire the design choices made and project goals. I’m proud that we accomplished the goal of creating a successful game which ended up commercially profitable.
I worked in a small team of 3-4 members and we shared tasks such as the integration of the Oculus Gear VR API, massive bug fixing, several gameplay adjustments, and stripping old VR engine code. The game has been enhanced with new enemy types, weapon upgrades, a shop, and leader boards. I learned a lot about mobile and VR games optimisation, as well as how the Oculus Store publishing process works.
I recommend watching the trailer! ;) The game is finally stable and bug-free. It has a positive score and reviews which are definitely deserved!
Lewis Shooting Range is an immersive exhibition in Gdynia Naval Museum.
Lastly, as an additional attraction, we have a multimedia war theatre/shooting range, based on real Allied action in the Mediterranean Sea in the autumn of 1942. Here you can take on the role of a seaman defending a ship from naval mines and enemy air force. You destroy targets using a perfect replica of the Lewis machine gun M1914 on board the ORP Błyskawica.
I developed the system which detects a laser point position on the curved projector screen. Together with my colleague, we installed the game in the museum and made the final adjustments. With proper calibration, the Lewis shoots virtual bullets with precision down to the millimetre.
The project was my first attempt to create a cross-platform augmented reality app. It used fresh and (at the time) unstable AR technologies. I was responsible for the publishing process on the Google Play and App Store. Also the similar app was created for TMA Automation, which presents their IML uniLINE labeling robot.
For this small example project, I added virtual reality support, scripted the tasks, and implemented a simple UI system.