Blenders hard and long way from commercial to OSS code

General discussion about the development of the open source Blender

Moderators: jesterKing, stiv

Post Reply
Posts: 11
Joined: Sun May 11, 2003 2:31 am

Blenders hard and long way from commercial to OSS code

Post by Qbertino »

A few threads down there's a discussion going on about weedy code, lack of comments and developer documentation and everything else that bothers a closed source software going OSS. Just like with Netscape/Mozillla, remember?
Anyway, there was a mentioning in this thread about defining the users side specs and requirements of blender in order to actually know what way one could go.
I posted this atricle 3 years ago in the CJ, back when NaN just had had a first peek at eminent death, OSS wasn't thinkable and we all where happy we at least had a closed source Blender.
Some of this is way outdated and has a touch of funny nostalgia, some, as of us buying Blender free, has turned out to be not quite so ("object orientedness") and some other stuff I wrote is as conclusive and up-to-date as ever and could give a good impression of what direction the OSS Blender could go for and keep in mind when the architecture of the code is eventually is turned into something respectfull.
After all *everbody* in the software business knows that commercial closed source very often is far more weedier and quick'n'dirty than anything else, simply due to the fact that companies don't emphasise on beauty and long-term maintainability of code rather than on getting those Euros rolling, which is fair enough, imho.
If the community keeps focus and everybody pitches in according to ability - and be it only with smart-ass articles ;-)) - I'm shure eventually those Megabytes of source will become a beautyfull piece of OSS Art in the end and actually really give Alias/Wavefront the creeps due to reference grade scalability.
Something I mentioned back then (see further down) and never ment half as serious a chance of becoming reality as it appears to be know. (<--- Talk about german sentence-lengths in english...*whew*...)

The article back then was named: "What we need to succeed". A title I find most fitting today aswell. Here we go:

Begin quote of ancient article >>>>>>>

Let's kick some ass! :: Qbertino - 2001 06 08
Or: What we need to do to succeed

It's was some time ago when Bart asked the community to pitch in some stuff that could be of substacial use for the CJ. Good Articles, Info and so forth. A thing he recently did again. I offered my help and we went through some proposals for articles from me. One he asked me to keep a secret :-), because the very same idea was brewing with the official NaN CJ editors and would come up sometime soon (where is it? The Film I mean. Whoops...). Anyway, one of these issues of mine - well worth a CJ article, as I think - was a general and realistic comparsion to competitors on the market, their special features and a resumé of all what it means to us - el grande zampanos de Blender.
Now that Blender/NaN has walked the wildside a little bit, stumbled and (>>whew!<<) fallen on it's feet, and I have finally successfully completed my Multimedia Design Diploma (>>whew!<< again :-)) I consider this just the right time to make a round up of the situation for Blender. From the standpoint of a professional multimedia-tool user and somebody who likes to have an overview of what going on in his field of interest - 3D programms. This is not the holy word and I am not the first one to ask when it comes to comparing 3D packages - after all I only have project expierience with Blender and Cinema - but with the occasional peek and poke into realsoft, maya, max, lightwave and the like, I think I've got some usefull stuff to say.
First of all let's pat Blender a little:
What strikes anybody used to working on a computer with Windows or MacOS, is Blender rather unusual interface and small size. I name these two in the same sentence, because, as some of you may have noticed, they come together. A striktly object-orientated strukture of this programm makes it VERY small compared to others and asks for the user to cope with that and think into the nature of the struktured depths that any good programmer has to dive into if he wants to write something usefull with such an amount of functionality. And I guess we all agree that Blender IS a good programm and that the NaN crew are in fact 'quite ok at programming' ;-). The interface just plain gives anyone coming from another 3D programm the creeps. In the first two weeks that is. After working with Blender for some time, I, and everybody else probably too, consider the interface of Cinema 6 - the so-called usabillity king - and the mass of all other much the same copetitors to Blender - unbareable. Even though I haven't grasped half the functions that would make up for the stuff I needed Cinema for. Let's make the interface point number on our list, since size - even though Blender is only about 4% the size of the next larger package with simular funtionality - isn't an issue nowadays.
Looking for another point where Blender is very good up to the extend that one can only think of details that could be improved, programmability comes to my mind. The integrated Python language is a very powerfull tool for automizing animation and rendering jobs and manipulating 3D objects - this by now other people in the 3D buissnes allready have noticed too - ILM for an instance. Looking at the game engine side of B., the upsides of the strong integration of a scripting language becomes clearly visible. Make that number 2.
The last point I can find that gives Blender a 'that sounds interessting' sort of position in the tight and competitive market is the simple and striking fact that it's for free. This ONLY is an issue because, realsoft3D, Hash and maybe some other specialized minitools aside, competing programms cost above 2000 EUR up to 12000 EUR(!!). Otherwise zero-cost wouldn't be an issue. Because, let's face ist friends, professionals don't give a damn if they pay 300 EUR for Freehand 9 or 15 EUR for Corel Draw 8 OEM. If FH's the standard, they'll buy it, even if corel is much better. Yet with the price-margin of Blender and the rest of the 3D world - Blender being free (in the sense of beer - for those /.ers out there :-) ) makes point number three. Hey, that's a ryme!

