Tafl-games are ancient Nordic board games. They are similar to chess, but have many major differences. Because of the big area that it was played in, we have many different variants of the game. I used JavaScript to create a website where you can pick one of them and play according to its rules. There is also a bunch of information about the history and rules of each variant and the whole tafl-games family. You can play with your friend on the same device or you can try to play against a computer, but the minimax algorithm I implemented is really slow when you play on a bigger board or when the situation is more complicated. Hopefully I will have more time in the future to upgrade it.
Click here if you want to play, but it's in Polish only.
In Skill and Chill I worked in a team responsible for “Business Zone”. It is a platform created for automation and optimization of business processes for entrepreneurs. It contains modules related to management, budget planning, sourcing, analyzing suppliers, order accepting and much more.
I was mainly focused on the Procurement module. It is responsible for the requisition and ordering processes. Everything is based on an Outsystems platform. I was making front-end using it, as well as some CSS and JS. For server actions I was also using outsystems and some SQL queries. There are a lot of things I learned, such as database architectures or development processes, but the most important is probably good programming habits. Most of my previous projects were just for me, and now I can really understand how to work with a team on a really big project.
Robocode is an online programming school for kids that I worked in. I was teaching basics of programming in Scratch for younger kids and C++ for older ones, as well as basics of electronics, physics and Arduino in "Robotic course". During "Game dev course" we were working in Construct with younger kids and in Unity with older ones. "Software dev course" was mainly about basic algorithms in python. I also conducted a "web dev course" which was about basics of HTML, CSS and for older kids JS.
After a few months of working I became "head teacher" which means that I was responsible for our team of teachers (5-8 people). My duties were making sure we have the best performance during lessons as well as quality of educational materials, contacting with managers and sometimes training our teachers.
In 2021, along with my girlfriend we decided to make a game for our friends as a Christmas gift. Of course we started a little bit too late, so it has a kind of "game jam vibe". It's mainly about collecting presents, which give you more time... to collect more presents. At the same time you have to avoid objects that slow you down and collect things that can speed you up.
This website is the 4th iteration, even though the 2nd and 3rd were never published under jakubkivi.github.io. First version of my personal website was mainly based on templates, that is why after a year I decided to do the 2nd version by myself. Later, after using Jekyll in one of my other projects I decided to start over, using this framework. I didn't finish it because of my trip to the US. With a little bit of anger because I still couldn't finish any other version of this website I decided to make it simple and professional and... Start over. This time I used only HTML, SCSS and JS. I have also used bootstrap for a few things "to make it faster" but I have to admit that it made more problems than positives and I regret this decision. Maybe I should make a 5th version then?
Previous versions of this website:
1st Version
2nd and 3rd Version
CałkaBot 1.0 is the first robot of CałkaBot series. I made it with my friend Deli in highschool for mini sumo competition in Bydgoszcz. More about minisumo fights, if you don't know what it is.
We have used the most common pololu engines and, like every minisumo robot, IR proximity sensors (for enemies) and transoptors (for the edge of the battlefield). Everything is controlled by the microcontroller atmega328p and motor driver L298n. Frame of the robot is made with copper plates. Our advantage is having 4 wheels and a double front of the robot. When we reach the border, we don't have to turn around, but simply ride backwards which is now a new forward.
As we have noticed during the competition, our robot was pretty good. It was a competition for school students only, so competitors often had strange problems, like unnoticing an enemy or an edge. We also have had a nasty problem, which was caused by a low experience level in microcontrollers at the time. Now we are kicking ourselves for not adding a filter capacitor between the ground and a resonator, and not adding a resistor from reset to 5V. After a powerful hit, or sometimes even after a quick start, our robot has been restarting himself. But even with this issue we have managed to get to a semifinal group and unlucky we have ended in second place in this group. It was a huge lesson, and as we got new knowledge, we knew that we would do our best to show off a better side next year.
Our second mini sumo robot we decided to name CałkaBot 2.0 to honor his predecessor. This time we decided to create our own PCB board, and Deli did it great. We decided not to change the engines, proximity sensors, and frame. We changed the floor sensor, which was a bad decision (CNY70 were better option). This time, as we have noticed that CałkaBot 1.0 was not heavy enough, we have put some lead on top as an additional weight. Our robot weighs exactly 500g (thats minisumo's max). After a few test fights between our CałkaBots we realized that the new one is better.
During the competition in Bydgoszcz, we spotted a nasty problem. Long story short, when our robot was being hit hard he bobbed, and because of that, he was thinking that an enemy was behind him (mistake during strapping sensors), so he runned of a ring himself, and lost a few battles because of that. We haven't managed to leave a group stage, but our effort has been appreciated by the main sponsor of the competition, so we have won a special prize. CałkaBot 2.0 has fought really well in a few of his fights, so we decided to improve both him, and CałkaBot 1.0, and go to Baltic Robo Battles. There we have met many new people, and gained a lot of experience. We have also confronted technical university students, and sometimes we have won against them. With that huge amount of new knowledge we have decided not to build a new robot, but two robots, so we could confront them and see clearly all the bad aspects. (Facing the new version of CałkaBot with the old one is less objective, and the new one almost always wins). Unfortunately the pandemic and studies stopped our plans, but I hope that at least CałkaBot 3k0 (k stands for ‘Kivi’) will show up at some competitions in the future.
ARA is a game, made by me and my friends during winter holiday in 2019 as a challenge to make a game in C++ and SFML library in only two weeks (it was one of our first projects). It's a turn-based game similar to chess seemingly, but has huge twists, like different figures' moves, removal of the map or two moves each turn. The rules might be strange and tricky at first, but after a few games they start to make sense. After the winter holiday my friends practically abandoned the project. I've had a few attempts to finish the game (menu, saves system etc.), but each time I didn't have enough time or motivation to do so. Now it stays in the backlog, maybe when I will be out of new projects ideas I will come back and finish it.
The Music Reactive Lamp is based on a DFRobot's analog sound sensor and an atmega328, connected to a ws2812 RGB LED strip. Depending on the noise level, the LEDs turn on and off or change colors. If music is quiet, the lamp shines in blue. After volume increases drastically, the lamp shines red, and if it is red for too long it smoothly changes to green. Sensitivity of the lamp is adjustable with a potentiometer (in case I want to use it both, in a domesticity and at a party). Everything is set up on my prototype board. A frame of the lamp is made with a jar plastered with a bath mat. The control unit is cased, and can be powered with USB or DC input, up to 12V. Three diodes show whether power is plugged, whether the logic part is powered, and whether the atmega works properly. Below you can see photos of the working stage and the inside of the case, but the main thing is a video that shows the Music Reactive Lamp working. Enjoy!
This display is made with ping pong balls (actually halves of them), backlighted with ws2812 diodes. Usually, it shows actual time, which is loaded from a DS1307 timer module that has a small battery, so even if power is turned off, it knows what time it is. The display can also show simple animations that you can see on the videos below. I even programmed a simple Google dinosaur game. Everything is controlled by an atmega328. Controller box has 3 buttons for changing modes (the actual time, animations, a timer, dino-game), colors or brightness. After moving to a new flat I started making a new controller but once again, studies killed my free time.
The idea of the Jack project was to make my own home assistant. I made the first model that could control sockets and lights, when logged in. There were also a bunch of sensors and displays... Too much to write about, just watch the video below if you want, but be careful, my English wasn't so fluent back then.
This project is purely about electronics and mechanics. No coding involved (except for optional control by Jack in the past). I used two old power supplies. Better one is a real power supply -12V, 3.3V, 5V, 12V. From the second one I used just a case, which I cut as I wanted. It contains banana connectors, screw connectors and speaker connectors, but its main value is an adjustable voltage regulator made with LM2569. I have also added a small fan which I have used for soldering, but it didn't survive relocation.
Check Grzesiek is my first real project. With him by my side I have fallen in love with robotics, electronics and programming. There were actually two versions of the robot. First one I have made in 2017 as a middle school project, that I have on diploma. There is nothing to boast about. I was 16, I didn't know anything about proper programming or soldering, so the code is crap and the robot looks unprofessional as it actually is. But videos are cute and memorable. Second version I started right after middle school but I had other projects back then so I abandoned him. Actually used his part in other things. Maybe someday I will resurrect him.
Finishing something is a long and exhausting process. I will write more about it in the future, because now I am celebrating that everything works :D