GSoC 2019, here we go
Image source: casals

GSoC 2019, here we go

I first heard about Google Summer of Code (GSoC) a couple of years ago, and since then I’ve consistently missed the application deadline every year (because, well, stuff). This year, however, I was lucky enough to (i) randomly find out I could still submit a proposal, (ii) find a proposal that was extremely well-aligned with my current research, and (iii) get accepted into the GSoC 2019 program. This post is the first of a series describing the evolution of this project.

In the beginning, there was only Darkness

It was already late at night - I’m usually a night owl, but I was just emerging from a whole day of systematic literature review. I was pretty tired and decided to call it a day. There’s a shutdown ritual, of course, so I was catching up with Twitter when I saw a post about GSoC. The deadline for applications was in the next day. OK, it went by - again. Just out of curiosity, I decided to check the projects for this year. I started checking the participating organizations, opening a few of them on side tabs, when I saw “The Terasology Foundation” listed.

Terasology is an open-source voxel world inspired by Minecraft. I remembered seeing a gameplay video a while back, and then another thing just connected: I’ve had this idea for some time that I needed to test part of my research in real-world applications. Since I’ve been working with cognitive agents for some time now, I was already kind of set on using a game platform as a research testbed or creating a simple game. So, instead of ctrl+clicking it, I decided to go straight to their projects list.

The projects list was on Trello, and there were a lot of ideas there. This caught my attention - I had seen (three or four) GSoC project lists in the past, and all of them were pre-determined projects (or so it seemed at the time). So I started browsing the cards and suddenly there it was - light. A project idea that was completely aligned with my research.

Fear is the mind-killer

I’ve been studying collective agent behavior for goal-oriented agents, and I really like it (I’ll probably post about my research in the future). The idea I had just found was about “extending the behavior mechanisms of non-playable characters (NPCs) to support collective behavior”. It was love at first sight. There was, however, a small problem: GSoC proposals usually involve a 2-week period of community bonding, so you can reach the organizations, exchange ideas about the project, etc. before finally submitting a proposal. I had about 20h before the submission deadline. If it were any other theme, I would probably just let it go. But not this time. I had to try.

I started by reading everything that was linked to the idea. The way the idea was organized - external references, linked repos/wikis - was crucial for that. I started reading about it as fast as I could, all to be sure that I would be able to submit a proposal as I imagined it. OK, it was sound. The next step was to engage the community, and that went pretty much like this:

Discord Image

Just in case it seems out of context: it was a really nice reply, same as the ones I got before/later (this one just summarizes the situation). I was really late in the process, so I had started pinging community members on Discord. Their answers were consistently like:

  • You’re terribly late, and it’s important that you know it.
  • This is how the process works, and this is what you need to do.
  • Could you tell me more about what you want to do?
  • Do it! Here’s what everybody is doing.
  • You can reach me anytime, ask anything about Terasology, what you want to do, what has been done before.

This was just great, and I couldn’t ask for better support. I knew I was behind, everybody knew it, and yet what I was getting from the community was:

  • Expectation management
  • Instructions
  • Encouragement
  • Support

At this point, I had already decided to pull an all-nighter, so I started by setting up the development environment, running the code, pinging developers and asking a lot. In the morning, I had my first proposal fully drafted and posted for review. I was really tired and really happy.

We see in order to move; we move in order to see

After a lot of feedback, I submitted my final project proposal. One month left before the final decision. During this time, I tried to engage the community as much as I could. I didn’t have much time in my hands, so I did what I could: small pull requests for minor documentation changes and some code. Far less than what I wanted to do, but that’s what I could do at that time - so I did it. And one month later I got the good news.

Engaging in a GSoC project requires a few things: weekly meetings, continuous interaction with the community, meticulous planning, and weekly reporting. Since all projects are open-source, everything else follows. Which is why we’re here, actually: I’ve never been particularly interested in keeping a blog, but we are encouraged to publish our progress in a GitHub page, blog, or similar. At the same time, I’ve recently felt the need to create a public space for academic purposes, and I was thinking that perhaps I could also use it to write a bit about my recent experience on changing careers. Which is also why I decided to write this first GSoC post with a motivational perspective.

Here are a few takeaways from this post:

  • It was an idea at first, but I decided writing more about my career change. It was not easy, but I’m really happy - and I think I can share some of what I’ve experienced with people in a similar situation, or thinking about getting into it.

  • I will share more about what I’ve been studying. I really like it, and perhaps other people can benefit from it somehow.

  • If you came just for the GSoC updates, don’t worry: the next related posts will be more technical. I just thought of this post as a good opportunity to talk about my personal experience as well.

  • There’s a link to my accepted GSoC proposal below. My DMs on Twitter are open - feel free to ask me about it. :)

Collective Behavior in Terasology

Arthur Casals

Arthur Casals
Break the world, see how it works. Researcher, coder, information junkie. Music is always on.

GSoC 2019 - Final Report

Google Summer of Code 2019: It's a wrap Continue reading

GSoC 2019 - Second Milestone

Published on July 23, 2019

GSoC 2019 - First Milestone

Published on June 23, 2019