Skip to main content

Command Palette

Search for a command to run...

2025: A year in review

Highlights from my builds and experiences in 2025

Updated
•12 min read•View as Markdown
2025: A year in review
A
Generalist engineer, specializing in robotics, embedded systems, and mechatronics.

Now that it's 2026, it's time to reflect on the rollercoaster that was 2025. It was a strange year for me. I took a shot at launching a company, but juggling that with my full-time job didn't quite pan out. However, my side gig did well enough to fund my trip to ROSCon in Singapore (which was my main goal in the first place). After that, I decided to take a breather. Singapore turned out to be a game-changer, filling me with fresh ideas and inspiration. In the last two months of the year, that inspiration sparked some exciting new projects and big plans for 2026.

Before diving in, I want to express my heartfelt gratitude to all of you who read these posts and offer encouragement, feedback, and motivation. I've mentioned before that this blog began as a personal journal, but it truly brings me joy to see how many of you find it helpful. In addition to my readers, I must also acknowledge the amazing robotics and ROS community that I'm fortunate to be a part of. Meeting many of you at ROSCon in Singapore was a highlight, and I'm thankful for the connections we've made.

Now, let’s go back to the beginning of 2025, where I was surprisingly not working with robots but instead exploring some more creative pursuits.

TouchDesigner

Living in Eindhoven, I've been a regular attendee of the GLOW festival, a dazzling week-long event featuring light art, projection mappings, and visual installations. Inspired by this, I finally took the plunge in late 2024 to learn projection mapping using TouchDesigner, a tool for visual and generative art. Although my obsession didn't carry into 2025, I did complete a project in January that I'm really proud of. I used my trusty VL53L5CX ToF Imager Sensor’s ROS package, tweaked it to send OSC (Open Sound Control) messages, and brought it to life in TouchDesigner with some creative flair:

https://twitter.com/kamathsblog/status/1879246376498016667

Even though my passion for these creative projects has cooled off a bit, I still found myself diving into tutorials online whenever I had some spare time, which led to some cool visuals like these:

https://twitter.com/kamathsblog/status/1917724007245266962

SO-100/101

In mid-2024, I stumbled upon the SO-100 arm (a relatively unknown new project at the time) while looking for projects to use my spare STS3215 motors in. I built and tested a leader/follower pair, and by 2025, I was exploring some cool applications using them. As the project became more popular, interest grew on Twitter and Discord, with folks asking where to buy these arms. This gave me an idea: why not start a small business?

First attempt at a side business

It was my first venture, so I tested the waters with a tweet and decided to dive in with a limited run of 10 arms. At the same time, I was waiting for my Bambulab P1S to arrive, so it was good timing as well. In February, I kicked things off with an order for 60 motors directly from the manufacturer Feetech, and began printing parts while they were on the way.

https://twitter.com/kamathsblog/status/1888198060427149547

While waiting for the motors to arrive, I stumbled upon another interesting project on Twitter - a new robot called LeKiwi, featuring an omni-wheeled mobile base for the SO-100 arm. Naturally, I had to build one! But with only a Prusa Mini+ at my disposal, I wanted to create a smaller platform that would fit my print bed.

https://twitter.com/kamathsblog/status/1895248327157129733

I crafted a smaller platform using parts I had on hand, but it was too small and unstable for the robot arm. So, I set this side-quest aside, but little did I know, I'd revisit it later in the year.

https://twitter.com/kamathsblog/status/1897646014825107709

In March, the motors finally arrived, and I dove into assembling the robot arms. With four orders lined up - two leader/follower pairs and two individual follower arms - I spent my evenings putting them together, configuring, and testing. By the end of the week, they were ready to ship. Check out this Twitter thread for the insights I gained during this process:

https://twitter.com/kamathsblog/status/1899955309898280962