Moving to point number 4 on my resumé-list we're getting into the area where Blender could use some improvement on one side or the other. Blenders workspace management - coming along with it's UI (#1 in our list) - takes a little time to grasp, but once that's done strikes everybody in the trade as absolutely awesome and unmatched by any other programm. But... what about multiple screens? Digital Content Creators - those who use 3D tools night and day - ALL have 2 screens and are almost all using the one or other Mickeysoft OS. Yes I know - I just need Linux with a running X, a few OpenGL drivers somewhere in some, some bash parameters in xterm and B. runs rocksolid with 2 screens - given that there's a FireGL 2 in my box. Bummer. Perfect thing for some hobby-hackers out there, but no issue for someone who needs to fire up his new box, install the prog and get the job done NOW.
That's a point, once raised, we should straighten out right here: I'm talking about how Blender can succeed in the only 3D market that's probably of any use to NaN in the near future - that of people who use 3D tools and sell 3D products professionally! So before you go flaming at me in the discussion groups ( I haven't got the time to join you at the moment anyway :-) ) just see that we need to be realistic. I'm a great fan of Blender too and wish to see nothing more than blender kicking the ass of max and maya up and down the street by summer 2002, but in order for that to happen we have to look at the truth.
So, point number 4, blender needs an implied multi screen solution that leaves all the rest behind but yet 'blends' (nudge, nudge) well into the top of the pops workspace management we have right now - without disturbing it or mixing up it's concept. This could probably technically be done quite easy by enableing a second programm window on the same instance of Blender. While we're at it - it would be somewhat usefull (not only because people are used to it from other 3D packages) if one could save workspace and screen setups seperate - or load them from existing files without loading the other stuff. Let's make that a subpoint to four, since it's the same league of features.

Another soso point is the much mentioned rendering side of Blender. Radiosity, caustics, raytracing, volumetric rendering, etc., etc.... Some of these are implemented, some not. Some are passed on to external renderers (BMRT, RM, etc.), due to the newly gained export options. Some are missing. I haven't rendered that much, that I could say what's desperately needed and what not - I only know that competitors are shaking the market with half a million options for 3D programm internal rendering and now are focussing their eforts on making these options usable for the average don't-know-nothing-'bout-computers Designer. Coming to talk about it, Blender's main competitor - Realsoft3D - the programm with the next best bang-for-buck factor - comes with VSL (visual shading language). The most powerfull tool for shaders, procedural textures and all that stuff! A simular, internal Python-API with a good documentation would do Blender good. Along with a better internal rendering OR a simpler interface to free external renderers I call this todays issue #5.
On to Number 6: Animation! Just now the hottest thing since sliced bread amongst all DCCs. I'm specially talking about character animation here. Character Animator costs TONS of money and Softimage with their NLA (non linear animation), IMHO the most powerfull desktop based animation tool out there, costs even more. If Blender just could manage to get it's foot in the door before the battle is over and all claims are staked... That would be just plain great! Talking buisness: Relative IPOs are nice and fine, but that isn't the end of the tale. We need to hopp on to that NLA bandwagon and take the lead before the others catch on! I imagine this: An easy way to handle the IPOs and their vertex keys and the ability to save IPOs and IPOsets seperately and combine them in a mixed fashion and an easy way to tune their relative movements. And a small but powerfull set of vector tools to manipulate them. An extra window type for this - loading, saving, copy-and-pasting IPO-libs, modifying them easyly (maybe in a way that they are made visible in a more distinct fashion, with colored 3D paths in a 3D window maybe) and pluging them together and saving them again, would be absolutely competitive. The people at discreet would start crying and wet their pants! They'd deserve it. :-) A set of preset flocking and herding options would fit in just fine. (yes I know there's a half finished python-plugin - who's using it and can manage?) I forgot to mention loadable and saveable sceletons. And those should be able to become visible garaud and 3D seperately! If Blender is really as object orientated as it implies, this all shouldn't be that difficult to implement.

