2024
Vim, i3wm, Linux
One day, while watching Youtube, I discovered how other people use their environments to code. And some of them code faster
than I can understand what is happening on the screen. And I noticed that a lot of them were using, Linux, i3wm and Vim.
I couldn't resist to try it out. At first I tried out Vim. It was super, super hard. I was almost in denial, that only
"oldschool" people use it and it is just a relic of the past, but I kept using it and oh man I was wrong. Once you get used to it,
using Vim get hard wired into your brain. And it is so confortable to use, the shortcuts are amazing. Now I feel that this is the way
to code. But Vim being very keyboard centric, I also wanted to use my desktop using only the keyboard.
This is were i3wm comes in. i3wm is a window manager that lets you quickly switch between desktops and windows. With I i3wm, I
don't need to drag my mouse, in order to switch to Slack, then back to my IDE, then to Postman, then to Slack and etc. etc. Now I've set it up
that I can move between application with a click of a keyboard button and it has increased my productivity greately.
And also with i3wm comes great modification to your environment. You can setup everything, to the last detail and this is only
possible with Linux. I went even further and installed a distro called NixOS. With this distro you can basically configure your
whole operating system from a config. I went very deep with this transition and I'm quite happy I did that.

Nix OS
Nix OS config
2024
Musical score note search and database
I was invited to work on a government funded project. It required me to develop a web application
for storing musical scores, but also analysis of musical scores. In general it should have been quite a simple project,
since the requirement was to just add collect musical scores into a database and just show them in a website. But the
musical search part was quite difficult.
Musicologists needed a tool for analysing musical scores and what they do when they analyse, is they search for patters
in notes. Therefore I had to develop a database search based on notes. You select some notes and it compares those notes
within all other scores. Also one of the requirements was showing editorial differences, which required to do a comparison between
different musical score xml files. While in theory this sounds simple, the differences between files can be dramatic, so I needed to find
a way to nicely do that.
In this project there were only two developers: me and my sister. So we had to do everything from scratch, just like a complete startup.
2023
Deepfake Detection ML model
For my Master's degree thesis, I have analysed different Deepfake detection models and tried to improve them. In my research
I have conducted an experiment and analysed, how different ML hyper parameters can affect Deepfake detection. I have changed
dropout rate, optimizers, learning rates, block sizes. And I also proposed an improved model, for detecting deepfakes, which
in some particular situations yielded a better result by about 1.5%. This may not seems like much, but ML models are very hard to improve.
Even though it is just a percentage, in reality it is quite a big improvement.
While this was my thesis, I have also released this research in an international journal.

