New to Blender


#1

Hello everyone,

im new to Blender, but im really excited to get startet.
For the longest time i’ve been a hobby 3D Artist, former Art Student and now an IT-System Administrator (kinda happend with no background in it) and im just getting startet with Blender - as an Artist.

I Choose Blender because of its open license and community, so my ultimate goal is to be able to help develop blender in the right direction and share the progress with everyone.

After searching the forum for a beginner topic i already found a beginner guide for developing in blender (https://gumroad.com/l/ecycle/kn67150) . Im confident in getting the Artistic Side of things going but since i’ve never had anything to do with coding or scripting im feeling a little bit “scared” by comments like this:

The problem with VR within blender sofar has always been licensing, the GPL and many of the VR sdk’s just aren’t compatible. with OpenXR coming this will hopefully change in the near future

I know i should learn python, C and C++ to work on blender, but i guess im lacking the developer mindset and background to even beginn. So what comes first? Should i be able to know what you are talking about first, or just get startet? Any good monthly magazines or blogs to follow?

Btw, im 29 and from Germany


#2

Hello and welcome!

There are many ways you can contribute to Blender. https://www.blender.org/get-involved/developers/ gives you a good overview.

I personally think it’s better to start by learning Python in general and then maybe create an add-on or do a similar task in Python, e.g. update an outdated add-on to 2.8.
Python is much easier to learn than C/C++, and by making an add-on, you will learn the basics of coding in Blender, e.g. what is an operator, what’s the relationship between an object, its material and the viewport for example (from Python point of view) and so on.

I don’t know much of the beginner guide you mentioned but it seems like its goal is to teach artists the tools necessary to modify Blender using existing patches, and not to teach coding in general, so I’m not sure if that’s what’s right for you.

One thing you might want to consider is to just learn a completely another programming language and do other cool stuff before jumping into Blender. For example, learn JavaScript and make a web based drawing app. After that, you can come back to Blender and try to contribute to Grease Pencil… you’ll be surprised by how much your knowledge of programming in general is useful for Blender development :slight_smile:


#3

Thanks for your reply!

Im not trying to get over myself with working on blender, but im just trying to create a roadmap.
Starting in Python seems to be the most recommended since there are quiet a few tutorials about making simple changes with it.

Is there a specific reason for your recommendation of javascript? i heard its the easist, kind of “putting code snippets together” instead of writing it yourself.


#4

JavaScript with little html can let you create and deploy your own application that you can show (off) to any users who have a browser on their computer. I think this is important to keep you motivated and want to learn more about programming. Also, setting up and using JavaScript is way easier (if you’re using Chrome, then you have everything you need already. Just enable developer mode and you’ll be able to start coding right now!)
With python, at least in the beginning, you will only be able to make boring-looking command line applications that only people with same python version installed on their computer will be able to use.

Also, choosing to learn a language is not a commitment for life. If you’re not enjoying it or if you can’t achieve what you want with it then just move on and learn something else…

Have fun!


#5

Eventhough Python can be very easy to get started with its an immensely complex language , far more powerful and far more sophisticated than C. C on the other hand is very to get started but is a very small language overall.

There is nothing super when it comes to coding, 99.9% of your time will be spent trying to understand code that is mainly undocumented. You do not need to be smart, experienced or special in any way to do that. No matter the level of expertise will take you a lot of time.

So I think the most important skill to have is a lot of patience.

The GPL is the least of your problems. GPL has never been a problem for Blender AFAIK. Most popular open source licenses are compatible with GPL. Getting entangled in code bases with limiting licenses is a bad coding practice and generally should be avoided.

A non GPL compatible license means potential legal trouble down the road.

There is no such a thing as “developer mindset” each coding problem is different in nature and requires patience to carefully investigate. Coding is like problem solving in other professions, requires research , critical thinking and experimentation.

Blender Python is much easier to work with as it was designed with much better documentation and in such way to be used by non coders, but its much slower and far weaker than Blender C. Blender C will get you to the heart of Blender allow you to deeply understand the internals and implement complex and powerful features with top performance but comes with very little documentation.

So you pick your poison and start working. No magic recipe here to follow, it’s that simple. The good news is that both languages are extremely popular so learning them will be very useful for you in the future even outside Blender.


#6

If your interest is mainly as an artist, then really Python is all you need to worry about to do things like scripting and even add-on development (but most users probably never even need to get that far). If you want to potentially contribute to Blender itself, then some background in C or C++ is helpful.

If you’re not familiar with Python then it’s a great place to start as it’s probably the most versatile general scripting language there is and also a great first programming language to learn. If you have an iOS device, there’s a great app called Pythonista that gives you a complete portable Python IDE on your iPhone or iPad to play with for learning.

If you’re interested in contributing to (or even just understanding) the internals of Blender, then a great first-step is to setup your own build environment so you can build Blender from source code. This is useful because it not only gets you the source code set up so you can explore and experiment with it, but it lets you do a build any time you like with the up-to-the-minute current source code. Instructions are here:

https://wiki.blender.org/wiki/Building_Blender

I’d recommend focusing on 2.80 at this point which is what you’ll get by default. You can follow the commit history at the following link to follow along as it evolves on a daily basis, and any time you see an interesting change go by you’re only a “make update” and “make release” away from being able to try it out yourself:

https://developer.blender.org/diffusion/B/history/master/

I recommend Microsoft’s free VSCode programming editor/IDE for exploring Blender’s source code.

These days I personally think Blender’s use of the GPL is a good thing. It promotes a more cooperative community environment with people (mostly artists and people who also want to USE Blender) contributing towards the common goal of making a better Blender available to everyone, rather than a commercial ecosystem consisting of separate developer and user communities where the one exists only to make money selling stuff to the other.