SIGGraph and Open Source
There are plenty of examples of open source and the graphics community getting along grandly: Gimp and CinePaint (aka FilmGimp), ILM's OpenEXR, and projects like Open Scene Graph. Linux, in particular, has made spectacular inroads: nearly everybody uses it for rendering, and many (most?) use it as their desktop OS of choice. In the RenderMan user's group (I'll get into RenderMan more in a minute), for example, somebody asked how many people used Linux as their main OS. Plenty of hands, and some approving chuckles all around. Mac OS X? A few hands, and woots. Windows? No hands at all -- and moreover, an handful of boos, followed by everybody cracking up as they realized the whole community was abandoning Microsoft wholesale.
But then there's the other side. All the major visual effects and animation studios -- ILM, Pixar, Dreamworks, Digital Domain, Blue Sky, Disney, and so on -- have a team of programmers in-house. Five, ten, two dozen, or more. They're the ones that'll write the software that does special rendering algorithms for Shrek 2, or an animation control system for Mr. Incredible, or produce massive crowd simulators for Lord of the Rings. Things that commercial software doesn't quite do -- or that nobody else has tried to do, or even thought of. Things they need to do just so. Things they need to do now.
Everybody has a ton of custom software written -- often good software, with flexible frameworks and clever hacks. Moreover, they don't want to rely any more than necessary on commercial software, because if ILM finds a bug in Maya that holds them up or slows them down, they best they can do is pay Alias to fix it fast (i.e. weeks) and then have hundreds of animators waste thousands of hours time working around it for weeks. And worse, if Digital Domain buys Alias and decides they'll keep new versions of Maya to themselves, ILM is simply screwed, in a big way. If they want to get a particular feature in Maya, and a plugin won't cut it? Well, that's even harder -- and involves more money and more time.
So ILM writes their own stuff whenever they have to, and whenever they can. And Digital Domain writes their own stuff. And Dreamworks writes their own stuff. And Disney writes their own stuff.
And most of it is all the same stuff. Fluid dynamics? Hair? Subsurface scattering? Muscle-and-skin systems? Crowd control? Dozens of topics -- and every studio pretty much has pretty similar, rather redundant code to do 'em all.
These studios aren't in the business of writing software, they're in the business of making movies. So why are they spending their time and money writing software? Because they have to; it's a Necessary Evil.
So, what if they all worked on Open Source stuff instead? Look at what I just wrote. Every word is a reason to go Open Source. No drawbacks, all upside: no lock-in, you can fix stuff, you can add stuff, you don't have to wait on anybody else, and plus, you can do all this while also using what others have written.
The knee-jerk reaction that may be some executives' first objection: our code is a strategic advantage, giving it away would be throwing away money. If we can do hair and our competitors can't, we'll make better films then they can (and, if it's a visual effects studio, we'll win contracts based on that unique ability).
Bull honkus. If your competitors need hair, they'll write hair software, no problem. Another quote from the Pixar RenderMan user's group, this one by a RenderMan developer (paraphrased): "this is based on the subsurface scattering papers from a couple years ago. Everybody does this, based on those papers." Nope, I don't see strategic advantage there: I see waste.
It is, as they say, a win-win scenario; the studios contribute their code to Open Source projects, and everybody helps make that code better. ILM started it in a small way, with OpenEXR, and it worked: OpenEXR is *the* format for high-dynamic-range images, no questions asked. Did it benefit ILM? You betcha: major packages everywhere (Photoshop, RenderMan, etc) either import/export OpenEXR now, or will soon. Pixar even contributed new compression code.
So, a great scenario, and proof that it works. Why hasn't it happened in a bigger way yet? Fear of the unknown. But listen close, and you'll hear a flood coming that could change the landscape -- and it's hard to divert a flood.
That leaves only one question: how will it start? Well, it could begin with open source projects becoming valuable to studios, as started happening with Gimp (though here I'm talking more about advanced 3D animation, simulation, and rendering; Blender's great for what it does, but medium-to-large studios aren't its intended audience; it's not going to displace Maya any time soon, because it doesn't offer anything that Maya lacks as far as the studios are concerned). Or it could start with a studio making a bunch of their custom in-house software Open Source (like ILM did with OpenEXR). Either way, it's up to us as a community -- either to write the software or to sell the concept.
I'd suggest that a great place for all this to start would be with Pixar's PRMan (PhotoRealistic RenderMan, these days often called just RenderMan). And note I say this as a shareholder. Selling RenderMan and related software accounts for less than 5% of Pixar's revenue; the real reason -- the *only* business reason -- they still develop it is for the other 95% of the company to use. If open-sourcing it would bring in collaboration and improvements that would make them just 5% more efficient in generating movie revenue, doesn't that justify the decision right there? And of course that's not counting those who would still pay for service contracts, or the reduction in development costs that could come from the rest of the community helping with their R&D (the budget for which, BTW, surpasses their software revenue). RenderMan has always been a product ahead of its time, and that's why -- despite Pixar's belligerent and hostile use of patents and close-held IP -- it's still the golden standard in this industry. The RenderMan protocol and API was intended fifteen years ago to be a renderer-independent standard, the PostScript of the 3D world. That dream died because of Pixar's unwillingness to release IP: it became difficult or impossible for others to implement that standard officially, or at all, because Pixar grasped the it so tightly (case in point, ExLuna: their lawyers summarily killed what was the best chance in years of having a RenderMan-compliant renderer with new and different functionality, complementary to PRMan). But the renderer -- PRMan -- doesn't have to die through the same mistake, even in the face of an ever-shrinking market share and competitors with the advanced global illumination algorithms PRMan lacks.
But that's not to say Pixar is the only -- or even the best or most likely -- option here. They most certainly don't hold all the cards. So, don't sit back and wait for Pixar or another studio to start the ball rolling: we need to give it a push.
Pretty colors
It's great to see movie houses coming to the realization that sharing development tasks helps everyone; I hope people in other industries come to this realization too.
I've worked at several companies now where I saw a tremendous amount of effort invested in developing custom, proprietary solutions to relatively common problems outside the company's primary business domain. (In some cases, this meant duplicating the exact functionality of existing free software.) Since ten programmers can't outdo a thousand, inevitably the result was buggy, half-baked work that the rest of us employees had to limp along with, or find workarounds for.
Keep the software that drives your core business proprietary, if you like; but why not co-operate on all the non-core stuff that merely keeps the business going? It just makes sense.
Wow! 30 times brighter and 10 times darker than a normal display. Anybody got a screen shot?
This one guy who wrote the article is speculating that Open Source will be big in the film industry. No big movie houses. Not Pixar. Just this guy SeanCier. Who the hell is he?
This is just an opinion piece, not news.
There was a panel about the role of custom software development in VFX houses. Though it seems like a good idea on the surface, none of the four big houses represented seemed particularly keen to move towards open source. Most of reasons come down to competition - sure they are all building the same things, but the differences between how well and rapidly they build them determine whether they win contracts over their competitors. Simple business, just as all the big competing auto manufacturers are building the same type of components, but they're not rushing to share their designs...
And the benefits are not as clear as it would seem - the best case seems to be OpenEXR, but the ILM guy was disappointed by the lack of community contributions, that most of the work on the new version had to come from within ILM, and the initial packaging work had cost them more than expected.
Also mentioned were the risks associated by opening their source, particularly the patent issues. I'm sure SCO has persuaded a few companies not to open sources just in case they get involved in that kind of opportunistic farce.
So, in some idealistic collaborative future, a lot could be done with open source, but in the real competitive one, it will be slow progress...
As a student, I use Pixar's tools - Renderman Artist Tools 6.0 and Renderman Pro Server 11.5.3, plugged into Maya 5.0.1.
Why did I start using these tools? Maya's Fur renderer was (and still is) a complete piece of shit. No offense to anyone who's actually gotten it to work well, but... damn. If you've ever used it, you'll know what I'm talking about, specifically in regards to the lighting, and trying to match it to the rest of your scene. And yes, I've tried Maya 6 rendering out Fur in Mental Ray - something about trying to allocate several gigs of RAM just for the Fur, where PRMan would use 800 MB for the whole scene, turned me off from that. And RAT includes a plugin to build Fur out of RiCurves primitives. Perfect match, right? Of course.
Well, it was lacking a couple of features. Specifically, Attractor Influence Start and Influence End (specifying how far along the length of each hair dynamic attractors would affect the curve direction). Thankfully, Pixar decided to throw in the code for the mtorFurProcedural DSO with the toolkit. So I added the 6 (or so) lines of code needed to implement those features, recompiled, and it now works perfectly, exactly the way I'd expect it to.
And then the shading model being used wasn't giving me the results I needed. I took a look at a paper (from a previous SIGGRAPH) on the fur shading used in Stuart Little, specifically in regards to mixing the underlying surface's normal with the hair normal. Sounds like a good idea, think I'll try that. Oops, the plugin doesn't pass that information to the shader. 10 lines of code later - a new shader variable, surface_normal, has been added. And after modifying a shader to take advantage of that (loosely based on the example code in the paper), the shading looks infinitely better than anything I EVER got out of Maya. Score another point for having the source.
Unfortunately, there was also another bug, this time in the mtor_maya5 plugin (which, being the bulk of the product, is NOT open source). I had to reimplement the command that the mtorUltraFur RIBGen plugin was using to dump the surface information (for each uv coord: x, y, z, normal vector, u vector, v vector), because its handling of trimmed NURBS surfaces was broken. That was irritating, but made possible because I had the source to the plugin and was able to change the command that it was calling (to my own plugin's name). (Though it would've been easier if I had the source to the mtor_maya5 plugin as well...)
So, because I got the source with the tools, I was able to very quickly fix the problems that showed up, and tune them to do exactly what I needed them to do.
Every cloud has a silver lining (except for the mushroom shaped ones, which have a lining of Iridium & Strontium 90)
It was an interesting Siggraph for display technology.
That high-dynamic range monitor was far and away the coolest innovation (it's contrast range is like, 300 times higher than ordinary monitors. When they set it to maximum brightness it actually takes your eyes a moment or two to adapt when you go from a bright part of an image to a dark part).
And modern graphics cards actually have the precision to make a huge gamut like that useful. Hopefully they'll take off and we'll see games start to use it. It really made all of the other monitors look dim and washed out.
There were a bunch of different naked eye 3D displays. Nothing fantastic, but still pretty cool, although headache inducing if over-indulged in. I'm guessing that they'll be used for trade shows...
Another group was showing a projection system with 6 primary colors.
large color gamut display
They ganged up two sets of projectors. One with straight up RGB, and another with CMY (I think!), and by overlaying the two they were able to get a much wider color gamut than traditional RGB monitors. It was very hip, but I have trouble imagining it ever leaving a research lab.
There was also some cool stuff done by registering lots of projectors together to get very large, very high resolution displays, without any visible seams. It would make for a cool game room (assuming that you had a machine that could drive a 4000 X 12000 pixel display!).
Still the high dynamic range monitor is the one that I'm lusting after...
Pixar has made a pretty good amount of money off the sale of Renderman. Why give up that revenue stream?
Then we get into the issue of patents. A lot of code these companies produce includes patented algorithms which would disqualify the code from even being released under a lot of Open Source licenses to begin with, not to mention the fact that the companies don't want anyone else using these algorithms anyway...
I wouldn't hold my breath waiting for big OSS projects to come out of any of these studios...
As somebody who works in 3D graphics, there are so many things wrong with this I don't even know where to start.
You just don't get it.
Damn zealots are boring.
I'll take one example:
"case in point, ExLuna: their lawyers summarily killed what was the best chance in years of having a RenderMan"
Um - no. PIXAR killed ExLuna. They sued them into the ground. Then even took the nasty step of not only suing the company, but suing the founder (Larry Gritz) and others. Hello - software patents? And even though ExLuna claimed they weren't violating them, it was easier to settle than fight with somebody who could/did crush them like a bug.
(FYI - ILM considers OpenEXR to be a big failure. They've gotten pretty much zero contributions back from anybody. It's only take take take. It still helps ILM because they're getting most other packages to implement the format so they can make their pipeline more unified, but whether that was more or less effort that open sourcing the package in the first place is subject to debate).
I'm not even going to refute the rest of your points because it's a waste of time. You don't get it.
It's only 3 times brighter.
A few of us from Frantic Films Software wrote up summary of SIGGRAPH 2004 for CgChannel this past Thursday. It touches on many of the same topics in a slightly different light -- although not at all on open source in the industry.
I understand that open source is a hard sell for VFX companies. Most specifically while at SIGGRAPH I heard Steve Sullivan from ILM speak (at a discussion panel) about how even though they have had many users of OpenEXR and wide community adoption of the technology they have had very few people from other VFX companies contribute back to its future development. Steve said that ILM pretty much had to write version 2.0 of OpenEXR by themselves. Thus in effect they have had the problem of many people free riding on their large effort.
Thus for us, while we do plan on releasing smaller tools open source (similar to some of my past open source projects: ExoEngine and Exocortex.DSP), ILM's experience with a large costly open source endeavor scares me away from trying this with a larger project -- at least for the time being.
-ben
From the link you provide:
Look, I know it's cool to bash Microsoft and call them "M$" and whatnot, but not just any paper can get accepted to SIGGRAPH. It has to have some merit -- they have very high standards. No papers fly into the SIGGRAPH/SIGCOMM preceedings based on vapor and FUD alone.
Furthermore, Microsoft (in particular, MS Research in Beijing) has been doing some excellent work in graphics technology, and the academic institutions that usually make up the bulk of the research presented aren't afraid to admit it:
"MS Research is by far the biggest contributor to graphics in the corporate world. It's a powerhouse" - Paul Debevec, USC Institute for Creative Technologies
"They're really doing first class research." - Victor Zue, MIT CSAIL
Technology Review Magazine has a good look at the advancements of the MS Beijing lab in its June 2004 issue.
Look, I'm no fan of MS either, but please... In the case where they actually do innovate, do research, give credit where credit is due? Double standards help nobody.
- sm
then again, when everything only has to be written once, its a lot harder to find someone to pay you to write anything. this is unfortunate for those of us who have no problem producing free software, but have slightly less enlightened landlords, loan officers, and grocers.
Well, mostly right. Larry Gritz did write BMRT, the Blue Moon Rendering Tools, and he did go to Pixar and was one of the leading people on the RenderMan team for quite a few years.
He left to form ExLuna, and ExLuna was then bought by Nvidia. At Nvidia, Gritz and the rest of his team are behind the new Gelato hardware-assisted high-quality rendering product. It's pretty cool. [pun reluctantly admitted to]
It's all a very long and interesting story, that unfortunately will not fit within the margin here.
Thad Beier
I love Mondays. On a Monday, anything is possible.
The best bet is to get a group of people together and create their own open source version of it.
Pixie,
Aqsis,
jrman,
et al.
Your hybrid is not saving the environment. Its purpose is to make you feel good about buying something.
Bull honkus. If your competitors need hair, they'll write hair software, no problem."
First of all, let me address the "no problem" part of that -- it's not that easy, bub. I've worked in the industry for over a decade and these things can't just be whipped up. It takes years to perfect systems like hair, crowds, water, or fire -- even a basic lighting pipeline and tool can years to get working nicely.
Granted, knowledge trickles from place to place, either by people moving around or by publishing papers (mostly the former). But whipping up a whole new fluid dynamics simulator overnight.. it just doesn't work that way, even when you know what you're doing.
And there is competitive advantage to these systems, no bull. Maybe not for Pixar, since they control their creative product from end to end, but definitely for companies that bid for work. The company that has developed the most streamlined system for doing a particular kind of effect often gets those jobs. When it comes down to bidding, the company with the most efficient existing pipeline will win. Someone who has to develop it from scratch often won't. Why do you think R+H has gotten EVERY talking animal job since "Babe"? It's not just the talent, it's the process, tools and pipeline. Giving away those three in open source is essentially giving away a market. One of your artists, who you've trained on the toolset, could easily start a new company and take away your bread and butter.
And why are you using OpenEXR as the proof? OpenEXR is a file format that ILM wants mainstream developers to support. It's not Yoda's cloth simulator. It's not the water shader from "Perfect Storm". There's nothing to lose by releasing OpenEXR. There's a ton to lose by releasing my other examples.
Finally, let me just say that the Linux transition has not been easy. There is currently no good solution out there to replace SGI's hole. Linux has zero support from mainstream apps like Photoshop, Quicktime, etc. -- and even SGI had those for a time. And to go down the route of Mac is kinda like joining up with another SGI... a niche player.
In principle, I see what you're saying.. but in the end it is a business. If every business gave away everything they built, that would be called communism. That just ain't hollywood's bag, baby.