Historic projects
🏍️ Tron game [2024]
I had gone a bit back and forth regarding game development, but I thought I’d give it a shot again, with the hope of creating an AI to play a custom game after being inspired by this video of a guy coding snake from the bottom up in JavaScript. I tried to recreate the old arcade classic Tron
🧑‍🎓 Bachelor project [2023]
For my bachelor’s in Artificial Intelligence and Data I did a project in collaboration with the company I worked at, ChemoMetec:
Bayesian Optimization for Quality Improvement in Ultrasonic Welding
To keep it short, the main objective was to tune parameters of a physical machine; the ultra-sound welder, but treating them as if they were simply model parameters in a machine learning model. I developed a heuristic for capturing a kind of purity of the welding by taking images of the resulting product and doing calculating scores based on these.
I did Bayesian Optimization
using Gaussian processes
to choose parameters, and then trained an XGBoost
model to match features with certain purity scores. To add explainability to the model, I used SHAP
đź›’ Netto store ads notification [2020]
When I moved away from home, I always checked the Netto ads for good price drops, but this quickly felt like a daunting manual task. Browsing the ads required me to open the official Netto app, and then scroll through everything. I look for certain items, so everything else is just a distraction. I was thinking to myself that this must be automated.
I started by trying to use the official Salling API to extract the prices of goods in Netto, but it didn’t work the way I wanted. Instead, I ended up webscraping a site that hosted the store ads for all major convenience stores. Then, I tried using simple key-search to extract the items I was interested in, and then had it send an email to me with both the images and prices of the items in mind. This way I could check the mail when the ads were updated, and I only saw the items that made sense.
đźš” Police reports [2019]
The final project of my programming class in high school has no limitation - we could built whatever we wanted. This happened to be my first “data analysis” project, and inspired me to pursue a career in data science (and machine learning). Alongside my friend, we built a website hosted using Heroku, that let us host a small website for free and includes an SQL database. The site was programmed in Python using Django.
The main content of the website was a map of Nordsjælland that mapped the severity of crimes in different municipalities, using 1 year of scraped data from the Danish police’s daily reports. We basically did keyword search of different categories such as “violence”, “vehicle”, “stealing”, etc. We could map the incidences to different cities/municipalities indicated by a coordinate for the center, as well as marking that area by a circle based on population density/size. We used the BeautifulSoup4 (bs4) package for scraping and leaflet.js as our open-source library for displaying the interactive map on the website.
🔌 Color-ohms converter[2019]
During my 3rd year of high school, I had a class in electronics. Especially, we started working with analog electronics, which requires us to build “breadboards” consisting of different components, most notably the resistor, which (to over-simplify) regulates the voltage going through a system.
Well, in order to know the impedence of a resistor, you’d have to read the colored labels on it:
The main idea is that the order of the first colors indicate the significant digits, the following indicate the scale, and the later ones indicate tolerance and other less important attributes. As you can imagine, this is very tedious to do every time you want to find a certain resistor.
So that’s why I created a GUI that would help me convert colors to Impedence values, and vice versa. I used PyQt4
for the GUI, and had a class representation of each resistor, which is an arbitrary choice.
🤖 Discord bots [2018]
The communications platform Discord had become very famous, especially among gamers as myself. This could be attributed to the high quality interface, but maybe also the fact that you could build or import bots that could interact with the users. These could be music bots that played music in the voice channel, or game bots that let you play in the the general chat room. More generally, you can interact with a program using text commannds, which would allow people to actviate basically any function defineded in Pytyhon or JavaScript (or whichever languages are available). For me at least, it felt natural to try building on of my own, by following the official Discord developer documention.
The first bot was meant to host a skribbl.io game. It basically starts a lobby of this online party game by calling a command in the chat: start skribbl
or something similar. It would then output the invite link with game settings already in place.
The next bot was made as a quick hackathon-like challenge in about 30 minutes. Upon request in the chat (<THEME> <@user> <AMOUNT>
), it would go to a specific website and extract all relevant image links and send a ton of these as spam to another user in the discord server. Image links are rendered as images in discord, so this was a ton of fun to use to annoy each other.
🕹️ JS canvas game [2018]
For my first class in programming in high school, we had to create a simple JavaScript canvas game. The game was about moving a character left and right in order to avoid missiles raining down from above. The code was super messy, and I felt like the project had potential, so I ended up re-programming the game a year later, as I had become more familar how to code properly. I ended up adding a speed boost and other special buttons, as well as upgrading the sprites.
These extra upgrades taught me about control-mechanics and how seemingly simple things have to be accounted for; such as clicking left and right at the same time, square vs. circular bounding boxes etc.