Blender beginner coders group for learning development

I just found this group, which seems to be dead unfortunately, but maybe we could revive it if we get enough attention from people who want to start development :)?

I like the idea of picking a small issue in Blender and discussing how it could be fixed. I think it could be a lot of fun :)!

What do you guys think? Any people interested in it?

Sounds like fun. I’d be happy if I could just figure out how to build blender.

http://wiki.blender.org/index.php/Dev:Doc/Building_Blender

  • learn building blender
  • learn C (it’s not that hard if you’re even doing ECMA script dev as me)

but then we should actually set a goal, or have a TODO list for us newbs, and make each step together, posting videos or reviews of how we solved the problem. so people not attending or joining up late can review and learn from it

Sometimes you just have to LOVE this forum for swallowing your forum posts …
I agree with a TODO list, preferably easy taks that everyone could solve. We could also have everyone code a solution for a problem and at the end when everyone is done we’ll go over each solution and see where improvements could be made. I like the idea of posting videos or reviews. The question is also with which language do we want to code? Personally I prefer C because it’s the native language of Blender (and selfishly because I’ll have to learn Objective-C for my job anyway so I could translate my C knowledge to Objective-C), but as most of us know it’s easier to develop with Python.

With the documentation the foundation gives, building blender is an incredibly easy process.
Learn C is not that hard, and you’ll get better using it.

The problem (that also stops me from begin developing) is that blender code is huge, and there is no (at least i didn’t found it) documentation of the C API. The architecture page gives an overview on how blender works, but if i want to add an operator i don’t know where to put my code, and all the dependencies and libraries i need to link my function to. As opposed, i looked a bit into python module developing(that is similar to blender, since both are written in C, and both have a C API very similar to the python API) and in a day i was able to do what ever stuff i wanted(and i was capable of doing in python or C). This thanks to the documentation of the api, that gives a really point to start from, and can guide you through the understanding of the system.
On a side, python is an excess(in the positive sense) of documentation, i’ve never seen such a great documentation (neither google android SDK is so well constructed), on the other side blender lacks of a C API documentation(even if has a good documentation of the python api), and the way you should learn how to code in blender is read many and many and many lines of code and understand it by your own…
At least this is my impression on the thing (and right now i’m trying to get more familiar with the code)

Im interested. Got the same problem as Makers_F.
If it is a simple enough, a,b,c, 2+2=4, step by step intro this could be really useful for many newcomers in the future as well… +1

reading patch-files to figure out “where to change what in order to…” is an option, e.g. a modifier patch from nicholas bishop.

Hi,

This sounds interesting. I’m new to coding and would really like to learn how to do things with Blender and scripting and this seems like it wold help me learn. How much prior knowledge of coding would be required? (I’ve never done any C, only a little Python)

Thanks
Tom

Campbell Barton (Ideasman42) used to run sessions for coders new to Blender once a month on IRC. This seems to have fallen by the wayside. Campbell’s very busy but other core coders could be willing to restart it. It might be an idea to approach Ton about bringing this up at the weekly IRC meeting.

Agreed the Blender code base is huge. Just out of curiosity I digged into the structure a bit today because I was so annoyed by the “Fast Navigate” at lowest level in sculpt mode. There are soooo many libraries included + I can’t even seem to find the libraries. If you’re interested in such a coder session Sleeper mentioned please write +1 or something like that. If there are enough people willing to dig into the Blender code then maybe we could get some help from some developers. It would be great if you would write down your current skill level of programming.

I’ll start of course :). I’m a programming beginner, my only real programming experience I had before was reading Javascript code and changing values where needed, i. e. an absolute programming newbie. Lately I did some simple Javascript programming I’m starting to understand programming a lot more now. Real C experience except for reading a book about it = 0%.

It’s funny how many people read this thread but don’t reply ^^. Guys, don’t be shy if you want to learn programming ;).

You read what Campbell once wrote, right?

http://blenderartists.org/forum/showpost.php?p=1721623&postcount=2

There he writes in a very clear manner, IMHO, what you need to start.

As for the programming environment, there is another article:

Optimized IDE Setup on Linux - http://wiki.blender.org/index.php/User:Ideasman42/CMakeQTCreatorLinux (from Mr. Barton, again)

That guide can be used for Windows, too.

He has another interesting article (“How users can get features in Blender”) that i will let you find yourself.

At the end, some remarks from my Blender (2.49) coding experience:

  1. The people from the “Python & Plugins”-forum here, on BlenderArtists.org are very helpful.
  2. The same people here on the forums will NOT answer your Blender-Python question IF it is not directly Blender-related.
  3. There are wonderful learning resources about every aspect of Python on the Internet. Just look for them.
  4. Have patience becoming help. It WILL take some time before someone answer your questions.

