This is a list of the projects which I'm proud of making:

2019


DtnLink: This was for my undergraduate thesis at the Acoustic Research Laboratory, located in NUS, Singapore. I was mentored by Prof. Mandar Chitre. I've had an amazing time working at the ARL. The UnetStack simulator I've used in my project is very unique and it has changed the way I think about computer networks. DtnLink may not be the most complicated project I've worked on, but it's one of the most polished and well documented projects I've done. Thanks to working with Prof. Mandar, my development process was much more streamlined than what it would've been had I developed it by myself.

Project link: https://github.com/shortstheory/underwater-dtn
Project presentation: https://arnavdhamija.com/static/ug-thesis-presentation.pdf

2018

APStreamline: This was my second GSoC project. I worked with the ArduPilot organisation. This was by far the biggest project I had ever done. I had to cover a lot of bases - learning the GStreamer API for constructing a video streaming pipeline, RTSP/RTCP/RTP, the theory of H.264 encoding, the image capturing pipeline with CSI cameras on the RPi, local sockets to communicate with a web server, and even a bit of JavaScript to create a GUI to tie the whole thing together. A lot of the development for this project was on the Raspberry Pi. There were many tiny frustrations throughout this project (as there will be with anything involving hardware), but the end product is something I'm very proud of making. It feels great to have made something which some people use on a daily basis! Also, big thanks to ArduPilot for sponsoring the hardware :-)

Project link: https://github.com/shortstheory/adaptive-streaming
Blog posts: https://arnavdhamija.com/tag/ardupilot/

2017

A 3D Children's Park: This was one of my favourite course projects ever because of how visual it is. With the help of some very talented friends, I made a 3D scene for rendering a children's park using OpenGL 3.3. It was pretty interesting to learn how the OpenGL hardware pipeline worked. I also liked playing around different values of the lighting effects to see how it would change the appearance of the scene.

Project link: https://github.com/shortstheory/3d-graphics-scene

Quadcopters: The only non-software project in this list, and in some ways not exactly an original project at all? I first got my hands wet with quadcopters through the Automation & Robotics Club in college. It was the perfect intersection of my interests in flying vehicles, electronics, hardware, and software. While we didn't end up making anything significant that time, I bought the parts for making my own CC3D-powered quadcopter that very summer. I had a blast working my way through the assembly and tuning of my machine. Later on, I studied the dynamics in more detail and became fairly confident that robotics was definitely something I would want to work on in the future.

The next year, I made significant upgrades to my quadcopter, giving it a new brain in the form of the Pixhawk. I also added GPS, live radio telemetry, Wi-Fi router, and a Raspberry Pi with a CSI camera for video streaming. Unfortunately, the Indian government has made it much harder to fly unregulated "micro" aerial vehicles so I'm not sure what the future of this hobby looks like.

Blog posts: https://arnavdhamija.com/tag/quadcopters/

2016

kio-stash: Probably the project which started it all, this was a GSoC project for KDE which was the realisation of an idea I had in my mind for nearly a year. I created a new kioslave for developing my idea of making a virtual directory which could copy files from multiple directories before copying them to the destination. This project was an amazing learning experience before it even began - from the early days of lurking on the KDE mailing lists to finally having a coherent idea of what I was going to write in my proposal. I took help from developers for submitting my first patches and reviewing my idea and I'm profoundly thankful to every single KDE developer I interacted with for taking the time to make me comfortable with the intricacies of KDE's development stack. I learned about version control, unit testing, and writing good C++/Qt code. This project also had huge IRL benefits as I got to attend two of KDE's biggest international conferences - QtCon 2016, Berlin and Akademy 2017, Almeria as well! I've also made some great friends from the KDE community, some of whom I'm still in touch with today.

Project link: https://github.com/KDE/kio-stash

2014

Rigel: I made a Flappy Bird-like computer game for my Grade XII CBSE project. Back at the time, I knew nothing idea about version control, proper documentation, or how to write safe and properly structured C++ code.

Nevertheless, it was a huge personal achievement for me to make something with two-dimensional graphics at that point in time. I used the SFML library for all the graphics code that would've otherwise been OpenGL and did all the game logic in C++11 (as opposed to the 1990 flavour of Turbo C++ we did at school). This project gave me a lot of confidence in my abilities and the things I learned from this helped me a lot for my first GSoC project in my first year of college.

Project link: https://github.com/shortstheory/rigel