a journal sharing my experiences and growth
home // facebook // instagram

Wednesday, 5 February 2014

FOSS - Blender

I have interest in arts and animation and I would love contribute to animation/arts/graphics related FOSS, Blender in particular. This combination of software engineering and animation software is an ideal mix and a great opportunity to contribute to something that I am genuinely interested in, not just to do it. One of my goals for this year (the next few months specifically) is to get familiar with the Blender Development community and eventually get comfortable (and good at) contributing to this open source piece of software.

Source: Wikipedia

What is Blender? 

Blender is a piece of 3d computer graphics software (and it's also free and open source, as previously mentioned). It has many uses such as 3D computer animation, computer game modelling, art, visual effects and more. Although it can get quite complicated to use, the results can be quite impressive and beautiful. If you are interested, the following is a project created by the Blender Institute, a short film:

My Personal Interest in Blender
I was first introduced to Blender by a friend. We were/are developing a 3D video game (using Unity) and eventually I got into searching for 3D models, and from there my interest went into creating them myself. First I got a student version of Maya and created a couple simple models with that, and then my friend mentioned that there was Blender, an open source piece of software, and most importantly (to a student, especially) free! So I downloaded it. It's quite a learning curve to learn how to make 3D models, I'll admit that much.

When I got introduced to Blender, I really wanted to see the work made using the software, and what I found really impressed me. I find computer 3D animation fascinating and beautiful (when done right - I've also had my eyes burned from some terrible 3D models/animation shorts, some being my own models), and seeing what people can make (with this tool) is really inspiring. Knowing that it is open-source makes it that much more awesome. The possibility that I can work on such a powerful tool is almost unbelievable, but I can. I don't want to just be a user of Blender, I want to also be a developer behind it, even if it's just the tiniest fraction of a contribution. The first task I am assigning to myself is to get familiar with the development community.

Development in the Blender Community 
I have begun to investigate how they do things when developing Blender. I already found out that they use git (a version control system that I am getting more comfortable with) and they have code written in C/C++ and Python. I have some experience writing in C and C++ and am now getting introduced to Python in my CMPT 395 course (Introduction to Software Development). They discuss their coding etiquette, how to commit, IRC meetings, and something that I am finding useful, their coding style guidelines. Being in University, it's easy to get lazy with coding and not have a set system/style. Their style guidelines will really help me to become better with writing code (or at least force me to be more neat).

Something I found that was also interesting was their developer site: https://developer.blender.org. Looking at how bugs are reported and handled is a great introduction to "real world" project development. It's also great that I can view one way that the community interacts/communicates with each other with each other (the comments).

There is a lot to learn, and it's exciting that if I want I can just do this. Contribute to something real and fun. In my early years of my computer science education journey I was completely unaware of open source projects. Until recently I was not fully appreciative of the open source projects and community that exists. I was so used to the big companies such as Adobe, Microsoft, etc and their software that everyone uses. I thought that's all there was. I was unaware of the other side. I think getting involved in FOSS like this is a great way to start my career as a software developer and seeking out work that I am genuinely interested in will make it a lot easier and enjoyable. Combining my interest in photography, arts, animation and my skills in computer science and contributing to projects/software that I not only use, but also like (another one being GIMP) is a great way to force myself to grow, both in my career/skill-set and my personal interests/hobbies.