I have seen projects built for network rendering, and suddenly an idea popped into my head. You guys have heared of SETI@home right? Well I started thinking, is it feasible for a similar application to be used for Internet Rendering? Say you have a central server and are logged into it. When someone is ready to render something, the application splits up frames and assigns idle computers logged into the system certain 'jobs'. The person's system can then make a direct connection to those computers and send them the parts that they will render. Finally when the frame is rendered, it is sent back and pieced into the final file.
Now of course there is the question of how much bandwidth this would require and would slower connections end up being slower than rendering it all on their own computer with the time it would take to send and receive back the parts, but still, what do you guys think? Worthy of more thought? Already done? Or a waste of time?
Sorry to spoil your intuition, but you were not the first who had this idea:
Whatever, it IS a great idea.
Well as long as the thought is out there...
I see they mention the same concerns I had. Still would be nice to see this in action. One can hope...
well, I saw that there are plans for extending/ripping apart the renderdeamon. this sound like it has a lot to do with that. maybe you can have a switch:
- Render Deamon local network
- Render Deamon @home (Internet version)
I still think this is a great idea.
I see that the Internet Movie Project (www.imp.org
) is doing something similar with POV-Ray. They even have posted a flow chart of the basic workings of this idea.
This would be one of the BEST new features of blender by far.
I wish I was a programmer so I could help with this feature!
Programmers out there... please
Our renderfarm is functional, but is still beta. We will be releasing our first public beta within a month or two. We have already open sourced the renderfarm code. You will have do a cvs checkout. We have not put together a package for download yet. It is currently perl based at the client for easy cross platform support. The server is just a collection of web pages with a database backend. All communication is via http including file uploads and downloads to simplify administration and avoid firewall hangups. Check out:
I am not that familiar with blender but if you can feed it a command line for rendering then it would not be too difficult to add support for blender.
Very cool... I'll have to look through your CVS... What platforms has it been tested on already? I'm assuming Linux... has windows, irix, osX or any others been tested? I like the web based administration idea. I was going to start working on a similar idea... however a lot let usable for other people. very cool! I'll be watching this project as well!
Take a look at the stats from the job we just wrapped on our beta test.
Yes, this is a good idea. Mabye it would also be a good idea to submit it to the http://projects.blender.org
site so people who are working there can mabye look at your idea and do it for blender.
I am thinking of a program that can look at a .blend file and set the frames to render in the background while the user is doing another task or the system is idle. There would be the option of start and endfrme, destination folder, and whether to output sequenced targa or avi etc. With this program you could work whilst this hums along in the background, without opening blender. A z-buffered preview window could also be a good idea, so the user can see what they are animating. The option to submit the files to a central server and send it out to connected clients would also be available, as would rendering over a network without having to install blender on all the clients, just the small utility I have described...
I need to put this as an idea to the projects site, or do it myself.
(phrog orders a large book on C programming)
just some extra detail....
I would love to add a project to pick up the render deamon again. The networking backend was quite finished, but lacked an artist proof interface...
Now, where is that code hanging around?
Anyone else here interested in joining such a project? Just drop me a mail
Question on this thing: In blender, using BOB, I would get wonderful network renders on anything that wasn't procedural. Anything that was: Particles, animated textures, etc. would render differently on different machines, resulting in skips when the animation was reassembled. Is this something that can be fixed in the new network renderer, or is it something involving the hard-setting of variables on procedural items?
What is BOB ? is this a tools to make easy network rendering with blender ?
Each time you use blender it use a differents new seeds for the random number genrator (no call to srand nore srandom in the source code).
It may be the cause of the problem of any calculus which need to use random number (particul position, velocity...).
Moreover the state of the random number generator depend on the previous use of the random function.
So the first think to do is allowing to share a common initial seed (maybe by using a command line parameter or in the .blend file).
The next thing depend on way the animation renderer work (if i render picture 100, does it have the same seed that if is render the picture from 1 to 100).
Does someone have any idea ?
BOB is the Blender Operations Balancer, and was the first network rendering broker for Blender. I have no idea if it's still around or still being maintained - I haven't used it myself in about a year due to the problem I outlined above (I do a lot of particle and procedural work). It was essentially a front-end for commandline rendering split up over various machines. It would copy the .blend to each client and execute a render of a certain number of frames (frames in animation/number of clients) and then return all the rendered frames to the broker.
This looks like something that would be very very useful in a network render project:
Based on IETF open standards and it's open source too!