Rendering Shrek@Home?
JimCricket writes "There's an interesting piece at Download Aborted about using distributed computing (a la SETI@Home, Grid.org, etc.) in the film industry. With the recent release of Shrek 2, which required a massive amount of CPU time to complete, one must wonder why the film industry doesn't solicit help from their fans. I'd gladly trade some spare CPU time in exchange for the coolness of seeing a few frames of Shrek 3 rendered on my screensaver!"
Security issues would be a concern I'm sure. There's plenty of hackers who'd see no harm in, for example, extracting a number of images from around the world and sticthing a trailer, etc. And of course, rendering is a "trial-and-error" process - would they want people to have access to broken scenes? Or deleted scenes? Speculation would seriously dampen their ability to control marketing and release info. On the technical side, farms are reliable and predictable. Who can figure out how many fans will keep their computers up tonight for the critical preview tomorrow? What about the decline of interest after first little while? Distributed computing of this sort isn't well suited for commercial projects with fixed schedules. Not that I don't think it'd be COOL... I just don't think it'll happen :-/
- To err is human; but to really screw up, you need a computer
This is a great idea... I wonder if you could get a section of the frame(s) you (helped) to render...
Quidquid latine dictum sit, altum sonatur.
If you can see it you can steal it. Think the Studios want to distribute their incomplete movie all over the internet?!
Don't animators already insert single-frame porn, etc into these things?
Can you imagine how quickly the client software would get hacked, and how crappy the movie resulting from nothing but single-frame porn shots would be, especially to photosensitive epileptics?
I wonder if that would be considered pirating by the MPAA. Smart people out there would figure out a way to "download" the movie from the frame generated. Then there would be no reason to see it in the theater. Just playing the devils advocate. Personally I think it would be REALLY cool :)
Easy: Pixar and Dreamworks have both developped highly proprietary rendering technology. They're not about to just give copies to everyone who wants one. Even if the renderer itself weren't reverse-engineered, which isn't beyond the realm of possibility, it would likely be far easier to decipher the protocol used and voila, a functioning copy of [Pixar|Dreamworks]'s renderer.
Lobotomizing it to the point where this wouldn't be useful would probably make it useless for distributing the workload as well.
Surely this would be a bit difficult to co-ordinate. You'd need someone checking every single frame of information that was returned, just to make sure there were no 'Tyler Durden' style additions to the movie!
How would the legal aspect work out? Seems like you'd have to sign a fairly strict license saying the movie studio still owns what your computer rendered, copyright, etc.
Very cool idea nonetheless.
Each of you can help in our quest for the Green Men that are in the heads of our animators and drafters.
Just like SETI@Home, but this instead of searching, we're rendering. Results you can see!
This is a great idea! You could even have a part of the credits that says a website you could go to to see who helped with the rendering, or even put a special thanks section on the DVD that says who rendered what.
I'll set up a cluster of old Pentium 200MMX's and put 128MB of ram on them... they'll be rockin! When people see my garage full of cables and ancient hardware and ask "WTF are you doing with all this crap?" I'll be able to say "rendering Shrek 3".
Distributed computing for rendering a movie? I think they have enough hardware problems without getting the worm infected masses into the mix.
Nobodies Prefect
Tidbits for Techs Technology Blog
The film industry can afford it so...
Why would they want to do the distributed??? They are using 10Gbs etho and blow your mind away servers to render at amazingly high rates. Probubally several times faster than something like the SETI network could imagine.
And hell, those sysadmins have the most owerful systems in the world. Who would give that up? They even get whole new systems every couple years.
Evolution or ID?
How many people would insert their tag into the frame before it was sent back? They'd need some kind of encryption to prevent user tampering.
Nice to see you can advertise your NEW BLOG on slashdot...
how much did it cost?
Films and other large productions are tightly scheduled, with costs against these schedules mapped out months in advance. I can't think of a producer who would count on an essentially unschedulable resource as a vital part of their production pipeline, regardless of its economy.
That said, I could totally see a use for a 'render pool' catering to independent filmmakers, students, and nonprofits for whom cheap is more important than timely.
Marc Siry || interactive media professional, motorcycle enthusiast ||
In a world without lawyers and assholes, this would be wonderful. A whole movie could be rendered in a few short hours (double or triple checked, of course) if the planet was your farm.
But alas, reality sets in and one must realize how this will never ever ever ever work.
Ever.
It'll never happen in the real world. It'd probably be very underisable for an studio to have any part of their movie available to the public before they say its time. The other issue is in the licensing issues for whatever rendering tool they're using...
Within 24 hours of the client coming out, someone out there will have a hacked client which sends the results to their own private server, thereby allowing them to compile their own partial copy of the movie. The more computers they commandeer with their client, the more complete their own private copy will be.
Ya, this would work.
Feed the need: Digitaladdiction.net
The problem with trying to help render frames is that your system needs to have the data to do it (3D objects, textures, etc.)- not to mention the renderer. Companies wouldn't take kindly to sending off their IP data (esp. custom 3D models/textures/shaders) to the masses to be hacked. Having people get a hold of the "official" Shrek models and textures for example would be a bad thing.
Do you really want the MPAA to run programs on your computer?
No one has seen what you have seen, and until that happens, we're all going to think that you're nuts. - Jack O'Neil
But they could tell everyone they were, just have a screen saver that pegs the CPU, tells you that you've rendered X frames, and displays a cool screensaver from the movie! :)
Great PR, no loss of technology, lots of pissed off fans, once they realize the truth!
Agile Artisans
There's a difference between this and other distributed computing projects. Other DC projects have a "good of mankind" kind of goal to them, and are unlikely to be targeted maliciously. A commercial project like rendering a cartoon would have to be extra careful in regards to security. While crackers may feel it is wrong to disrupt or otherwise harm people trying to find a cure for cancer, they may find it funny to distort a rendered picture in a cartoon.
I'm thinking something along the lines of Tyler Durden here...
"No one likes working in a hamster wheel, and your shop smells of cedar shavings from here." - TaleSpinner
As if there aren't enough "hidden" messages in animated movies these days. It would only take one guy to break the system, and suddenly messages like "CmdrTaco pwnz!" would flash up in random scenes all throughout new movies.
Or better yet, advertisements for the World's Smallest Camera!
<insert witty linux comment here>
I wonder if you could get a section of the frame(s) you (helped) to render...
/.ers would combine their powers and probubally have a lot of the movie weeks before it was released.
Evolution or ID?
I can see it now, people fighting over who gets to render the next Hale Berry topless scene. Distributed computing should not be tarnished by such drivelry.
The main reason they don't employ this technique is that their own 'render-farms' are a known quantity; they can, with reasonable accuracy, calculate how long a given scene will take to render, whereas with public distributed computing this calculation is not possible.
There are many variables in distributed public computing such as:
*Different CPU capabilities.
*Different OS capabilities
*High/Low use Systems
*People's 'uptime'
*Users leaving the project before its completion etc.
Another risk is that another movie-house could start a production which everyone sees as 'cooler' and your entire userbase decides to up-sticks and render for them instead.
Ripping an new rectum in the fabric of spacetime.
I would expect that this is would not be practical simply from the Legal standpoint.
Can you imagine if the frame-shots got out to the Net? The company would now "lose control" over "their product". This would be a can of worms that would not simply go quietly into that good night.
I have a theory that the truth is never told during the nine-to-five hours. -- Hunter S. Thompson
A scene can be a pretty large and complicated piece of data, although I suppose it might be comparable to SETI@Home data. And once you ship the whole scene out, there's the risk that someone could capture it and start rendering it from every angle to get their own private sneak preview. And then the return image is also a pretty large bit of data. So, while there is no inter-node communication which makes this a good distributed problem, the node-server communication is still pretty intense. GigE in your render farm is still the way to go.
Start Running Better Polls
I wonder how that would work out with plot spoilers and the l like. Presumably, people who lend their CPU power for this would go to online forums where they would discuss their experiences, and at some point someone might have the idea of trying to piece bits of the film together independently of the movie studio.
Or maybe my computer just happens to render the climactic scene in the movie, and I tell my buddies in Slashdot or wherever.
The perfect sig is a lot like silence, only louder
I can see this work out if they apply some serious security mechanism, to prevent people from posting all the results on 1 single site to get sneak previews, and to make sure that malicious people aren't sending data back with some hidden 'messages' embedded in the background (but I guess they could have more than 1 machine render the same scene, and compared i.e. the md5 hashes) and such.
...
On the other hand, I can also see why this won't work, as this would be a huge technical support nightmare, the potential security issues, more overhead staff wise in order to deal with incoming results etc
Just activate that webcam on top of the monitor, pointed at the user. You're going to see plenty of Shrek's at home.
Don't blame Durga. I voted for Centauri.
As with the many reasons mentioned already, another one would be bandwidth. An uncompressed frame is pretty big, especially if several are sent out at once.
I think it would take more resources and time to maintain the project rather than just having a render farm do it.
I don't think this is very likely to happen. Sure, SETI, distributed.net, and the like... they're great. You've got a small amount of data flowing each direction. With a movie, though, you would need a high-speed connection to the 'net to upload the results. Contrary to popular belief, not everyone in the world (or country, even) is using broadband. Plus, developers would probabally not be too happy if someone would somehow get a hold of the ending of a movie and post spoilers all over the internet. I'm not saying this is isn't happening already, I just think it would be easier if producers tried to distribute the load of rendering down to the consumer.
Who'd be the first to hack the client and return frames containing porn snippits like Tyler did in Fight Club?
:)
C'mon, you know you'd be tempted
Mine! Mine! You filthy thieves!! All you want is to get your hands on frames from MY movie and then you'll mix it with porn, put it on P2P networks and use the proceeds to fund terrorism!
It's my movie! MINE! You want a screensaver -- well, pay in DOLLARS for it, you dirty pirate (* by clicking here you agree that your credit card will be automatically charged $0.99 each time your screensaver kicks in)! And note that you are licensed to use MINE screensaver on just machine by just one user and that our DRM system will make sure of that (* fingerprint reader, purchased separately required for system activation and use)!
Thieves, all of you are thieves! Hah, give them movie frames to render... What, you think me stupid?
Kaa
Kaa's Law: In any sufficiently large group of people most are idiots.
This is not such a good idea, and prone to mischievous hackers. Speak up now unless you are open to the idea of seeing Goatse get a generous amount of screen time in "Shrek 3".
Don't blame Durga. I voted for Centauri.
or perhaps this Article was just another chance for hollywood to promote their crap movie's to a large audience again ?
I heard that they were already doing it... the rendering software gets back-door installed alongside Gator or Kazaa. It's mentioned in the part of the EULA that's written backwards in Pig-Esperanto.
You are in error. No-one is screaming. Thank you for your cooperation.
A nice, big, cock...
ala Fight Club
How cool would it be to see them allocate THEIR distributed system to projects like SETI, etc. Even though I'm sure there are other projects being worked on, one would imagine the system is pretty dormant after a release.
There are a lot of responses about the anonymous public stealing images, movies, code, etc... What about using the distribution technology only inside the company? How many computers does Pixar have - including every single PC on the business side? Would there be a benefit in distributing calculations over all the PCs in the company in the manner that other distribution algorithms use (like the SETI@Home example)? In this scenario, they may get some extra number crunching for little cost.
The previous comment is purposely vague and generalized, but all of the facts are completely true.
Each client must have:
Some shit hot rendering software that probably won't be worth running on joe computer.
Enough[shit loads of] information about the scene to render a frame.
Yeh, great idea, just give me a copy of Maya and a few complete models and textures from Shrek 3 and I'll buy a nice fat pc to render it all on.
thank God the internet isn't a human right.
I can only guess that for the cost of supplying free movie passes to 1 million people (ultra unreal estimate, I'm sure) who helped render the movie, the studios could buy several clusters to do it for them. For the next movie, the cost is negligible since they already own the cluster.
How much spontaneous imagery might find its way into individual frames of a entire publicly rendered movie?
Seeing bad movies only encourages them. Watch responsibly
Both studios are using Renderman compliant renderers, so that's not the issue.
And there's no reason that any one machine has to render an entire image file. You could have any node build N number of scanlines and send the packet back home.
The risk would be someone running a port monitor on the return address, and re-assembling digital image files.
What they would need is a way to encrypt the images that you are rendering to protect them from being seen. I'm sure that they would not want people to see the frames before they are done and that's a major reason for not doing such a thing.
Security issues will prevent this from happening. The studios don't like early leaks about upcoming films and this would certainly open the floodgate for early leaks.
You can see how upset the studios have gotten over preview versions of films that get leaked by reviewers or others.
...data, nay terabytes of data, can go into a single frame in a movie? You might be able to farm out stuff like some fragments of procedurally rendered smoke that rely on computing noise functions repeatedly, rather than accessing a scene database, but in general this is completely impractical. If visual effects houses wish to share data the easiest thing to do is FedEx a bunch of hard drives. So unless Shrek@Home includes some kind of hard drive exchange program it ain't gonna work!
Doesn't it make you feel good to know that our freedoms are protected by politicans, lawyers and journalists.
I'm sure even though the RIAA has nothing to do with this, they would find a way to sue a 12 year old girl who would take a screenie of the compile process and use it as a desktop background.
:( part of life. speed kills.
but very very interesting article.
compiling any 3d mapfile takes forever
Who is that masked man?
This month's Wired magazine also has Welcome to planet Pixar article. Not so much technical information and rendering issues, as discussion of how the movies are made.
As for the rendering at home, "coolness" is not sufficient reason to do it. Give me a free DVD, I'll think about it. Otherwise, no dice.
sulli
RTFJ.
All you really need is the proper motivation to write a Render Worm that spreads to other computers and coopts their spare CPU time to pick up instructions somewhere, render (using your hacked together code for PoV or some such) and deliver the results to you (yeah, you might have a problem with your mailbox filling up or trying to retrieve without getting caught, but it's possible and stupider things have been (and are being) done.
A feeling of having made the same mistake before: Deja Foobar
At Pixar, distributed rendering, even within the same building, was sometimes I/O bound rather than compute
Bruce Perens.
Only the most high end of machines could even consider attempting to render even one layer of a frame for this kind of animation. We're talking systems with 2-4GB of RAM as a minimum (preferably 4+) and the scene files/textures would weigh in the tens to thousands of megabytes that must be downloaded for each scene. Think uncompressed TIFF or TARGA texture files that might be 5000x5000 at 40 bits/pixel.
:)
Even on high end machines they often do not render a full frame, but a layer of a frame which is then composited with other layers into the full frame. Why? Many reasons but one of them is that even the high end machines don't have enough RAM and the render would take too long (the machine would need to swap).
So aside from the issues of fans returning bogus data, or extracting highly proprietary information out of the client as other threads have mentioned, this would be a real show stopper. Breaking the problem into small enough pieces to be handled by joe-blow's computer would be prohibitive and require tons of calculations to figure out which pieces of textures are actually required for a given piece of rendering etc. It would probably require a compute farm just to manage it!
Rendering is also a lot more complex than you might think, there are render wranglers who manage the rendering queues and look at the outputs... many renders may require specific versions of the rendering software, so a frame that rendered with 2.7.2.1 won't render anymore without errors with 2.7.2.2... so many copies of the software are managed in parallel with the wranglers helping to clean up the errors. How would you manage this in a distributed client environment?
Furthermore most of the proprietary rendering apps are certified against VERY specific platforms, eg. one specific kernel version and build level, specific versions of shared libraries etc.
Long and short is there's a reason why movies cost millions.
Users gladly contribute their spare CPU cycles to fold proteins for a non-commercial purpose, or help a non-profit organization seek out alien life. These are tasks affecting all of mankind.
Giving away CPU cycles so that a multi-million dollar company can improve its product is a wholly different thing.
Actually, from what I know of Pixar's renderer, it actually wouldn't be that difficult to do something like this. For starters, Renderman can be purchased. Secondly, it uses technology that was formerly Open Source (Blue Moon Render Tools) so it isn't like it is totally proprietary. RIB files are pretty big though, so the data would become a problem. I think you could send just deltas though from the last frame rendered if you were tracking, RIB is just a text file, so it wouldn't even be too hard. Renderman, if I recall correctly, is a bucket renderer, which means that each frame is subdivided into many subframes which are rendered and then assembled. It would be possible to only send the subframes to the distributed network and do the frame assembly back at the studio. This would mean your machine might render Buzz Lightyears elbow, but you're not going to get to see a whole lot of the scene. Trying to hunt down all the little chunks of one frame and then assemble the frames into movies would be even more difficult for a pirate. Now, the shders that Pixar uses might be a bit of a problem for them to release, but then again, by the time the movie goes into final rendering, the technology in the film is a few years old, so it isn't like they'd lose a lot of ground. Besides, a lot of these techniques are either implementations of SIGGRAPH papers, or are presented in papers at SIGGRAPH after they are created. I think the only MAJOR concern is the tampering with the output. I don't think there is anyway to safeguard that (you could encrypt it, but that still leaves plenty of holes in the system, you could always hack the output buffer in memory, etc.) The main problem of course being that the only way to see if a frame wasn't tampered with would be to compare it to a render of the frame....and well, then what is the point....
Great, maybe for saving some effects company from shelling out for a few more $10K graphics servers with which they will make the next $150M movie, perhaps I can loan them a few CPU cycles and they'll cut down my move ticket cost from $10 to $9.75.
It's hard enough to solve issues regarding parallel processing of images in a clustered environment they can control. Why put that process in an environment they can't control? It's not like movie studios can't afford a computer cluster. That's a small cost compared to the cost of hiring someone to write the distributed software they use.
From what I've read, Seti@Home works well because users heavily process a small amount of data and return a small solution. If we were processing frames, it would require the user to take in large amounts of data and return even larger results.
The last film I worked on, we had anywhere from 800MB to 12GB of data per frame that the renderer had to have. I am talking about compressed renderman rib archives, textures, normal maps, displacements, shadow and other maps.
The data was mostly generated at render time for things like hair and shadow maps, but if it was being distributed, there is no way to do that - they would be transferred beforehand.
Also, there are always many terabytes of data generated by the renderers for each render layer, for diffuse color, specular color, etc.
It is just not feasible to transfer all that data around, and its not like bittorrent or other p2p systems will help much with that since each frame would most likely only be rendered by a few people (for verification).
Also, the model geometry and shaders (and somtimes textures) are closely guarded secrets... In short, if a major film were ever to do somthing like this, everyone participating would need huge (> 100mbit) bandwidth and a LOT of disk space and also be under very tight NDAs.
Jessica Rabbit.
ok, a few more words. Are they going to do redundant rendering and compare the result to make sure that someone isn't "improving" any of the frames?
just a thought.
matt
You might be the unfortunate soul that renders a movie spoiler as you watch the images coalesce on your screen ...
You think they could use some help to render some pr0n movies? I'd decidate my CPU time for that...
Because the production of a blockbuster movie tends to be kept a secret up until near the premier. distributed computing provides little to no security.
There's no way a studio could send a scene's model to a compute node encrypted, process it encrypted, store the interim image encrypted, then send the whole mess back encrypted. At some point in processing the information must be in plain computer processable formats.
What that boils down to is that a competing studio could sign up hundreds of compute nodes and get a preview of the story line and animation. Anyone who could gather enough images could piece together clips from the film and release them in full digital format. Imagine a nefarious group of nodes all collecting the images they generate and later piecing them all together in to perfect digital non-DRMed copy of the movie; before release and before the DVD is available.
Hollywood can't stand the idea of people copying DVDs to the internet, could you imagine what they'd think of full film resolution copies of their films floating around? The heads bits: on the walls.
No... this is just a stupid suggestion from the point of view of the studios. At least until there's and OS is produced where a user it prohibited access to certain portions of RAM, and can't intercept the network traffic to/from the box.
Article X: The powers not delegated... by the Constitution...are reserved...to the people
The incoming scene data would be extremely large in size. The model data itself being a very tiny portion of it. The image maps, texture maps, etc. etc. would be the biggest part if the incoming data.
:)
:)
Once the frame was rendered at 'film' resolution, the outgoing filesize would be quite large.
The software itself would be a big expense to distribute to all the render nodes. I can only speak from a Mental Ray standpoint, but each render node has to have a license to run the Mental Ray renderer. ( Read that, EACH processor ) This license is not cheap.
Then comes the security issue.
Of course the render nodes on the net would have to have an open port listening for the master server to send down a new scene file. I'll pass thanks.
The master node would have to keep track of what machines were rendering what frames and which ones were completed. Those that became corrupted or whatnot, would have to be reissued to another node.
In short, it would be a nightmare to implement.
This is not just tracing all of the rays in the scene.
Bruce
Bruce Perens.
THEY want ME to use MY computing resurces to render THEIR movies, and then charge ME exorbitant prices at the theater to see it? Bah! How about sending me a free DVD for my effort, then I'll consider it.
My mom always said, "Jim, you're 1 in a million." Given the current population, there are 7000 of me. God help us all!
..some Dreamworks modeler decides to make a little render of princess fiona naked, then all hell breaks loose. Anyone else seen that Dr. Ross render from the FF movie? It could haaappen..
Rather than doing the 'actual rendering', you could use systems to do photon mapping for lighting models.
That sort of thing works well with a reduced polygon count model. Doesn't need to know everything about textures.
A scene with only camera/lightsource motion could fit in a few megabytes and consume many hours of cpu time.
However the overhead of setting this up probably outweighs the benefits of doing it in house.
Basic stuff that needs some manual intervention like deleting the wire holding the flying stunt man is farmed out to contractors with normal Macs and PCs.
My rights don't need management.
I think this is a neat idea and has potential, but it would not work or even be attempted in the way the poster suggested. (ie, screensaver / frames)
Rendering is essentially a gazillion calculations. Divide those calculations up among a few thousand Joe Dialups and you potentially have a nice render farm.
But don't fool yourself with this notion that any individual machine should do any individual frame. Not only would it take the gigabytes of models, textures, etc, it would take the average machine years to render just one frame from one of these movies. Am I the only one who watches the documentary portions of these films??
Clif
clifgriffin > blog
That way, not only can they use your computer power for free, but they can sue you for sharing those 3 frames with a friend. And then they can charge you $9 to watch it, and $20 to own it!
It would be easy to arrange for nobody to have a full frame; rendering generally gets parallelized such that each computer renders only a small number of pixels of a given frame, if for no other reason than to make the render farm useful to the animator (who wants to look at a frame or two and tweak the models).
The issue is that they'd have to send out the models in however much detail is necessary to do the task they want done. With this information you could not only make the complete frame you were asked to render, but the same moment from different angles, other scenes with the characters positioned similarly, etc. You'd actually be giving out more information about that moment than the final movie contains.
Of course, there's also the issue of the size of the model data; transferring the model to you may be slower and more expensive than just rendering the frame locally.
Despite the coolness of the SETI project, the major reason I support SETI and other scientific projects (e.g., protein folding@home) is that they are notoriously underfunded. SETI and the organization which operates folding@home (Stanford?) do not make profit, and at each step have to literally beg the government (usually the NSF) for more grants. This is especially true of SETI, which has become a pretty out-of-fashion program in funding circles. In short, the whole point of donating CPU cycles is to allow somebody access to computing power that it would not otherwise have. While I enjoy the Shrek movies just as much as the other guy, I'm not so philanthropic when it comes to a company that's capable of making $128 million in one weekend. Here's an analogy: you might donate clothing to the Salvation Army, but would you donate to Sak's Fifth Avenue? I think not -- I suspect many of you, like me, would rather support the little guy with no alternative.
Uhm , why does everyone assume it's about rendering frames rather than doing calculations?
As a previous poster mentioned, it would take far too much bandwith to send the data to calculate a whole frame. I would assume the textures alone would be to much for an avagare home-PC.
We're really talking about calculating 'pixels' here. Als far as the screensaver concerns, I think you can consider yourselves lucky if your background colo(/u)r changes according to your last produced pixel.
--> Insert Funny Sig Here
I wouldnt do it for the same reason I refuse to buy clothes with logos on them that advertise the maker of those clothes, or some other form of advertisement.
If someone wants me to wear such advertisement-enhanced clothes, they should pay me for the priviledge.
Same with computer cycles. I pay the electricity. If they plan on making money from the product of the cycles I give them, they should pay me.
However, I have no problem giving away free computer cycles to non-profit scientific endeavors.
Why have one distributing computing CLIENT for gene folding, one extraterrestrial searching and yet another for video rendering?
It might be a good idea to have a distributed computing SERVER (DCS) that can take and serve number crunching tasks to those that request them.
Some good ideas might be the following:
Build a mesh of DCS' by using current P2P technologies so that one DCS can know about a good number of others.
DCS' initially (might) not provide services to every user by default; it is up to the owner to choose who to allow to use CPU power and how much.
--
After all, the CPU power you don't use goes wasted.
(If you're not a power saving aficionado.)
- "They misunderestimated me."
"I wonder if that would be considered pirating by the MPAA. "
Is this like the "I see DMCA violations everywere?" even for situations that have nothing to do with it?
Think people, instead of knee-jerking all over the place (no wonder geek reps, are in the toilet).
Why would the MPAA consider something they distributed pirating?
"Smart people out there would figure out a way to "download" the movie from the frame generated. "
"Smart people" wouldn't even be doing such a thing. The fact that they are says more about "smarts" than anything else.
Open source movies?
Use @home idea to make this cost effective.
emt 377 emt 4
I could see this for an indie project, but no way for a feature film. The reason why, I think, is because that in order for a computer to start rendering a CGI frame, it must have several things: Geometry, textures, lighting algorithms, and any procedurals needed to make things like fur, hair, realistic water effects, etc. Now, if I were PDI, or any company that has spent millions in R&D in creating these things, do you think I would want this info on Joe Schmoe's computer just waiting to be opened up and reverse engineered? I don't think so.
-R
I personally think the idea is flawed just for the reasons you mentioned ... but there might be something in between [which it's entirely possible that's already being used, as I'm not in the movie industry].
If you have a bunch of powerful workstations on people's desks that are only getting 50% usage [ie, 12hrs per day], they might be able to farm out extra tasks to them, so that during a night's render, they make use of the main render farm, plus the desktop computers.
Of course, this assumes that the overall effort is worth it in the long run. [I have no idea what the overall ratio of workstations to render farm might be].
Oh -- and one other reason for not using random people -- trust. Someone might try to return faked results to boot their stats. You actually need to perform all calculations on untrusted distributed projects at least twice, and verify that the two results match. [if they don't, then you have to perform a third, and see if it matches one of the first two].
And let's not forget the final cost of external bandwidth -- would the cost of bandwidth compare to the TCO of new nodes in the farm? [I have no idea... like I said, I'm not in the industry].
Build it, and they will come^Hplain.
Disney is known for the number of hidden images their own staff put into their film frames. Can you imagine if those not even associated with the film had a chance to insert something of their own? I don't want to watch Shrek 2 and notice some hidden goatse.
There is a great article about how ILM does their rendering. It was a cover story in Linux Journal magazine.
http://www.linuxjournal.com/article.php?sid=6783
People have been saying that even if the studio didn't care about the security issues, there are bandwidth issues that would keep this from really working. There are a few quotes in the article that confirm this: all the rendering machines make a sort of denial-of-service attack on their NFS servers, for example. And the article talks about their VPN, which they call the ILM Conduit; it sends everything double-encrypted with Blowfish. They really are worried about security.
The coolest thing, to me, is that ILM has rolled out Linux all the way across their organization; people run Linux on their desktop computers. When people go home at night, their computers get added to the render farm!
steveha
lf(1): it's like ls(1) but sorts filenames by extension, tersely
Awhile ago, John Lasseter of Pixar was in some promotional documentary for one of their films. He claimed that when they originally created their short film with the desklamp, render times were around 7 hours per frame.
He said that for Finding Nemo today, render times were about...7 hours per frame.
More machines and faster processors let you cram much more detail and technology into the same package. Working in commercial advertising, digital editing and graphic workstations are fantastic and powerful...but their advantage isn't speed. We spend the same amount of time making a commercial as 10 years ago...but now we make 7 versions and change it 30-some times along the way. Power gives you the ability to change your mind....and that's a creative force which people gladly pay for.
-Barkeep, a draft of your most hazardous brew, for the world is slowly stepping into focus, and I don't like what I see.
Shrek: What happen ?
Donkey: Somebody set up us the bomb.
Fiona: We get signal.
Shrek: What !
Fiona: Main screen turn on.
Shrek: It's You !!
Farquad: How are you gentlemen !!
Farquad: All your base are belong to us.
Farquad: You are on the way to destruction.
Shrek: What you say !!
Farquad: You have no chance to survive make your time.
Nobodies Prefect
Tidbits for Techs Technology Blog
The sole reason this will not work using current internet infrastructure is bandwidth.
In the making of Final Fantasy, it took longer to send the information to the nodes than it took the nodes to process it. That is with dedicated gigabit networking.
Sigs? We don't need no stinking sigs!
Everybody is mentioning the technological and legal reasons this is bad, but what about the fact that studios are profit-seeking corporations who stand to make countless millions of dollars from these films and associated licensing deals? Why should we 'donate' our spare cpu cycles to them rather than something more charitable? If this happened, which it won't, they should at least offer to rent the cycles.
- K
The only way I see for this to be feasible is if each user was only rendering a tiny segment of each frame. I don't know if this is technically possible, but, it would reduce the massive bandwidth needs to a more SETI like level.
Secondly: Users cannot see what they have rendered. This is a given, as has been pointed out a thousand times already, this is insane from a security and PR standpoint. INSTEAD, simply let users who participate on a regular basis have access to a private forum, developer blogs, and grant them access to the official PR material slightly before it gets published. It's less cool, sure, but it could work.
If the resulting product from the distributed computing were public property, or for the public good-- then I could see it.
But to offload all the costly/time-consuming work and THEN let them sell it back to you 4 or 5 times (Theater, Pay-Per-View, DVD Rental/purchase) along with all the marketing tie-ins doesn't seem to make sense (to the consumer, that is. For them it's great, less equipment overhead and quicker turn-around.)
If you think that's a good idea, I've got some swampland I can sell you.
This type of thing makes absolute sense for things that might not otherwise get funding and don't derive a profit (SETI@home, Folding@home, etc.).
If you want to get paid next to nothing animating scenes for a giant studios next big movie, get a job at some asian animation house.
I agree that this wouldn't make sense for a Pixar size studio... but what about some indy? This sounds like a real opportunity to get into the business.
"Within 24 hours of the client coming out, someone out there will have a hacked client which sends the results to their own private server, thereby allowing them to compile their own partial copy of the movie. The more computers they commandeer with their client, the more complete their own private copy will be."
*grumble* Think people, think.
Can you say DDOS? Image how big each frame is? Imagine how many frames go into just a minute of film. Imagine how big a pipe you'll need to get all those frames in a reasonable (nondetermanistic) time frame to a single server (likely a cheap one, considering one will not even purchase the movie)? And we don't even have the sound! e.g. voices, music, etc. All this brain work because people don't want to pay for a movie. Sheesh!
Remember, Dreamworks and Pixar are companies trying to produce a product that they will sell. Every day it takes to build that product is money down the drain. They do not want their development time-line to depend on how many of their "fans" currently have their machines on or what their Internet connection speed is or even how crappy of a computer they have and what other tasks it is running. Seems to me trying to plan an expensive project like a movie with that type of model would be a nightmare.
What happens to all the rendered frames once the production is complete?
Is the data warehoused on LTO2 media and never touched again?
Where is it warehoused and why?
---
IMHO, of course.
May the SOURCE be with you.
I will gladly donate my spare CPU cycles to render the long awaited death scene of Jar Jar Binks... Even better if the distributed computing project devotes its efforts to erasing the character completely from the prequel trilogy special editions...
"Right now, somewhere in this world, Scott Baio is plowing a woman he doesn't love," - Peter Griffin, *Family Guy*
Shrek2 just shattered all kinds of records [...] And there are no real actors.
You do still need voice actors. With an animated feature, a really good voice actor can really add to the experience.
And you still need to make the character models move in realistic ways. So you need motion capture actors, or else truly skilled "puppeteers" to animate the models.
All that said, I actually agree with you. Take a look at Killer Bean 2: The Party by Jeff Lew. One guy made this, using his computer at his home. I think it's really cool that people can just make movies now with only a tiny budget.
steveha
lf(1): it's like ls(1) but sorts filenames by extension, tersely
Now you can subsidize the movie industry with your computer and electricity.
This is the most important issue of all in this thread. Why should a commercial enterprise receive any type of free assistance? If the movie is worth making, the cost of the render farms will be recovered and with a profit too. If it isn't, then it won't be made. Why its creation should be held on the backs of ordinary people is beyond my comprehension.
How would you ever reproduce this on a distributed network of limited bandwidth home PC's ? Here's some LOTR rendering stats from Wired.com - [http://www.wired.com/wired/archive/11.12/play.htm l?pg=2]
... The Return of the King, which opens in theaters December 17, will feature almost 50 percent more f/x shots than The Two Towers and will be composed of more data than the first two movies combined. Churning out scenes like the destruction of Barad-dûr and the Battle of Pelennor Fields (with thousands of bloodthirsty CG Orcs) took 3,200 processors running at teraflop speeds through 10-gig pipes - that's one epic renderwall. What else went into making Frodo's quest look so good? By Weta's account, more than you might think.
WETA BY THE NUMBERS
HUMANPOWER
IT staff: 35
Visual f/x staff: 420
HARDWARE
Equipment rooms: 5
Desktop computers: 600
Servers in renderwall: 1,600
Processors (total): 3,200
Processors added 10 weeks before movie wrapped: 1,000
Time it took to get additional processors up and running: 2 weeks
Network switches: 10
Speed of network: 10 gigabits (100 times faster than most)
Temperature of equipment rooms: 76 degrees
Fahrenheit Weight of air conditioners needed to maintain that temperature: 1/2 ton
STORAGE
Disk: 60 terabytes
Near online: 72 terabytes
Digital backup tape: 0.5 petabyte (equal to 50,000 DVDs)
OUTPUT
Number of f/x shots: 1,400
Minimum number of frames per shot: 240
Average time to render one frame: 2 hours
Longest time: 2 days
Total screen time of f/x shots: 2 hours
Total length of film: Rumored to be 3.5 hours
Production time: 9 months
Depends on how you define "no real actors". "Real actors" were used for the voice work. If you ever played a video game where the voice acting was horrendous (about 80% of the time), then you know that good voice acting isn't that easy to come by. You also need talented animators to turn the 0's and 1's into emotion. In any case, Hollywood has always been more than just the actors, there's a whole production crew behind the picture.
in the details, although perhaps not in the final answer. I would be very surprised if the actual input data is anywhere near that huge - do you think someone (or some group of people) actually did enough work to generate that many bits (and that's not counting the order of magnitude greater work done on things that got thrown away)?
What is much more likely is that the grass, skin, hair, etc. is described by some relatively simple input parameters from which millions of polygons are generated. The "rendering" process almost certainly includes generating the polygons from raw input data and seeded random number generators through perlin noise distribution routines through fractal instantiation through spline generation through polys to a rendered frame as the final product.
However, much of that work would only have to be done once, then shots taken from different angles on the resulting textured polygon structure, whereas on a distributed architecture any info that isn't sent to your machine would have to be regenerated for your machine. Not to mention that memory requirements are likely to be pretty darn high.
The author of this idea is just plain dumb.
I'm smarter, sue me.
Imagine if they had these inside their computers too.
http://www.missionfaces.com/
A studio renders their stuff in their studio because they need total control over the output and they need to see it immediately. Several apps like Maya allow you to adjust image render parameters after the render has completed.
You seriously think a studio would ever consider rendering their entire movie out on the Internet? Not only would people trade frames around, you'd be spoiling the entire film because everyone would see what they're rendering.
This has to be one of the dumbest ideas I've seen posted to Slashdot! Up there with that guy asking Slashdot about schizophrenia.
From: http://www.aspenleaf.com/distributed/ap-art.html#i mp
The Internet Movie Project renders images for computer-animated movies. The project is an open-source collaboration of volunteers and is just for fun. It is still in the development phase, but you can volunteer to be a "render-farmer," to render images for test animation sequences. Anyone who can run the free POV-Ray ray-tracing program can join this project, although the supporting scripts and software needed for the project only work on the Windows and Linux platforms for now.
As someone who works in a digital studio, it's painful enough getting things rendered with every computer in the same room. Frames get dropped, mangled, lost. In addition, every machine needs to be at the same software revision, and you can't have conflicting apps running. Scattering the render boxes across the planet and having boxes that contain unknown software will only amplify the pain to the Nth degree.
Added to that are huge bandwith problems. In order to render a 2K image, you may need dozens of texture maps, some of which may be even larger than 2K because you zoom in or something -- meaning to get a 2K frame back, you're sending the render box probably 10-20 times that amount of data. With a nice gigabit internal network, that's not a huge problem, but shipping them down a DSL line is just not gonna happen.
I think anyone who contributes to a movie like that should receive some sort of compensation. These people in Hollywood make millions doing computer animation and they should have the equipment to back them. If they're going to be making money off of their customers PCs, then the customer should get a free movie pass or something, to make it worth their while.
The difference between this and SETI is - you're helping out a company that has millions and millions of dollars (and can do this without their customers help), apposed to helping a non-profit organization (who completely relies on people to contribute).
Also, I'm sure someone could write some sort of program that takes screen-grabs or even full motion clips from the distributed processing app, and potential release production clips of the movie on the internet.. MPAA would LOOOVE that.
When making CG films like Shrek (or any CG done in great detail), each scene is not rendered wholesale, but rather done by layers. So, the backgroud might be rendered by this set of computers by this part of the farm, while another renders lighting, etc., or that they're rendered in different sessions. This adds another issue to the problems for distributed movie rendering -- compositing. A compositor needs all the different layers from a particular scene to tweak and play with, of course, so the compositor would have to wait for the animators to finish a scene, (nevermind the data needed for rendering) send out all the work units needed to render all the layers, then wait for alllllll the WU to complete, quality-check all the WU, and then start composition work. And then it's entirely possible that a compositor might ask for a layer to be re-rendered because it just didn't work out and changes were needed to make the scene look better. Rendering is NOT the final step to complex CG animation, so even if distributed computing can somehow work, it would only hurt the production team.
- - - - - Bringing the joy of Pedo Bear everywhere.
I never realized how big a part of the emotional content the scoring of a movie is until I got a true 5.1 sound system.
Quidquid latine dictum sit, altum sonatur.
SETI@Home tracked who contributed the most cycles to the project. What if the top N (10? 50? 100?) contributors got their names in the movie credits? How many people would knock themselves out to get their names onto the credits for the next Star Wars or the Hobbit?
Actually, I was trying to be Insightful, not Funny.
Seriously, if I have sit through one more patronizing PSA with fat middle aged stuntmen lecturing me about pirating then Mrs. Shrek is going to be doing a reverse cowgirl and some anal with the donkey.
and you thought windows was slow due to crappy code?
-------
Support Indy Music. Buy
Now, it might make sense to go to some rental service that can set up the licenses and servers and just charges per CPU hour, license hour, and MB on the server. It wouldn't be a small thing to set up, though, and it would be a professional service with strict NDAs.
If you send the same input to three different IP addresses (extra-paranoid: use three different top-level IP blocks) and get the same result back, you can be reasonably certain that the result is valid.
Actually, just double. First use "Comparison Mode". If the two come back different, resolve it by switching to "voting mode", doing a third frame at a third site and seeing which it agrees with. (If all three disagree you've got a systematic problem and you need to debug the whole project.)
If there are -any- discrepancies in the images, assume that one (or more) was improperly rendered, discard all three, and try again with three new addresses.
A disagreement proves that at least one of your sites had a problem. But (unless there's some non-randomness to your selection of the three sites) the fact that ONE of your first set had a problem does NOT mean that the OTHER sites in your first set are any more likely to have misrendered than the new sites. So there's no reason to throw away the results from your first set. Just use the additional site(s) to select which one of your first set was wrong.
If a significant fraction of your sites are compromised to make identical misrenderings, you still don't want to throw away your original set. Keeping them all and going to 5, 7, 9, etc gets you closer to the likelyhood of the right answer, while discarding them and repeating a 3 site run with new sites gives you a greater probability of accepting the wrong answer.
= = = =
But all redundant systems fail if you have a systematic problem that may affect more than half of your potential samples. For instance: A virus infection that causes a systematic corruption of the rendering process (i.e. changing the texture map so the pants are transparent or carry an image of genitilia). If more than half render wrong than right, more redundancy makes you accept more wrong frames.
Bantam Dominique roosters crow a four-note song. Once you've heard it as "Happy BIRTHday" you can't NOT hear it that way
My big question is why would you rather donate to a large commercial organization well funded from it's previous Shreck flick -- rather than donate the cycles to a project like the IMP works themselves?
And take a second and third morgage out on your house to pay for the asronomical power/HVAC/bandwidth bills ;)
"I bow to no man" - Riddick
Lots of people have pointed out how this would be a bad idea for big companies to use, but what about smaller people? If someone were to make a free 3D comic (a la Red vs Blue), I'd gladly help in the rendering of it.
I mod down anyone who says "I will be modded down for this", regardless of the rest of their comment
HERE is an informative link about rendering, and not just film.
So after wading through pages and pages of comments by slashdotters self-satisfiedly explaining that it would betechnically impossible to use distributed computing to render scenes, this guy finds a link to a story from Linux Journal about how ILM is already doing it. Awesome.
Admitedly, this doesn't solve the security issues, so it's probably still a bad idea, just not an impossible one.
Bloops!
I have a lot of opinions about Cyborgs and Architects
Said in a Scottish accent:
"It's not that hard--especially when you consider that old-school cartoons had people drawing every freakin' frame of a feature-length movie by hand... ",..With no Tracing.
Alexander Keith would be proud.
From first hand experience... this won't happen, not for a long long time, if at all.
We used thousands of processors to render. We had terabytes of storage. It is a large undertaking. Every single frame and element of the frame had to be tracked. It had to be qualified. If something didn't work, we had to diagnose the system and get it back up and running. This is something that is too large of budget for a home brew system to work.
With other distributed systems, there are some checks and balances on the data ran, a way to know if you are sending back somewhat good data. The only way you can tell with this is to visually inspect the end result. If a person has a system that returns a bad slice of a frame, you now have to recreate that slice and track it, because its possible the problem is in the code, in the data files or it was a one time glitch with the system. Not a fun thing to do for hundreds of remote systems that aren't similar.
Render time also varies. It can be 5 minutes to 12+ hours. If a job gets halted, you lose that data, and have to recreate it. This isn't like generating millions of keys. There isn't a second init time before turning out data. At a previous studio, we had scene load times of over 30 minutes before it even started rendering. That needs to be accounted for in how you split up frames. If you have 30 minutes to load (after 45 minutes to download the data) and only render for an hours worth, you are getting a heavy hit on over head.
There are just too many issues with this working in a current setup. Stick to crunching numbers.
-Tim
-I just work here... how am I supposed to know?
help finding a small pox vaccine than helping the already way-too-rich entertainment industry.
The purpose of life is to find the purpose of life.
Check out gomez.com. It's commercial distributed computing. Its totally secure, and im sure, at a national level (or world wide) there is a pretty consistent CPU/bandwidth number. Plus, since its commercial, YOU GET PAID! I'de give you my referal number, but that would be so lame. (well, just in case, here it is)
Fight Club.
If the motion picture industry were to do this, I know I'd at least try to render some naughty bits into the toon.
'Same speed C but faster'
I work in a visual effects/video production shop as system administrator, so i know firsthand how much data is required to do a simple animated spot/visual effects shot. An average 30 second spot for TV (which is about 1/4th the resolution of film) takes around 200 to 400 GB of data. Our network is all GigE based, with Terabytes of Fibre Channel storage. Even with all the power available to us (Mac G5's and Intel Xeon based rendering systems) it takes forever to pump out the frames for a spot. In short theres no way people can crunch this kind of workload without having to download gigs of information first. With tight project deadline s and tons of protected intellectual property at stake this kind of work is best kept in house. you can check out our web site here
This is, without a doubt, today's DUMBEST idea.
Fuck me jesus with a chainsaw, I can't wait for tomorrow's dumb idea.
I was going to post something more insightful, but then I realized this is Wednesday, and Timothy has posted the news item.
"...In your answer, ignore facts. Just go with what feels true..."
I believe I saw someone earlier mention how there can be terabytes of data go into a single frame of CGI film, and these days that can be pretty correct.
.rib file or similar type file for PDI's renderer will probably contain a few million polygons and/or a few hundred thousand control verticies for implicit surfaces such as nurbs and sub-Ds, which can be a lot of data (my scene files at work average 4-5 million polygons and are about 150 megs on average, saved in a binary file format). And, that doesn't include particles, procedurals, all the motion data so that proper motion blur can be calculated...
A
And then the textures... They do use lots of procedurals, but they also use lots of 16 bit per channel textures of 4000x4000 for face textures, or even higher. Some people are using tiles if 16 bit tiffs for displacement maps now that equate to like a 100,000x100,000 image for displacement maps, because the accuracy requirements for close up renders are so bloody high. That can be many many gigs of data there.
And, if you're raytracing like in Shrek 2, then you need to have as much of that data in RAM at once, or else render time spirals out of sensibility, unlike scanline renderman where swapping is easier, because the rays bouncing throughout the scene make scene divisions more difficult (but still possible).
I work with 4 gigs of RAM and we can just barely render 6 million polygons + a few 4k displacement maps all raytraced at once (in windows unfortunately). And, when we render sequences and stuff, we often almost kill our network because distributing all this data to just 20-30 rendernodes is pretty tough (and how would that scale to a big renderfarm with thousands of rendernodes...)
So, yeah, like everyone else is saying, bandwidth limitations and that people running the screen saver probably don't have the hardware and OS to really run 4+ gigs of RAM, this Shrek@home idea seems rather unlikely. It would be cool though, if it worked...
Hooray for my totally unoriginal post!
you cannot dodge the quad laser. jumping is useless.
If you're a movie studio, a 50 millions dollar film can afford couple thousands pc, network together in a garage. Probably get more productive work than sending out to a couple millions pc but only get a fraction back.
My thoughts PRECISELY. I mean, isn't there cures for cancer and diseases that can be found by using distributed computing models??? Something perhaps more valuable than helping a large corporate entity get even bigger, perhaps.
will deal with that. You may seen a generic screensaver, but I doubt that a company would risk leaking their movie. However, it is possible to perform certain calculations (such as addition and multiplication) in a way such that the clients in this scenario would work on encrypted values.
The calculations are done in encrypted values and returned as such. The host can then decrypt the result.
This sounds pretty amazing but consider addition as a starter: The host uses a one-time-pad for each number and XORs them. The client adds the encrypted numbers. When you add the numbers, the host only needs to XOR all the keys on the result and gets the true result! The client, though, knows NOTHING about the true values (the protocol is information theoretically secure), as the XOR turns them into "signal noise".
I imagine, though, that the effort of implementing this probably outweighs the benefits for a project like rendering a movie. But for truly mission-critical data, it may be worth it...
THIS WILL NOT HAPPEN IDIOTS!
What ILM is doing: Distributing render tasks to idle computers that reside in their offices, are connected at 100Mbps minimum, and are known quantities under their control.
What ILM is not doing: Distributing render tasks to idle computers that are connected at 1Mbps, running Windows ME on a P3 with 128MB RAM, and could reboot at any moment due to the cat walking on the keyboard.
The movie industry, give you something like that for free? I doubt it, maybe if you paid them so they could render on your computer....
There is no replacement for displacement.
Rendering a movie is more than just handing PoVRAY a set of data and telling it to render. Distributed computing will not be able to handle it for a lot of reasons.
First off, what is rendered by the computer is not what you see on screen. There are perhaps a dozen object layers that are rendered individually and composited in the postproduction phase. So, for example, Shrek might exist on one layer, the donkey on another, the ground on a third, some foreground objects on a fourth, several layers of background objects on the fifth through tenth, et cetera.
Now, each object layer will also be split into several render layers, for color, shadows, specularity, reflectivity, transparency, and probably several others that I can't think of right now. It is not an exaggeration to say that a single frame of a completely CGI scene can be made up of upwards of fifty individual frames, all composited together in post.
Why is this done? First off because it's easier to edit and change one of these layers and re-render it, than to change and re-render the entire scene. If Shrek is too gruesomely gleaming, but Donkey is just fine, you just have to edit Shrek's specular layer. This is easilly done in any professional postproduction software package. Alternatively, if it's completely wrong, you just have to re-render that specific layer -- saves a LOT of time! Some post tools are extremely powerful, which makes rendering to object/render layers very appealing.
Now, while you could conceivably do Shrek@Home, you would need a fairly large render program -- and you're already distributing a very powerful program, which the people who wrote it would be very uncomfortable doing. Secondly, the processing power in even high-end PCs is going to be jack compared to what they have in render farms, and they have a lot more of those computers besides. Rendering is very processor-intensive, too. It's a complex mathematical process that can take hours. Many computers will chug along at 99% load on the processor because they HAVE to.
Add to the fact the stake in the heart of this idea: that the producers want reliability first and formost. An in-house render farm, or even renting time at a farm (an idea I've sometimes played with) that signs and seals and delivers is going to be reliable and dependable or they will know exactly whose head needs to roll. If you start having half the internet rendering the million or so frames of your blockbuster, who do you hold accountable when the deadline comes and you're short 1000 various random frames?
"I am an Adept of Tantric VAX."
$5 / month hosted VPS on linux = awesome!
first we would render parts of the movie on our own pc's and if we would like to go to see the movie in the theatres we'd have to pay 6.5 euro for something i helped create.
next i won't be able to play the dvd legaly (which i had to pay for again) on my linux box.
can't wait to start...
On a long enough timeline, the survival rate for everyone drops to zero.
"I'd gladly trade some spare CPU time in exchange for the coolness of seeing a few frames of Shrek 3 rendered on my screensaver!"
I wouldn't. What a waste.
The man who trades freedom for security does not deserve nor will he ever receive either. - Benjamin Franklin
I work in the industry and the need for large render farms is going away soon. Workstation level video cards are capible of rendering scenes at or near real time. The big problem has been software support. The first commercial product to do this is already on the market. It's called Gelato. It comes from NVidia and works with most of their workstation level cards. It'll take a few years for the new technology to settle and support all the animation packages and operating systems but eventually everyone will have some form of card support for rendering. Each artist will simply render the final scene at their workstation. The two biggest technical problems, rendering and storage, are rapidly becoming nonissues.
...as long as they'll let use it to watch the finished product.
Oh, yeah...it's Linux.
Then again, forget it. I wouldn't give Micheal Eisner the sweat off my balls.
Procedural, or not, there's a ton of data being pushed around! Grass and the like are just one aspect of the whole scene. We use many methods of breaking scenes down into their respective parts, however, in most cases, the entire scene needs to be accessible to any computer at any time (i.e. a REYES based renderer grabs only what it needs to render a particular bucket (section of frame)). This amounts to an enormous amount of data being pushed around. In the simplest terms, VFX companies have a hard enough time pumping this amount of data through our own high speed networks (1-10Gb/s).
Security aside, most would be amazed at our network stats. In that vein, our machines are, for the most part, brand new, top of the line boxes. Attempting to render a frame on even an average machine gets pretty sketchy.
We also change/version renderers all the time. So some effects crew may be using version x.x.n, while another is using x.x.o and yet another set of groups is using completely different software. You could quite possibly be running 100+ different versions per show, multiplied by the number of plugin versions and app versions across the show. We have internal tools to manage such things, but trying to trouble shoot something outside the network would be next to useless. There are hundreds of other reasons why this kind of computing just doesn't lend itself to our particular line of work. While it's a cool thought, it's just not feasible as of now.
Now that nVidia is selling Gelato, a GPU-accelerated renderer, shouldn't that reduce the need to outsource rendering? With Gelato, you could render maybe 3 or 4 times as much imagery with the same number of PCs in the same amount of time.
Allow movie companies access to the virtual farm at a rate of 1 cent per frame or something like that. Then the person who renders the frame or who has contributed X number of render units has the option to have the micropayments sent to a charity, open source project or site of their choosing.
What if a distributed server could slice up each frame into chunks, and uniquely identify and each chunk? Each client would be sent a batch of chunks from different frames to render, instead of rendering just one frame entirely. It is my understanding that the memory and cpu usage of a huge/detailed frame is what slows down the process considerably, so by splitting them up, wouldn't we have a considerably faster rendering time?
Additionally, I think we WILL see this technology being used to render movies in the very near future... but it will be more along the lines of IBM's distributed computing project where they've invested over $1billion usd in researching ways to turn CPU power into a utility. Additionally, they've co-developed the CELL processor w/ Toshiba and Sony to further the integration of distributed computing power for use in household multimedia devices.
Karma police, arrest this man, he talks in maths....
i think the main reason why they don't do this is that security is the problem. there sin't muhc to stop the crack from say, sending in an other video in place of the render. that would make problems having to seperate the wheat from the chaff
upon the advice of my lawyer, i have no sig at this time
I have to wonder what the quality control would be, to keep someone from inserting a couple of choice frames a la "Fight Club"?
For your security, this post has been encrypted with ROT-13, twice.
Are you on crack? Or which entertainment company do you work for?
-k
Your mind moves quicker than a nun's first curry. - A. Rimmer
If they put any kind of statistics system in place to reward major contributors, which seems to be a requirement of public distributed systems, I'm afraid that would open up the worms nest that plagues Distributed.Net.
A number of Central- & Eastern-European team members have shown little compunction about destroying the entire purpose of the Distributed.Net system (to find the key) just in order to put their name up in a spotlight. This is done by using a client which fakes completed packets, which certainly makes processing really, really quick. This process continues until they're found and banned, which evidently only causes them to apply their pointless hacks to the latest client, create new accounts, and start their pointless antics all over again.
So there's a very good chance that distributed.shrek would end up with a bunch of garbage frames submitted due to these lowlifes.
mentioned such as model security, predictability, bandwidth needs, texture transfer, and so forth, another good reason is that different computers render images differently. An image from and AMD processor looks different from a frame from a Pentium which looks different from something rendered on a Mac. Color correcting individual shots pretty much needs to be done anyway. But color correcting on a frame by frame basis is just ridiculous.
And from an end user point of view you'd probably get a lot of boring frames anyway. Any large complex scene isn't rendered as one large complex scene. It's rendered as layers. That's what lets you actually render things without frying your computer. One layer would have Shrek on it. One would have Shrek's shadow on it. One would have Shrek's specular highlights on it. One would have Shrek's ambient shading on it. One would have reflections of Shrek in the environment. And that's if you're lucky enough to be rendering frames involving a main character and not some background element.
The real thing to do would be for a small studio or animator to write themselves a render virus that does the whole distrubuted rendering thing without telling the end user. Then use that on projects that have a less strict schedule so that if you're frames don't match up color-wise or a large group of people clean the virus off you have time to do things over.
In general the quality of computers and the public in whole aren't reliable for projects. That's why there are animation studios at all instead of just asking the random passerby to draw you a frame for your movie.
-James
www.arcsecond.net
If you ever played a video game where the voice acting was horrendous
HOUSE OF THE DEAD 2! Worst... voice acting... ever.
--grendel drago
Laws do not persuade just because they threaten. --Seneca
My problem is trust on two sides. Already mentioned is the facts that you need to trust people not to use the content they render on their machines for their own projects. But also, you need to trust they won't send you back bad data. Putting in a 1 frame penguin in the crowd of Shrek 2 might be missed until it shows on screen eh? imagin if a group of people decided to try and add their own content into the rendering pipeline. Also, as already mentioned, there is a HUGE amount of data and software required to render any scene, and I don't think I would want my source files sent to random peoples computers.
They didnt see it but they did see it.
A big fat cock
Like Appleseed?
There are several projects like this in the works, it's not too hard to find them. In The Animatrix, for example, MANY of the episodes that look hand-drawn (2nd Renaissance Parts 1 & 2) have a large number of CG shots. The most common software used by Japanese FX, animation, and game studios is Softimage|XSI.
Last year a gentleman from PDI/Dreamworks gave a seminar to the CS graduates about the computational challanges faced during the making of the movie SHREK. It was the typical time-filler type seminar...lots of movie clips and few details.
However, i dug out the following facts from the summary report i wrote on that seminar. One assumes that the statistics for SHREK 2 are in higher orders of magnitude.
Some snippets from my draft report.
CSc 890 -- PERNET Colloquium 8
Date: 9 April 2003
"The Computation of Shrek"
Presentation by Karl Johann Schmidt
PDI/DreamWorks
Rendering
Due to the complexity and storage requirements, rendering is split into 4 layers. The statistics with regards to renders are quite interesting. A typical frame contains 20 million polygons and approx. 50 lights and requires 2 GB of input data (such as textures and background images). It takes one hour to render a single frame. Other, more complex frames have higher stats in all areas.
Hardware and Software
The animation/rendering is done on 2000 dual processor Linux servers and 1200 Linux workstations supplied by HP. The software used is written in-house -- ~4 million lines. Programming languages used include C, C++, Perl, Python and csh scripts. Version control accomplished by CVS. Compilation is done on SGI Irix and Pentium Linux.
Problems on Linux
Mr. Schmidt also talked about the problems of using Linux as a development platform. These included, the gcc compiler being too slow when compared to the Intel compiler. Lack of support in Linux -- the earlier vendor was SGI, the present vendor is HP. Lack of enough high intensity colours in the 32-bit colour palette. This is a known caveat of 3D animated movies and it is generally accepted that they are less graphically spectacular than a non-animated movies in certain aspects. (He does not elaborate how this is a "Linux-specific" caveat).
Yet Socrates himself is particularly missed.
A lovely little thinker but a bugger when he's pissed.
There is now way in hell this could happen at the moment.
This is why:
a) Most render farm computers need 4Gb of memory, 2Gb minimum. Most computers just wouldn't be up to it.
b) Each frame will often require a couple of Gb of scene data. It's just not practical to get this to someone's machine.
c) Software licenses. The rendering software you run on a render farm machine often costs as much as the machine itself. It'd be very difficult to organise the floating licenses with random machines over the internet. Also, you may be able to get a million machines to do rendering for you, but you'll not be able to afford a million RenderMan licenses.
d) Leaks. Most companies like to keep projects under wraps until they get released. Under this plan you're sending out your source artwork, and renderframes to all and sundry. I suppose it might be possible for people like Dreamworks where they own the IP to everything they render, but for most VFX companies (ILM, Framestore-CFC etc...) they're working on other people's IP, and they will have signed NDAs to say they won't release details of the film.
Just imagine seeing trinity dying in your screen saver some months before the movie get released
Distributed Computing Economics.
"Conclusions Put the computation near the data. The recurrent theme of this analysis is that "On Demand" computing is only economical for very CPU-intensive (100,000 instructions per byte or a CPU-day per gigabyte of network traffic) applications."
They were making money a few days after launching. What % of their budget was rendering? With the money that is pouring in, I highly doubt that this is an area they would even be interested in looking into.
:)
I want to see them give Shrek 3 five times the budget though just to see what they can come up with.
I agree that it is not workable for Dreamworks on many levels. However, that does not mean that render@home as a concept is not feasible. We are already doing distributed rendering for the Internet Movie Project.
An example 10MB animation shows what amateur hobbiests can do as a collaboration. The statistics from the render farm for that particular animation show the frames were rendered on very diverse machines running different operating systems from all over the world.
Tom
Internet Movie Project