I eventually sold another follower arm, leaving me with three unsold robots - two followers and one leader. While juggling admin tasks like registering a business, building a website, and figuring out marketing, LeRobot launched the SO-101, the successor to the SO-100, partnering with companies like SeeedStudio to sell kits at prices I couldn't match. I was already getting a little annoyed with doing the admin work by myself, so I decided to hit pause and take a step back. I added one of the remaining followers to my original leader/follower set and ended up selling the remaining pair at a hackathon later in the year.

AI and vibe-coding

Meanwhile, I was already having a blast with my new personal set of 2 followers and 1 leader. I was also experimenting with Cursor at the time, so I decided to vibe-code a multi-robot project:

https://twitter.com/kamathsblog/status/1901329822581760191

Around this time, I was working with AI tools at work as well, alongside personal projects. For my side projects, I initially used GitHub Copilot but switched to Cursor. Since I was exclusively using the Claude models from Anthropic, I made the switch to Claude Code later in the year. At the moment, my setup includes the basic pro subscriptions to Claude Code and GitHub Copilot (totals $30 per month or $300 with annual billing). Because of this dual-AI setup, I normally dont hit the rate limits, and I can also delegate different tasks to different agents and do things in parallel, either within the same project or work on separate projects at a time.

At work, we got access to GitHub Copilot enterprise and discovered some agent-based AI workflows, which made life so much easier in late 2025. I tried to implement similar workflows in my personal projects, but it ended up completely different from my work. At work, I work with proprietary, extremely legacy software stacks, but I prefer modern and, most importantly, open-source tools for personal use. Also, for my hobby projects, I have the freedom to vibe-code, which I've found very useful for things I have never worked on before.

For instance, I stumbled upon a tweet from Tim Qian, who was building BamBot, a dual-armed (SO-101) mobile robot with a web-based visualization and control tool. This tweet sparked a nice discussion about adding gamepad support and extending it to a SteamDeck. Since I was testing SO-100 arms anyway, I decided to attempt to build this new feature.

Now, note that I had not worked on web development before, and I didn’t even know that you could control a serial device from your browser. But by vibe-coding, I was able to build a working prototype. I made a draft PR, and while I'm not sure if it made it into the original repo, my fork is live on Vercel.

https://twitter.com/kamathsblog/status/1910762783693545478

I kept tinkering with the project and even tested it on the real arm using a gamepad. Just a heads-up: don't try this with hardware unless you have spare parts or a 3D printer handy. Vibe-coding with hardware will lead to breakages, so proceed with caution!

https://twitter.com/kamathsblog/status/1911470377810690197

LeRobot Worldwide Hackathon

After wrapping up this project, I took a break from personal projects for a few months. Around this time, I got busy with a short-term freelance robotics gig on weekends and spent any extra free time enjoying the spring outdoors. By summer, I was ready for new adventures. First up was the LeRobot worldwide hackathon in June. I planned to join online but found a local event in Utrecht, which was then merged with one in Eindhoven. It wasn’t as big as the local events in cities like Munich; there were about 15 of us distributed into 5 teams, working out of the lovely High Tech Campus in Eindhoven.

https://twitter.com/kamathsblog/status/1933965312912957622

I've detailed my team's goals in my hackathon blog, but in short, we aimed to train a model to stack 3D printed cubes on top of each other. While gathering data and waiting for the model to train, I went on a side quest - teleoperating a simulated robot in Mujoco, which I vibe-coded in less than an hour. Amazingly, it worked after just a couple of iterations. Check out the code I shared on Twitter:

https://twitter.com/kamathsblog/status/1935276935426240771

By the end of day 1, while we were training our model on the cloud, I decided to tackle another project. We had used an OAK-D camera for recording data, and we were using only the RGB camera on it because LeRobot did not support depth images yet. So, I wanted to see if I could add this. It turned out my teammate and I were registered as separate teams, so we could make two submissions. So, I decided to make the DepthAI / depth image support in LeRobot as my final submission for the event.

https://twitter.com/kamathsblog/status/1934035624949911928

