The State of Open Source 3D Modeling
gmueckl writes "Since Blender was released as open source in 2002, it has basically owned the open source 3D modeling scene. Its development has seen a massive push by both the community and supporting organizations. However, the program has been showing its age all along and efforts to improve on it have either been blocked or have failed in the past (note the dates). Authors of new modules are forced to jump through hoops to get their work glued onto the basic core, which still dates from the early 90s and has gone almost unchanged since. There are many other active projects out there like Art of illusion, K-3D, and Moonlight|3D. Each of them offers a modern, much saner, more coherent, and more powerful basic architecture and could match Blender in a couple of months' time with some extra manpower. So how come these projects don't get the level of support they deserve? How come developers are still willing to put up with such an arcane code base?"
As much as people may hate Blender, the main advantage of the program is that it is there, and that most things work. Some parts are even great. Personally I happen to like the poly-workflow, which is very fast. The main problem with blender for most users is that it takes a while to learn, but once it's learnt, it has a very effective workflow.
I think that the OP is very optimistic when he sais that it takes only a few months to port everything (and the kitchensink) to another app, that is just impossible, even with open code.
I dont think blender code is that arcane, i know Tom was doing some rewriting, they are aware that the core needs updates and they are doing it, it just needs time. Game engine was coded again with a different engine, render path it hink got updated too.
It's easy to pick on the XML bit (though I don't understand why XML is so awesome it has to be used), but that's a pretty small demerit compared to all the major feature enhancement Blender has attained over the past few years.
l ender-243/
It's earned a fluid simulator. Particle effects have been dramatically improved, yafray integration was a huge improvement for rendering, materials can now be created with a node based system.. the list goes on and on. The feature enhancements that went into the latest point release is worth an essay all on their own:
http://www.blender.org/development/release-logs/b
Blender stays afloat because it's seeing active development and is already a mature platform. People are used to the interface (one that newbies hate, but veterans fall in love with), and it runs on all three of the major operating systems.
I don't think an aging codebase is a critical flaw. Too often people think redesigning the wheel is a panacea for repairing a kludgy system, without realizing that all code projects fall prey to this at some point in their life. Sure we could rewrite Blender.. but to what end? It'd take another 5 years to get where we are now.
There have been huge changes to Blender over time. For example, the physics engine in the game engine was replaced with a much better one. The original poster is apparently wound up about some XML import/export thing, which is minor. You can write Blender import/export filters in Python, and many such filters exist.
Blender has some problems, but converting its files to an XML format isn't one of them.
Well instead of trying to match Blender, maybe it would be a good idea for them do do everything right that Blender does wrong.
But it doesn't matter anyway. Basically, the hype and bullshit surrounding the 3d modeling app market is already so saturated and misinformed, it makes a SNES vs. Genesis debate in the cafeteria in the 6th grade look like a congressional fact finding comittee. Almost anyone involved in 3d modeling as a hobby develops their own ideas about what is good and what is bad for their way of working. Most of the time, Open Source modeling apps fall in the "bad" column.
Actually it is the Vi of the 3D Modeling world; it has small footprint and a marginally steep learning curve, but when you get it (in three or so weeks) you will be amazed at what you can accomplish with relatively little effort.
-rd
your question isn't so much a question as much as it is whinging... maya and lightwave and studiomax are also showing their age based on a mature code base, but consistency in the user experience, incorporating improvements into the base application without jepordizing usability are stilll very important. and just as these applications have improved over the years, so has blender. i haven't seen alot of improvements with AOI...
Blender probably "owns" the open source 3D graphical modeling scene because it's the most complete, full fledged, and the most mature of all the applications out there, with the exception of POVray. aside from blender(combined with yafray), the only other apps i use(and would consider recommending) would be wings3d(currently testing sunflow). typically i'll start with wings, import into blender, and use yafray for rendering. this combo seems to work well, wings is superior to blender in certain types of modelling. i don't think the other apps you mentioned play well with other apps, maybe that's the problem...
i've tried many of the OSS 3D apps out there(including AOI, have not tried k3d or moonlight thou) and the problem was often that the user interface was clumsy, the code was only available on one platform(i.e. moray), or the project was not mature enough for real work.
blender is'nt the easiest 3d app to work with, but then again 3d modelling in and of itself is not an easy task. since this discussion is about 3d modellers, it's important that an artist is able to navigate, switch tools, and move around an application in as smooth and fluid like as possible. it might seem like an oxymoron, but it is possible to do this in wings and blender(i never thought it would be). blender especially is a steep curve application, but once you get to know the most basic commands of edge/vector/face selection, creation and editing of primitives and vertices, things start moving quite well. there is a lot of thought that went into both blender and wings UI to make them easy to use. can you say that about k3d/aoi/moonlight?
you complain about the underlying architecture, but it's not the code that a user is interfacing with, and the interface is what is driving a highly graphical app like blender. it helps when architecture and UI are both well conceived.
does that answer your question(s)?
three can keep a secret, if two are dead - benjamin franklin
Blender isn't well thought out - it's evolved. The user interface is still pretty terrible. Python scripting totally sucks - the interfaces change with every release (often in ways that break existing script), are very poorly documented and yet never seem to keep up with the functionality in the core package. The code base is a terrible mess. People I know who have wished to write significant additions to blender's core have found their work rejected.
But the problem is that it's just barely good enough - such that developers simply don't feel it worth the (not inconsiderable) effort to do something truly world-class to replace it. Artists eventually learn it's weirdnesses.
If blender mysteriously vanished overnight, we'd be in a terrible state for the next year - but what would emerge as a result would be a hundred times better.
Tricky.
www.sjbaker.org
Well, all I can say is that Blender rocks. It has its unique UI, which is fine for me, but maybe instead of thinking about core code, how about making UI derivatives without messing with the functions? As I said, I like the UI but others may not. But what I think that is missing from the open-source scene is something so crucial, I can't do but wonder why it doesn't exist: an OPEN-SOURCE PARAMETRIC 3D MODELLER! Please!!!!! I'm an Industrial Designer and I'm obliged to have Microsuffer Winblowz just because of one single type of program. I wish I could go all OSS, but this is my main brake. So I ask you, Slashdotters! Who's willing to help and start a OSS Parametric Modelling program? (like Solidworks, Alibre, Pro/Engineer, etc.) Thank you for your attention!
I would disagree, you can't sit a grandma down and have her learn 3DS max in a few minutes, nor can you with Maya either. It's just a different interface. With each release more keyboard-only commands are now mapped to menu entries. If you watch "pro" users of 3DS max and Maya you'll notice they use keyboard shortcuts like crazy.
- Each of them: great, there are three projects offering equivalent functionality, each hoping to supplant the current favorite? And which, pray thee, should an experienced developer contribute to? "Any of them"? --- bzzt, wrong answer. You're asking somebody to contribute when there is a 2 in 3 chance the contribution will be dead code when one of these emerges as a favorite? A born-into-money aristorcrat who doesn't have to make his own living can do that; the rest of us have more limited time and can't. Hint: companies pay product managers quite a bit to keep developers from doing wasted work, partly to avoid overhead but partly because wasting a developer's work is the fastest way to kill any enthusiasm. Picking one option (even if it's wrong) is better than indecisiveness. And if you truly think multiple options are the best, then find a way for them to coexist (pluggable rendering cores) instead of killing each other off.
- modern, much saner, more coherent, and more powerful: all of these are in the eye of the beholder. But here's an opportunity to defend yourself: if these new architectures are that much more powerful, it must be possible to implement the blender architecture with them. Which happens to be a sane migration path, instead of the throw-away-anything-old not-invented-here approach of an entirely new project. Blender is open source: fork it and insert the new architecture, instead of griping about how somebody else should do something better. (I know full well this isn't as simple as I'm making it out to sound. But you know full well these new architectures aren't unambiguously better than the old.)
- could match Blender in a couple of months' time: such a confident development-time prediction! Anyone with predictions that solid should be administrator of a project already! Now that I'm done being sarcastic, "a couple of months" is totally unrealistic. Every additional developer needs ~1 month to get up to speed on a new codebase (and understand what Blender does), another X months to implement the new functionality to match Blender, and 2X months to work the bugs out of the new functionality. Wine has been a few months from being usable for general apps for years; Gnome has been a few months and a few developers from being able to replace Windows for years; Windows has been a few months from being bug-free for a decade.
I don't mean to degrade the whole idea of finding something better than Blender. It's a fantastic goal, advances the state-of-the-art, and all sorts of other good things. I do dispute the misrepresentation of the ease with which it can be done: if it were even a tenth that easy, it would already be done.Developers are willing to put up with the arcane code base because (1) it works, (2) it's Good Enough, which means anything newer has to overcome the training / usability barriers associated with switching, and (3) the newer options are not unambiguously "better". Remember: if app Bar (Blender) is already the standard, app Foo (these alternatives) not only has to be better for someone just starting, but also has to be better for an experienced user of Bar.
A witty [sig] proves nothing. --Voltaire
Any modeler/artist worth their salt is using mostly key shortcuts - at least to enable a tool. It's simply too inefficient to use the mouse to perform an action. With there being more and more modeling tools than ever before, it can simply be too cluttered to have everything on screen, which means navigating through various tabs/menus/etc. In modo** and Maya, I'm enabling every tool I use with a click of a key, a mouse gesture, etc. That said, if Blender wants to appeal to more newbie hobbyists, it should have a decent GUI that'll let them get started. (Disclaimer, I haven't used Blender in years, so I'm saying this on what you said about the need to learn keyboard shortcuts)
**I'd like to see a freeware/OSS project take the approach Luxology is taking with modo. First, they baked out the modeler end of the app in the first release. Then in the second major release we got a render engine and texturing/painting tools (and of course refinements and improvements to the modeling end of things). Presumably, in the third major release we'll get animation (and other improvements to modeling and texturing and rendering). I personally like this approach because instead of stretching yourself too thin focusing on everything at once, you start off by getting the basics of each "component" right. This seems to be a result of their Nexus core, which from what I gather is a developmental platform, where they can "bake" out various versions of the program.
WWJD.... for a Klondike bar?
If you use software as a tool in your work, engineering, modeling, etc, you know shortcuts are necessary, even gaming needs shortcuts to be efficient, your not gonna win on a multiplayer starcraft game using only your mouse.
Neo Geo was also a Dutch animation studio. Blender was developed for in-house use at Neo Geo.
WWJD.... for a Klondike bar?
As far as I can tell K3D and Moonlight haven't moved an inch in the last 5 years. They both look like students summer projects to me.
Blender has weedy parts in its codebase, everyone knows that. Any programm this complex and mature has those. But they are being replaced fast and thouroughly by a thriving core team lead by the founder of Blender. Blender runs out of the box on 7 plattforms and has a featureset that closely competes with current topline commercial tools. Try to catch up on that alone 'in a few months' Mr. Smartass. Blender is responisble for the recent price drops in the 3D tool industry alone and when it eventually fully supports Renderman yet some toolmakers are going to have to redo their businessmodel big time.
The usual UI bickering is bogus aswell. Apart from being just as hard to learn as any tool of same capabilities, blenders UI has been comletely OpenGL accelerated from the begining - one of the things it's unique in iirc. Blender's learning curve is steep, as with any high-end 3D tool without a stack of books. But with the amount of material and books available on the web for free nowadays makes this learning curve not nearly as hard as it was 5 years ago. The featureset is breathtaking and has commercial providers such as Newtek struggling to catch up in some areas (notice the recent addition of an improrved node editor to Lightwave 9 - nothing but a response to Blenders node editor). Sidenote: I own a professional licence of LW 8, a commercial licence of Blender (from the NaN days) *and* use Blender since back in the days of 1.8. I haven't updated to LW 9 for the very reason that Blender 2.43, a few little things aside, offers everything professional 3D needs. And then some - an full-blown integrated compositor for instance.
Blender is as mature and developed as any open source project could wish for. As *any* software project could wish for actually. Features and improvement are being added on a regular basis and it's fully backwards compliant with any blender file, and it's professional roots not only show but have become more and more visible.
Bottom line: The submitter of the above article either doesn't know what he is talking about or is a troll. Or both.
We suffer more in our imagination than in reality. - Seneca
My main three complaints, as a new user, were that:
- Mouse gestures suck and should be disabled by default.
- Mouse gestures suck and there should be a WAY to disable them at all.
- The widgets are crude to the point of crying, and it's hard to manipulate things using them or get a bearing from them.
As far as 3d goes, it's very very powerful. As powerful as the commercial apps in most respects. Certainly, unless you're working for Pixar or Blizzard, it has everything you need, and then some. You tend to specialize in 3d work anyway, learning to model machines or humans, or monsters, or being an excellent animator, or kicking butt at textures and/or lighting. You tend to learn one method of modeling as your main method. And you most definitely get picky about which suite you're using. The point is, few people actually use more than the smallest subset of the suite to do their jobs. You don't really need 98% of what a 3D suite is capable of. And so, even though there are a few things you might not have in Blender that you have in Max or Maya, by the time you get to that point where you actually would feel the lack of them, you'll likely already have them. Blender is, after all, actively developed.Honestly, the primary reason Blender doesn't have a larger following in the industry is momentum. Learning a 3D suite is a task comparable to learning another language. Most people don't have the time or will to do that.
For anyone wanting to learn 3D, brace your shoulders and push past the month or two it will take to feel comfortable with Blender. If you don't have what it takes to learn Blender, you're going nowhere in 3D anyway. And you'll find that, whiz-banginess aside, Blender can do what Max can do. And in my opinion, it's faster.
Drop me a line at:
Key ID: 0x54D1D809
gmueckl, who wrote "The State of Open Source 3D Modeling" should have called his rant "Why blender sucks". That he is one of the main developers behind moonlight|3d actually speeks louder than the entire article. This article is soooo obviously nothing more but a rant that it already hurts.
I use blender for 2+ years now and am fairly impressed with what you can achieve with it. Many people claim that blenders UI is crap. Don't really know why. Granted, it is not the usual windows UI. But does this really matter? To actually start being productive with any 3d tool you need a highly configurable ui. And in blender you can configure the ui to exactly show you whatever informations you want. For almost every action you can use shortcuts. This makes it incredibly fast to use. Yes, you have to actually learn them, but this happens whenever you want to achieve something new.
And although I pay my bills by developing software I do not care about flaws in the codebase, ugly architectures and stuff as long as the tool does what is required. And blender does this fairly good.
The development speed of blender is really amazing. Take a look at the new sculpting tools. They are incredible. During this 2+ years of using blender I had only a couple of crashes. And during this time many features were added. I guess that many parts of blender have already been rewritten.
Another really enjoyable part of blender is its community. Take a look at elysiun.com. One of the most supportive and effective communities in the open source world that I know of.
Take a look at blendernation.com, a great source for blender news. There is even a magazine around: blender art magazine. Pretty nice.
Altogether the community around blender is one of the important driving forces behind blender.
Finally, judge the tools by what they have accomplished. Especially look at the art-galleries of the tools:
-k-3d: http://www.k-3d.org/wiki/Still_Gallery
-moonlight|3d: http://www.moonlight3d.eu/forum/
-art of illusion: http://www.artofillusion.org/artgallery
Judge for yourself.
Yt,
Gunnar
Have you actually looked at blender's code? I haven't seen it in about 18 months, but when I did look through it, interested in adding a feature, it turned out to be a complete mess. I haven't read the post of the person you're replying to, but (s)he might have said "It started to outgrow itself", because it's obvious that the code has had many things tacked on wherever it works, rather than through a cyclic (re)design-document-implement-test-release process.
For instance, the feature I was planning to add was video codec support for input (sequencer, textures, etc.) and output (sequencer, rendering). Now, importing/saving video is essentially a process of loading and saving frames, and there were other video APIs already used in blender on other platforms, such as quicktime on OS X, and directshow (or whatever it's actually using) on Windows. In well-designed code, it would basically be a matter of finding the video modules, copying one, cutting out the quicktime/dshow stuff from the video setup/save frame/load frame methods, and implementing the equivalent methods using the gstreamer API instead. Obviously, it's never going to be quite THAT simple, but it can and should be close.
I looked into the code for doing this, and it was a total mess: the code to output one video format was spread over many files, and the UI stuff (output file type selection, etc.) was spread over some more.
The UI stuff should have been easy, too. If you look at the plugin system of something like 3D Studio Max (or, indeed, K-3D), it's obvious that plugins can create their own "property pages", which just hook into the interface, presenting any new options that plugin might want to offer the user. In blender, I knew this wasn't the case (as plugins tended to have horrible, inconsistent UIs). That was understandable though, as work was actively going on to improve the UI stuff. Note that this still hasn't completed, however: blender 5 is going to work on this again, after blender 3 was supposed to be focused on sorting it out! I've no doubt that the blender coders work hard -- some of the improvements they make in short turnaround times is amazing. BUT, this either means that the code is a mess because things like UI API improvements take so long, or that the code is a mess because lots of things are done quickly without long-term design considerations.
Speaking architecturally, I, for one, would be very happy to see K-3D win out over blender. For the moment though, blender has the huge advantage --- actually being nice to model in (at least up to a certain complexity level, and if you don't need procedural modelling too much). Everything else though... plugin support, material editing, rendering quality, distributed rendering support, video IO, integration with other apps, basic interface usability and discoverability, is seriously hampered by the code, imho.