I'm thinking about the idea of doing a distributed rendering via internet but i don't know where to start. Is there any sort of open software to provide P2P rendering or something like that?
There are Blender render farm services similar to folding@home: (Anyone can volunteer their computer time; the work is done and sent to a main server for collection by the project submitter.)
http://www.vswarm.com/ (messages in forum saying that it appears to be abandoned.)
(I did not find any that are strictly P2P though. The ones I found are master-slave, but such a setup can be considered "cloud" too, (meaning computers on the internet are doing work for you) but one of them-- the master/main server is in charge of managing the workers and jobs. A headless P2P distributed farm, like bitcoin or something is likely possible, but is perhaps more complicated than it's worth for now.)
Concerns from ideasman42's answer do apply though, especially privacy.
There are also tools for building your own private distributed render farm: (These can be setup on spare machines, cloud/vps servers...)
In short no, There are lots of small renderfarm projects but as far as I know nothing thats as simple as folding@home - where you can just run an application and immediately join a globally distributed render-farm.
There are a few reasons this is quite involved to setup...
- Often the kind of projects where you would want a render-farm have 100mb, even many gigabytes of textures and other assets.
- More complex scenes often have high memory requirements for textures, mesh data, physics cache - while its possible to restrict which computers accept jobs, the requirement for high end systems means there needs to be enough free systems online for such a p2p system to make sense.
- With a render farm often you want management abilities, job prioritizing, ability to cancel jobs, upload minor changes then re-render, this becomes fairly tricky to manage p2p.
- With rendering you can't automatically validate that the output is correct (except for basic things such as totally blank frames or corrupt image data). Systems that return bad images need to be identified & blacklisted - the owner probably should be made aware of this... Maybe the disk has a bad sector, or the graphics card has faulty ram, but somehow it has to be managed.
- Aside from personal projects, anyone doing commercial work over a network would likely not want to send their projects to random people online (which limits who would use the farm).
- Security issues: if you have Python expressions for drivers its near impossible to restrict malicious code.
While its possible to resolve all the issues I've raised - its a lot of work to get running and well supported.
Some of the issues I raised here don't apply to the cloud - where you have API's to manage systems and better control of what goes on, but in this case using the cloud is really not so different from typical renderfarm setups.