Deepfake detection
Research paper
2023
Survival Game
This was a project for a university course. Me and my friend already knew about Unity, so we chose to try a survival RPG game.
Game development is pretty hard. You need to know a lot to get started. The game itself isn't that great, but I think the features
it contains helped me understand how powerful object oriented programming truly is. The game had inventory system, weapons, pickups,
different animation for different weapons, enemy patterns, pickups, crafting and etc.
What I find cool about this, is that for example, each weapon is an abstraction. Weapon is just a skeleton for specific weapons to be created.
Weapon contains, animation, damage, if it is a ranged weapon, it has a projectile. And how the game is made like so: if I wanted to create a new weapon,
I would just need to fill in the values in the editor and it would hook up the necessary parts of the player. Or the inventory. Each slot in the inventory has an abstraction layer.
When clicked upon, each specific item, executes a specific function, then each of them contain an icon and etc. And also these are programmed so, that I wouldn't
need to worry how to code every single new entry, everything was handled by parent classes.
Oh and the game has intentionally pixelated graphics. Since we collected assets from all over the internet, it looked weird as
each asset had a different style. So we just added a pixelated filter to mask everything :D
Survival Game
Survival game
2022-07
WebAssembly Video Editor
This is one of my better projects that I finished. The problem with current video editors is that you either have to download big (few gigabytes) paid software or use an online service, where you upload your videos and then download the final cut video (and also have some limiting factors, because these services have to make money somehow). It was either of those two variants. And if I wanted to just crop and combine a few videos, none of these options were particularly good. For the first option, video editors, they are complex software which have a big suite of tools that are not really needed for most people. The second option, the web video editors, require you to upload videos, which in my case is sometimes a problem if you don't have a good internet connection (also they come with other limitation like only letting you create a 5 min video until you have to pay). But I found out that it is now possible to use FFMPEG through Web Assembly, which allows for almost native performace through the browser. This lets me create simple videos without having to download large software or have my videos uploaded somewhere.
Also works nicely as a simple video format converter!
The project itself works pretty ok (most of the videos in this page are made with this tool), quite good performance for a video editing software in the browser. If I ever make a next iteration of this project, I would most likely try to make it with React Native, rather than Vue, because that would allow me to make it into a mobile app too.
WASM-Vedit
Video Editor
2022-02
Interactive Trianglify
I created this project because I wanted a nice background for this page. I really liked trianglify.io, but it was only created for static, non interactive images. I decided to improve on that, created lots of configurable parameters and made that same concept interactive. It looks pretty cool :)
Interactive Trianglify
Interactive Trianglify
2021-07
Keyboard Havoc
This game was made in one week for "Brackeys Game Jam 2021.2". The theme was "let there be chaos". It is quite difficult to make something chaotic and also playable at the same time, but I think me and my friends were quite successful, because we ended up in the 21st plase based on "Theme". Main goal of the game is to score as many points as possible, but every few seconds the controls are swapped, which causes chaos to the player, making it difficult to proceed further. The other challenge was learning and making the game In Godot Game Engine. None of us used that engine before, so we had to learn and make the game in one week.
Keyboard Havoc
Game DEMO
2021-??
Spiritual link
This game was made in one week for "GMTK Game Jam 2021". The theme was "joined together". This was our first game jam and there were only 2 days to make the game. The game was made with Unity, mostly because I had the most experience with it. The main idea of the game is that there are 2 characters the player controls, but the player can only control one of them every few seconds. To complete the level, the player needs to get both characters to the end. The 2 days that were given went quite fast and the game needs quite some polish, but it's' nice that we had made something from start to finish in such a short time.
Spiritual link
Game DEMO
2021-05
Procedural scene generation
One of the more difficult project I made. I made this project for my bachelor's degree final work. The main goal was to create a program/game that has procedurally generated levels. At first the problem felt very complex, because I had no idea where to even begin, but after some research I finally set myself in the right direction. You start by making somewhat predefined assets/rooms that have points inside them, that define connections. The program randomly chooses a room and connects it by those points. To make the project more dynamic, I updated the program to also connect the rooms by using A* search algorithm, which allows the scene to have more different paths. Technology: Unity
Procedural scene generation
Game DEMO
2021-??
Pixi heatmap
I had a challenge at work to make a heatmap display on an pixi.js canvas. There already are some libraries that make heatmaps, but the problem was that none of them work with pixi (or the enviroment I was working with). So that was the challenge, to make a heatmap from scratch. There aren't many resources on how to do it, but I managed to do it. Upon entering a value, a black circle is placed, that fades away at its edges. Circles that are close to each other, their alpha values blend together, becoming darker and darker. After the circles are placed, using a shader, based on the alpha values a pixel has, a color is assigned from a color spectrum.
2020-??
Simple Unity C# games
I recently completed an online course and learned how to use Unity. The games I made are simple and unfinished, but they are a great start for me.
Block Hopper - Most difficult challenge for me was creating pixel art rather than programming. Learning art is a completely different experience for me, but with a lot of time I finally grasped the basics of how to make something decent (at least for me).
Block Hopper
Game DEMO
Labyrinth crawler - was a group project for my university, I was responsible of programming the game. Main goal of the game is to find a way out of the labyrinth using various tool and fighting simple enemies. This was my first real project after completing the online course.
Labirynth Crawler
Game git repository
Game DEMO
Flower Plant
This is a project I have been working for quite a while. It is a automated gardening system made with Arduino. Not only you can water the plants, but also collect data about the plant, then monitor and maintain plants wirelessly!
Features:
- Check moisture of a plant
- Water plants using a pump
- Check if the water tank is empty
- Track how much water was poured
- Send sensor data to server (moisture, amounts of water, water tank status)
- Automatically connect to wifi (without embedding wifi name and password into code)
- Monitor and maintain the system wirelessly:
- Initiate watering of all plants
- Change the interval on how often the moisture should be checked
- Immediately check current plant moisture status
- Plant analysis - analyse how ofter the plant was watered during which period and etc. (in progress)
- Supports up to 8 plants! (currently, but it is possible to have even more!)
A lot has been done in this project, but there is still a lot more to be done: cleaner code, better appearance (phisycal and digital), better analysis and other. My final goal is to make this system look like a full product.
2021-07
Assignment syncer
not finished
Long story short, downloading students assignments from "Moodle" is very time consuming. You have to download assingnments one by one, unzip them and open them in a program of your choice (code editor). That is the problem this program solves. It syncs all assignments, unzips them upon downloading and lets you open it with a program of your choice from the same place. There are a lot of improvements to make (especially UI), but it gets the problem solved. Technologies: React, Typescript, Electron, Next


Simple websites
After learning how to make websites and create web designs I was able to make a little bit of money by making few simple static websites.
Inovtechna
Link to website
Domimeda
Link to website
Java To Do App
One of my bigger projects in university was a to do list made in java using various technologies like:
- Hibernate
- Spring MVC
- Android
This is a more complex to do list that has users, project, tasks and companies. Projects can have users and tasks, companies can have users and projects. It is more like a group project management system, where every user in the project (or company) can see tasks, finish them, edit, create etc. This project has a dektop application, Web server and an Android application.
Ascii Art Land
Ascii art land - is a similar project that I build during my online course. It is a dynamic website, that lets user login, create new posts, edit and delete them (CRUD). My future goal for this project is to add a fully working online ascii art editor. Something similar to "Paint", but for text art.
Ascii art land
Link to website (DEMO)
2018-??
C++ Console Tower Defence Game
This was a university project, created together with my groupmate. As I look back at this project, I find it quite amazing. We created our own graphics library, we created a mouse interactive editor inside a console window. You could create, save and load your created maps, save/load games. Also the game itself. There are towers, enemies, you spawn and delete towers. Considering how little we knew about programming back then, it turned out to be a better project then some of my later projects. The most amazing thing is that it works in the console and we did everything from scratch (no framework or anything, everything from the ground up).
Tower Defence
Github