monthly_irc_coding_newbie_session.append(Makers_F)

C language is one of the easiest in the meaning that it has 4 statement (if, for, while, case), a few variable types, a bit tedious syntax and a lot of freedom. The difficulty is to combine all this basic things to do incredible stuff. All this means: to learn C start coding in C. First simple programs (find all the prime number between all the square of x and x+1), than maybe something with pointers and struct, and you’ll understand all the basic usage. And then you’ll have the POWER :smiley:

Imagine that the more developers are there in an open source project the better for everyone. Most open source projects (if not all) are difficult for beginners to catch up with, I think that Blender should be the first to break this habit and become very plain and simple for the beginners.

This could be happen with these ways:

  1. Guidance: A beginner developer want to make something and asks for guidance by an experience developer where he can provide guidance around the source, make notes, propose solutions, give options a.k.a. help him out, get on his feet and through the source code. Best for new but simple projects.

  2. Mentoring: Similar to Google SOC, an experienced developer can start a small team by developers that they can join his team in order to produce common work together.
    Best for developers with common interests.

  3. Blenderworks: A job-based wiki (just like you see on freelance developers use with request-response-bid) combined with a knowledge-based wiki. For example, one experienced developer will start a blenderwork, he will describe what he want to do and how he does it and make a very simple and practical tutorial about it. Then he will get responses (bids) from beginner developers that each one will say I he will make X that does XStuff in order to prevent bids with common characteristics (like when 2 people choose the same color), when a beginner finished his work he can send his source to the poster’s SVN for polishing.
    Best for beginners, best for experienced developers, best option for work that follows same design patterns, best for “blooming” of features.

Practical Example
Question: How many people want to write their own texture generation plugin?
Clarification: I wonder why Blender has not yet these types of textures: checker board, tiles, brick…

I guess that there could be many people out there that would like to create their own texture plugin. It could be very interesting that if this attempt will spark the interest of 50 beginner developers (or even more?) and Blender will gain new texture plugins. It’s surely will be very fun and rewarding experience for helping blender become better and beginners will immediately gain better knowledge and be more confident.

I think that you will like my ideas, the least I could do is to make them public, then who knows… :smiley:

Cheers.

The biggest hurdle for me has been getting Blender to compile. I have tried several times on using different OSs and different Blender versions but I have never been able to get Blender to compile. Even though there is documentation, it is not an easy task to setup a machine for development.

Because it is coders that write the instructions on how to setup a system and get things to compile they tend to do things the correct way.

We need a compile guide written by someone who does not know how to do it (i.e a newbie). A guide that covers the missteps that can occur when newbies try.

There’s a lot of great tutorials already (At least for windows)

For example
http://www.letworyinteractive.com/b/building-blender-with-scons/platforms/scons-windows
http://www.geneome.com/tutorials/blender-tutorials/building-blender-with-msvc-using-cmake/
http://blog.mikepan.com/build-blender-2-5-a-visual-guide/

would have been nice to have a dedicated forum category for blender coding and compiling…

haste,

thanks for the link
I now have a working ide and build environment under Fedora 14
anybody want help setting things up under linux I’ll help all I can

drobbins

I already wrote to the admin of the site proposing it, if they decide to open a blender code section i will be really happy, and starting developing would be really nice.

@Atom

win 7 @64bit, i compile 32 bit version of blender(64 gave me problems on ge and since i use it is quite useless to me to compile 64bit build)
here my compiling scritp.


@echo off

set PATH=%PATH%;C:\Python26;C:\MinGW\bin;C:\MinGW\lib

cd C:\Users\Francesco\Desktop\Programmazione\BlenderSVN
svn cleanup

cd lib\windows
svn update
cd ..\..\blender
svn update
svn up release\scripts\addons_contrib\

python26 scons\scons.py BF_TOOLSET=mingw > ..\LogBuild.txt

cd ..
python26 Compile.py

compile.py is just a script i wrote that controls in LogBuild.txt that there isn’t any error

i used this guide and i think it was really complete and well written
http://wiki.blender.org/index.php/Dev:2.5/Doc/Building_Blender/Windows/MinGW/Scons
guides to other SO
http://wiki.blender.org/index.php/Dev:Doc/Building_Blender

btw i feel is more easy to build with scons, other prefer to use cmake (in my opinion more complex), you just need to find your way :slight_smile:

Here is my Compiling and Development page. I hope it’ll be useful.

Click here

Yes, it is :)!

Bookmarked.