The State of Open Source 3D Modeling 267
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?"
It's there, and it works (Score:5, Insightful)
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.
Rewriting (Score:3, Insightful)
Showing age? (Score:5, Insightful)
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.
Blender changes over time (Score:5, Insightful)
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.
Doesn't matter (Score:3, Insightful)
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.
Re:It's obvious (Score:5, Insightful)
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.
you question isn't so much a question... (Score:4, Insightful)
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)?
It's a pain. (Score:3, Insightful)
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.
How about the state of 3D Parametric Modelling? (Score:3, Insightful)
Re:Rewriting (Score:2, Insightful)
Re:Blender and stupid hot keys (Score:3, Insightful)
could match in a couple of months' time? (Score:5, Insightful)
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.
Re:Blender and stupid hot keys (Score:5, Insightful)
**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.
Re:Blender and stupid hot keys (Score:2, Insightful)
Re:It's there, and it works (Score:3, Insightful)
It does sound like some Pollyanna that either hasn't coded or hasn't tried coding 3D software. 3D programming on that level is HARD.
Heck, I even tried making a 2D CAD program once. The basic math was relatively easy but the UI and object database handling is a bitch. 3D is is a lot worse in many respects, the main advantage that 3D has is that it's more glamorous but I don't know if that makes up for the difficulty.
Re:It's there, and it works (Score:4, Insightful)
Re:Rewriting (Score:5, Insightful)
In what manner?
'Blender still suffers from that'
In what way does blender suffer?
'have a solid design which is able to grow'
In what way are the designs solid? What about the design of blender makes it less solid? Specifically what aspect of blender is unable to grow and what is the difference in these other applications that makes them able to grow?
'applications like Maya, Softimage and Houdini have demonstrated that'
In what manner?
'Comparing blender to all of those on a design level makes blender stand out as the toy.'
In what fashion?
Do you have any constructive criticism or is this entire post just a troll? Can you name any specific features, design constructs, or methods that are actually superior in these applications or do you just prefer in the interface in the commercial applications you learned in?
Re:Professional roots (Score:3, Insightful)
Re:Rewriting (Score:3, Insightful)
Re:It's there, and it works (Score:3, Insightful)
Lack of ngons is a serious workflow deficiency and something that forces one to kludge around when building models. No point stating quad-only models are better anyway, supporting ngons isn't about that. Having ngons while you model speeds up the workflow when you don't have to work around them and can leave them in temporarily.
Apparently work is done to introduce a new mesh type and tools that support ngons. Just pointing out that right now blender's workflow is rather restricting.
The submitter is a troll (Score:5, Insightful)
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.
Re:It's there, and it works (Score:4, Insightful)
People like to bitch about the interface -- yes, it is confusing at first. But you have to use it for more than a few hours. Do the blender tutorial. After playing with blender, I took a class in 3dsmax -- seriously, once you learn the keystrokes for blender, you never want to go back. In this, it's comparable to vi or emacs.
Most likely, the OP got his nose bent out of joint because they wouldn't switch over to XML, so he decided to slander the project on slashdot.
Re:It's there, and it works (Score:5, Insightful)
Pretty much every developer that has joined Blender has spent some time looking over the codebases of the other opensource 3D applications. Your claim of a month is absolutely ridiculous - even a year would be an insane time line. At a minimum you are looking at a requiring a similar sized developer base as Blender at least 3 years of full time development before any of the other 3D apps can even come close to Blenders functionality as of right now.
Here is a very brief list of what you need to approach the basic functionality that Blender has
Modeling tools - asside from Blender the only half reasonable polygon modeling tool available is Wings3D(which is written in Erlang). In addition to a strong core of standard polygon modeling tools Blender also has sculpt modeling, curve modeling, metaball modeling, NURBS, etc.
UV Unwrapping - wings has basic UV unwrapping - Blenders are considered one of the best implementations in the 3D industry. As far as I'm aware all of the apps you mention have at best very basic tools.
Texturing - Blender has full node based materials and texturing; Blender has 3D painting and texturing tools. To my knowledge none of the apps you propose have either of those features.
Basic animation - you need good rigging and skinning tools for character animation. You need cage deformation, hooks, a driver system etc. I think AOI has okay rigging but other than that?
Simulation - physics, particles, fluids, crowds, hair. Presumably some of the apps you list have very basic collision integrated? Some also might have very basic particles. The difference between where they are at, and where they would need to be to match Blenders current capabilities is tremendous.
Compositing - not crucial for a 3D application to have - but this is a powerful feature of Blender having an integrated compositor in its rendering pipeline.
Rendering - do any of the projects you list have multipass rendering even?
Scripting - Blenders API has been refactored a few times, this has caused some pain among scripters, but the API has been steadily maturing and is quite large and powerful.
Exporters and Importers - how many and how mature are exporters for any of your suggested programs? A fairly complete and mature exporter or importer can in itself represent numerous man years of effort.
Sequencer - again not crucial to meet the definition of a standard 3D animation suite - but again a powerful feature that is part of Blender.
Logic nodes and game engine - yet another feature that wouldn't be a strict requirement to become a reasonable competitor in the 3D animation suite space, but another tool that is an important part of Blender for part of our user base.
I get the impression that you have absolutely no idea how much time and effort it would take to become a serious competitor as a 3D animation suite. No disrespect but Moonlight 3D isn't even 1% of the way there, and yet in your estimation it would only take a month to 'catch up'.
LetterRip
Re:First Post (Score:5, Insightful)
My main three complaints, as a new user, were that:
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.
Re:It's there, and it works (Score:3, Insightful)
And may I say: The sequencer is one of the BEST parts of blender. Nothing beats whipping up a short presentation movie with the blender sequencer. It is quite intuitive for a blender user, since it uses the same key and mouse mappings. We use it all the time when we want to stitch together some clips.
Trolling for points (Score:1, Insightful)
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 [slashdot.org]. One of the most supportive and effective communities in the open source world that I know of.
Take a look at blendernation.com [slashdot.org], 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 [k-3d.org]
-moonlight|3d: http://www.moonlight3d.eu/forum/ [moonlight3d.eu]
-art of illusion: http://www.artofillusion.org/artgallery [artofillusion.org]
Judge for yourself.
Yt,
Gunnar
Blender code was/is a mess. K-3D++ (Score:3, Insightful)
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.