The next point deserves the magic number: Se7en. The game engine. We all agree that Blender is in the front line here. But as long as nobody can deploy a standalone game this is just plain pointless. An 'exe-maker' and/or plugins for the standard browsers is what Blender needs. Charge a fee for each standalone game distributed - no problem. Everybody would be glad to pay. But this seperate player/exe thing has to be acomplished in order for game-side of Blender to generate revenues in order for NaN/Blender to prosper, in order for Emperor Ton to eventually take over the world (What is thy bidding, master? :-) ). Toolsets for using certain specials of DirectX or the PS2 Gameengine would be great. But unless that player is underway, NEMO is gonna still be the #1 and only "casetool" for games out there. Even though it costs >gasp!< 3000 EUR. #8. My last. A simple and small issue, but never the less somewhat typical for Blender. 99% of the professional users of 3D programms out there use their 3D tool for everyday work. That means little 3D animations or stills are made that have gone through a production process before, and will go through a bigger process after they come out of Cinema, Softimage, 3DSMax, etc.. To be morphed into a flashanimation, a pic, an animated gif or whatever you can think of that is of any use for your standard designers everyday work.
Cinemas success in the everyday area of Multimedia Designers doesn't have it's only origin in it's MacOS 7-9 compatability. It has one simple thing I haven't seen with anything else yet. It just simply can import your standard 2D vector formats. In other words - I Lord Qbertino of the Blenderians, for the last time, demand: B L E N D E R N E E D S A S P L I N E I M P O R T N O W ! ! ! Please!!! I'm begging you on my knees! .eps-vectors, .ai, .fh, even corel draw, make it whatever you wan't but DO IT NOW! If Blender manages this, I promise you i'll have 10 people ditching Cinema and switching to Blender FOR GOOD by the end of summer! Even though they get Cinema with the 'warez' for 'free'.
I've nearly gone insane over this! I'm in a professinoal project and have to install a ripped Cinema just because Blender can't read flat, 2D .dxf's! No matter if one can do 2D vectoring with an imported background pic as a texture and some fiddling in Blender. People like me are used to doing stuff like that with Freehand or Corel Draw. And for good resons to. And no, I'm not going through the fuss of converting my vectorpic into a .ttf character, extruding it in elfont, just so to import it as an 3D .dxf. So please: Make that eps-vector import. A lot of us would be VERY gratefull.

Bottom Line Roundup:
1. UI - just plain rox! Can stay that way.
2. Python as the scripting language - well done!
3. Blender is free - I dig that. Shame lot's of other s don't (yet). We'll make them. That's a promise. ('At last we will have revenge.')
4. Dual Screens - or call it 'blending' into the OS-Setup in general. This needs more work on stability, flexibility and ease of use. Lot's of people i've talked into trying B. report that it crashes on them. Whaaaah!
5. Rendering. An easy to use setup with the external renderers. The fast way: Maybe some kind of out-of-the-box distrubution package with BMRT?? With a Network rendering interface?
6. Animation. Improvement here is crucial! True Object Orientated Non-Linear-Animation (call it Toonla (TM) :-) ). The option to save movements seperately and to plug them in and modify them while previewing a movement in real time. Maybe with some "smoothing-parameters". I get Hash has something like that. And we all know those cool moves the singing Alien makes, don't we? Don't forget the 3D Bones and the opion to garaud-shade them seperately from the true objects. Help's IKAing a whole lot!
7. Game Player and Browser Plugins. I guess im stating the obvious here...
8. Spline import! Right now! Fill in a night shift.
The harsh tone this all has is half fun and half the real world out there. So-called 'professionals' can be so damn ignorant when it comes to inovative software... We need to show them ALL that they're betting on the wrong horse.
Keep up with the good work - we won't let you down! Coming to the end I've got some good news (I don't know if it broke here allready): Markt & Technik, one of the largest IT-related publishers in the german speaking countries is soon gonna release the official Blender 2.0 Guide in german. Did cali mention that allready??
So, I guess that was my first CJ. Go ahead and comment. Oh, and please excuse my lousy english spelling.
cu &
Happy Blending!

Qbertino - member of the communitiy
<<<<< End quote of ancient article

BTW: I hereby demand the title: "Uncrowned King of longest forum post" :-)

Posts: 110
Joined: Wed Oct 16, 2002 6:52 am

Post by Saluk »

Hey I think I actually remember this article. It was interesting back then, and still quite interesting now:)

I think the verse spec is longer but I haven't compared them.

It's too bad emporer ton couldn't take over the world, but maybe with some time and growth, his software baby can:)

All still good points.

Posts: 239
Joined: Mon Oct 14, 2002 8:15 am
Location: Sweden

Post by Jamesk »

Interesting stuff. I must have missed it when you originally posted it though. Aside from some details, it still gives a good idea about what should be done.

Now, where is that native EPS-import? :D

Site Admin
Posts: 350
Joined: Wed Oct 16, 2002 12:13 am

Re: Blenders hard and long way from commercial to OSS code

Post by ton »

Shesis, long posts are becoming a trend! Luckily you had a roundup in the end. :)

> 4. Dual Screens

I rememer Zr doing a test for it just before NaN closed, when we moved to Ghost in Blender (instead of Glut). He got stuck mainly bacause the ghost integration was not finished (especially removing all glut hacks).
But the system was designed to have multiple blende screens in separate windows, so a different display for each window should be possible too.

> 5. Rendering. An easy to use setup with the external renderers.

We all agree on that! Several attempts are being worked at.

> 8. Spline import! Right now! Fill in a night shift.

I think python has it... so! :)

Nice to read it back though, you *could* say we listened to you! :)

Post Reply