Journey of my GSOC Project: Exploring Limitless Creativity Music Blocks V4

Hey there, fellow MusicBlocks enthusiasts! It’s truly amazing how time flies since my days as a newbie in the Google Summer of Code program (GSOC). Today, I’m bursting with excitement to share all the incredible things that have happened on my journey, and I couldn’t be happier to have you join me for this update! Whether you’ve been following along for a while or you’re new to the captivating world of SugarLabs, get ready for a delightful dose of inspiration and information. So, without further ado, let’s dive right into the wonderful world of Music Blocks!

I have learned a lot and I am proud of the work I was and will be able to contribute. And I am grateful for the opportunity to work with Sugar Labs.

Let’s dive into some details

Week 0

I started my GSoC project early, so as to get a head start, one week ahead of schedule as my college exams were approaching, and I wanted to make the most of my time. With the help and guidance of my mentors, I made some great progress in the week!


As suggested, I dove into exploring the Music Blocks builder framework repo to get a complete understanding of its architecture. It took a bit of time, but I finally managed to grasp how things were designed in my project. My mentors wisely advised me to create a prototype for our project, drawing inspiration from the Builder frameworks repo, to visualize the overall concept Project was going to be.

Week 1 – 4

In the following weeks, I dedicated my time to developing a fantastic prototype for Music Blocks v4. I created a project with features like swimlanes and drag-and-drop functionality for the blocks, or as we now call them, bricks.

After some insightful discussions, we realized that our project needed a unique approach, while still keeping the MVC reference in mind. We had to design specific classes for the brick and brick factory components, which played a crucial role in generating and initializing the blocks. We completed the playground with all these functionalities intact.

During the last week, we explored different approaches for collision detection among the blocks. After careful consideration, we decided to utilize a Quadtree to store brick information, greatly reducing time complexity and improving response time. By the end of the week, I proudly created a collision playground where blocks were randomly mapped, and it promptly notified us whenever a collision occurred among them. It was quite a productive and thrilling week!

I’m really excited about the learning opportunities ahead and building even more exciting features for my projects. I can’t wait to see what this summer has in store for us as we continue moving forward. It’s going to be a thrilling and rewarding journey!