From BlenderWiki

Jump to: navigation, search

Code History

from there to here, but not back again By Nathan Letwory

Blender evolution

Now that Blender has been Open Source for a year, I thought it would be interesting to see how the codebase of Blender has changed over the years when it was closed source and how this first year has made its impact on the current codebase.

Blender versions 1.46 through 2.25 are products of a time when the source was closed. In one year we have seen many new releases, with 2.31 as the latest in 2003 and the year 2004 bringin 2.32.

In the following some figures about the codebase of Blender along the years. An explanation on how I got at those figure can be found in the appendix.

For the expenses I used a wage of 30,000€ per year.

1998 - 1.46

To create Blender 1.46 estimated 756,439 € would've been necessary, with a schedule of almost 16 months and 8 developers.

The codebase for Blender 1.46 was pure C and spanned over 101,590 actual source lines of code.

A quick calculation shows that a nice 10 person years would've been needed for this.

1999 - 1.72

A year later we see Blender 1.72. The codebase has now grown to encompass almost 150,000 lines of code, 149,154 to be exact. If this was a from-the-group-up effort it would've needed funding for more than 1,1 M€. The schedule could've been a nice 18 months with 10 developers working on it non-stop. That would make 185 person months of hard work!

In contrast with version 1.46 there are 47,564 more lines of code. Blender 1.72 is still C only.

2000 - 2.03

Interestingly we see a drop in source lines of code for this version, compared to Blender 1.72. The size drops from 149,154 to 138,370 lines. This of course generates smaller figures, 1.0 M€ with about 10 developers over 17 months would do it for this version. Blender is still C only.

Interrim - The big bucks Not a Number has managed to attract investors who are good for 4.5 M€. This should show in the codebase as we shall investigate in the next chapter.

2002 - 2.25

Blender 2.25 is the last product from the closed-source era. The investments show in the code in the form of many new features, like Python support and the Game Engine. Blender is no more just C, along with structural code changes C++ and Python have made their entry.

The total source lines of code is now at 221,739 lines, which breaks down into 176,965 lines C, 32,.446 lines C++ and 12,328 lines Python.

With 13 developers during a period of 21 months this could've been written for a cost of 1.6 M€.

Interrim 2 - Open Source

Since 2.25 Blender has been Open Source. The next chapter shows some data which can be used to make some conclusions (which I wont be making in this article) on whether Open Source has been good to Blender or not .

2003 - 2.31

A year has gone by in the Open Source era of Blender. A rapid succession of new releases have seen the light while many developers are still looking at how the code works, learning the internals of Blender.

Blender is at this point a quite large program of 300,557 lines: 211,035 lines C, 88,029 C++ and 894 Python.

C++ has got a larger foothold, where Python has lost grounds (more than 10k lines less!) as a developing language. This Blender effort would have needed 2.2 M€ funding and about 16 developers working for 2 years straight. In person-months we are talking about 373 months!

2004, January-June

A good six months have gone by, and we've seen again lots of exciting development. Blender 2.32, and 2.33(a) have come out bringing cool noise textures, Ambient Occlusion and for the upcoming 2.34 release we'll see improvements on the gameengine, particle effects, a new shader, yafray plugin... As you can see, lots and lots of new toys to play with.

This is visible in the code base too. We see an almost 28K increase of codelines, with src/ and python/ seeing big additions, the former around 8K and the latter around 9K.

This all amounts to an addition of 35 person months of time over the previous estimate of 373 to a total of 408 person months. Funding would've required a 0.2M€ extra, three more developers and all in one month actual time.

What shall we see in the coming 6 months? An ever increase in added lines of code? Or could a clean-up effort have effects on these estimates?