I've been involved with the community sharing of resources since about 1990 in the UK when I got all the big 3D post houses to share their source codes and hacks (it was called s-hacks) for a 3D system (long gone) I worked on at the time.
It was inspiring to see so many people and companies - in competition in the marketplace - working together for their mutual gain. Although it did help that we didn't all go and tell upper management what we were doing...
Specifically I am proposing that anyone, who can see the advantage, can add their machine to a distributed renderfarm at the time of their choosing. For an example where this works right now check out -
http://www.renderfarm.fi/Their model is slightly different on two counts. Its always free and it uses the BOINC distributed render mechanism. BOINC is very nice - it is well established and uses the screensaver kind of approach seen in seti@home and folding@home etc.
I should probably just use this mechanism - it has many advantages. But the curve for me to use it is too high in comparison to what I already have. If someone else wanted to setup using BOINC I would happily support them. It would probably last longer...
However I also have some specific issues I would like to address:
1. We need to use only licensed copies of TG2 to render. Happily the licensed TG2 allows CLI launch. Therefore we can safely keep within the terms of the license and allow only people with licensed copies of TG2 to render. This means our community can't encompass all the people who might want to help. We instead have a closed community of licensed users.
2. IWBNI we knew there was no chance of a virus infection.
- The engine code will be in python and quite small. This will be a human readable program.
- The data transferred will be tgd files which will be launched by executing TG2 with the file as an argument. So therefore safe.
- The webserver will serve html. ftp will gather the data
3. There are several use cases it would be good to support:
- rendering large images as distributed tiles (GI is better behaved these days but still this may be unworkable)
- rendering animations
- rendering panoramas (just an extension of tiled rendering)
- rendering cropped portions with varying parameters to:
- better understand the effects of params
- to find a sweet spot nearby in parameter space
- to see the effect on rendertime of parameter changes
(TG2 batch does all these currently but its hard to install and out of date for the latest version of TG2)
4. I have an idea for an addition to make also. This involves setting preferences for the render client to select what gets rendered. I propose two methods:
- One is to wildcard the name of the job submitter. In this way I can submit my own job to the farm and indicate that I would like my system to preferentially choose to render my own jobs.
This ensures I spend all my resources on my own work first. This invites me to use the renderfarm all the time even for my own simple stuff. If there are cpu cycles left over in the morning then they will be used to render other people's work when mine is done.
I can also indicate that I want to render (say) Dandelo's work because I think the current crazy and ill-advised project he is doing is interesting and I want to help out.
- Two is for monetary gain. If I submit a job and its important to me to get it rendered as soon as possible. I could ask everyone to wildcard my name or I could put a value on rendering it. This value would be distributed across all the members who helped me render it (based on weighted rendertime).
So as a renderer I can say I also prefer jobs with monetary reward. This will preferentially have me rendering frames I will be paid for. Its not going to come to much - no one's going to get rich doing that but its a way to increase the render pool, get recompensed for helping the community, and offset electricity costs. I guess we'll be trading carbon credits one day...
If you own a renderfarm - you can play as well - if you buy a TG2 license...
Anyway that's my 2 cents... I have to upgrade TG2 batch anyway and I've always wanted an excuse to play with django...
Feel free to critique, comment, abuse, etc. I'd like to make it useful above all other considerations