We didn’t win anything, but it was an amazing learning experience, and good to find a little but growing community of people in and around Eindhoven interested in events such as this one. I was also able to meet some amazing people, who made some really fun applications. I really hope they do this again in 2026, as I have some good ideas this time.

AKROS

In July, I started exploring new robots and working on small projects, salvaging parts from my AKROS mecanum wheeled platform, which I hadn’t touched in a while. I stripped it down so much that it wasn’t a complete robot anymore, so I decided to retire it and use my ROSCon trip to spark inspiration for my project. If you are interested, I compiled all my blog posts about the AKROS robot in a separate article on my blog.

https://twitter.com/kamathsblog/status/1955657773523349993

ROSCon Singapore

After a couple of months of meticulous planning, it was finally time to fly to Singapore for ROSCon. I was originally planning on chilling in Singapore and Malaysia and skipping ROSCon entirely, but I eventually decided to cancel the trip to Malaysia and decided to attend ROSCon after all. I would later see that skipping it would have been a big mistake. While the talk recordings are now available for free and the exhibition area was a bit underwhelming, meeting and talking to some incredible people, including some I only knew online, made it all worthwhile. I returned with amazing ideas, a clearer vision (and some important tips) of life as an independent roboticist, and tons of inspiration for the coming year. Plus, the trip was filled with some amazing sights, the best food I've ever tasted, and, of course, a lot of jetlag. I’ve written extensively about my experiences on my ROSCon blog.

https://twitter.com/kamathsblog/status/1985535010330247439

Plans for 2026

Inspired by ROSCon, first in my plan of action is to register a company. I don’t have a proper business plan yet, but I want a legal structure for my side activities this year. I intend to do some small freelance projects and continue with my personal projects and blogging while I figure things out. I’ve already taken the first step and switched the domain to Kamath Robotics, and I will reveal more information soon.

As for my personal projects, these let me keep learning the newest technologies and keep my skills sharp, while also keeping me occupied. The blogging originally started as a sort of a journal for myself, something I could refer to when I had questions about my own work, but people seem to be really enjoying my work and it has been getting exposure lately. So, I will be switching to a little more professional blogging style, rather than a personal account as it used to be.

https://twitter.com/kamathsblog/status/1997688486401556613

This year, I want to focus on a single robot platform (just like AKROS) for various experiments. After retiring the AKROS platform, I got the LeKiwi a few months ago, and so far, I'm thrilled with it. I updated the C++ SDK for the motors, which I documented in my blog about the STS3215. Right now, I'm manually building the URDF (I'll explain why in a later post), setting up sensors, and configuring ros2_control for driving the robot. I have added a 2D LiDAR to it, and I want to eventually use it for autonomous navigation. I am also using this robot to explore Zenoh, which again caught my eye at ROSCon Singapore.

I've got a few other robots to tinker with: two SO-100/101 arms, a 4-digit hand, and a smaller omni-wheeled robot with a microcontroller. They're perfect for side-quests and random weekend builds, but I don't have any specific plans for them yet. My other big goal this year is exploring Rust, especially Rust-based robotics tools. It's more of a fascination right now since everyone's talking about it, but I don't expect to dive into serious projects just yet.

I also want to go to more non-ROSCon events this year. I don’t intend on attending ROSCon 2026 in Canada, and am instead using my budget for conferences closer to home. First up is FOSDEM in Brussels in a few weeks, followed by the Open Hardware Summit in Berlin in May. I'm also hoping for another Hackaday Europe, as I heard great things about it in 2025. If ROSCon UK happens again, I'm really keen to attend, especially if it is once again in Scotland, one of my favourite countries to visit.

As the first full week of the year ends, and the snow (which somehow brought this flat country to a standstill) melts, everyone’s coming back to life, and it is finally time to get stuck into the new year. Here’s to a great one ahead!

https://twitter.com/kamathsblog/status/2006530201367494770