About
Hi! I'm Brutenis, a computer scientist who loves various visual applications of computer science, such as games, visualizations, rendering, simulations, and so on.
I studied computer science at the University of Rostock, where I also did my bachelor's thesis on bronchus classification and my master's thesis on spine segmentation.
I'm also quite competitive, having participated in:
- Over a hundred competitive programming competitions, most on codeforces. In recent years I have started organizing my own competitive programming competitions and have joined the Germany-wide club CPUlm. Together, we have organized multiple Germany-wide competitions, as well as the NWERC 2025, which had over 600 participants from 12 countries.
- Over a dozen multi-day game jams, some of the best games can be seen on the games page
- A couple of CTF (capture the flag) security challenges, the telnet challenges on CCC as well as the treasure hunt on FOSDEM, see here for my write ups
- A couple of multi-day App Days and Hackathons, with the most notable being the MV Healthcare Hackathon where we submitted Medico-MV for which we have won a prize of 700€ for best "Implementation and Feasibility"
- Six years of advent of code, in five different programming languages. On two occasions reaching the global leaderboard (top 100)
- Multiple machine-learning competitions on kaggle, including coorganization of the data science club at the University of Rostock
- Over a hundred olympiads in computer science, math, english, geography, physics and others (during school). The best result being 8th place in the national olympiad in informatics in Lithuania
This website
This site is built with Astro, styled with Tailwind CSS, and uses vanilla TypeScript for all interactivity. The yarn ball following your cursor is rendered on a canvas using Verlet rope physics. If you enable attackers, monsters will start flying at you and you can defend them with the yarn ball. Can you reach a high score?
The rope is a chain of points connected by segments. Each frame, a constraint solver tries to adjust every segment back to a target length — but each correction only moves points halfway, and fixing one segment can undo corrections on its neighbors. This is what gives the rope its stretchy, organic feel. The diagram below shows a simplified version with 5 points; the real rope has 20 points, applies gravity, and each point carries momentum from its previous position — so the yarn ball swings and bounces naturally.
One constraint-solving pass: each correction only moves points partway, and fixing one segment can undo its neighbors
The source code is available on GitHub.