Bfarm - Distributed Rendering with Blender 3D
Bfarm will make Distributed Rendering possible over the Internet using the Blender 3D software and a FTP Server. Any FTP Server will do. The Bfarm Client will download the .blend file and upload the .tga files via FTP. The Bfarm Client has a place for the FTP address and login. Bfarm is written in Visual Basic and unfortunatly only works in Windows, it is not portable to other Operating Systems. However, other programers can use this VB code and rewrite a similar program in a more portable language like Python or Java. This has been a personal project of mine and I'd like to share it because I think that many can use the program at its current state. Be Aware! This software has not been tested very much.
Blender must be installed on all client computers. The FTP server can be on any computer in the Internet but should probably be on the same computer running the Bfarm Server. GuildFTPD is a free FTP server you can use. You'll have to know the ip address for the server to configure the clients. You can pay extra for your ISP to give you a static ip address or you can subscribe to a dynamic DNS service. no-ip.com has a free service you can use. With a no-ip.com account and the no-ip.com software running on your server, you can have a URL like mybfarmserver.no-ip.com.
If your server computer is on a home or small office network then you'll probably need to configure the router's port forwarding. You'll also need to configure your firewall.
I plan on further developing Bfarm so check back from time to time. There's a lot of ideas on the backburner. I'm releasing this as testing software.
--TODO LIST--
Bfarm uses active connections like a chat program does. The Client must be connected to the server while rendering. If the server disconnects from the client, the client forgets about the job it's doing and waits for the server. This is to keep the clients self sufficient. I want to make passive connections like an email server. This way a client with a dialup connection will be able to disconnect while its waiting on a long render and reconnect shortly only when it needs to..
I need to further test the ability to handle random disconnects. Sometime the software comes to a state where the clients will not connect to the server.
I also want to make a display that shows the clients connected and the number of frames they've rendered.
I want to build the file transfer capability into the server software. Guild FTPD handles simultanious uploads and downloads very well. So to ease the project i went with this design.
I want to develop a job queue. Where you can queue several large jobs. Bfarm currently will only render all the frames then exit.
Known Bugs ...
Try not to restart the clients too much. I haven't been able to track down this bug. It causes the server to crash while the client is connecting.
This 600 frame animation only took TWO HOURS using 3 old computers.
If I was only using my computer alone, it would take NINE HOURS!!!
Imagine the possibilities if you have access to more and faster computers.
I used Video Mach to encode the image sequence to mpeg.