My Unassisted Batch Render Program

God is THE Supreme Fractalist   

My program to automate remote batch rendering:

 The purpose of this program is very simple.  It monitors whatever folder it is running from looking for .flame files.  When it finds some, it executes FLAM3 on them with the environment variables that are set in the .INI file.

I have a simple little script that I use to batch-export individual flames from a pack to a set folder.  You can download it, edit it, and set it up for where ever on your system you want this program to run.  I actually have this BatchRenderFlames program scheduled with Window's Scheduler to kick off at 8AM and 11PM every day on another system on my network (in case someone shuts it down in the mornings or evenings).  If I have some flames I want it to render, I can edit and run this script to dump the flames over on the other system in the shared folder where this program resides.  At that point, I can just forget about it.  My program sits over there an monitors for the files and kicks them off as soon as they are found.  I'm also sending this program (along with FLAM3 and its dll file) to some friends with some screaming office computers that just sit idle for 120 hours a week.  If I have something large or detailed, I can just send them the flame and have them save it in the file with the program and kick it off before they go home.

The name_enable environment allows FLAM3, and therefore this program, to derive the image name from the parameter name. In other words, you can use this to render large collections of parameters in the same .flame file.  There is a "catch" to this though.  The program, once complete, sleeps for 15 minutes before looking to see if there are any more flames to render.  In order to keep the program from running the same ones over and over, It looks for a JPG with the same name as the FLAME whenever the rendering is over.  If it finds it, it renames the .flame with an extension of .DONE.  If the render didn't produce a similarly named JPG or PNG file, the program renames the .flame file with an extension of .ERROR.  If this is a flame pack that does not have a parameter inside it with the same name as the flame pack, the flame will get labeled as an error even though it ran successfully.  

The program does not have anything fancy to stop it.  Just hit a CTRL-C to break your rendering process and the program will end.  If prompted to continue at the end of the render (based on your INI settings), you can ignore it and it will go away, or you can say "no" and the program will abort.  See v0.5 notes at the bottom of the page for the reason behind this message.

In order for this program to run, it requires both the latest versions of FLAM3-RENDER.EXE and pthreadGC2.dll to be somewhere in your path or in the same folder as the BatchRenderFlames.exe.  This is CRITICAL!  You can throw all the .flame files you want at this program, but if it can't run FLAM3-RENDER or find its .dll file, nothing is going to happen.  I link to the latest version of FLAM3 on my Other Links page.

 The most recent addition to the program is to email the parameters and image to a specific address and/or SMS text you with the completion of a flame render.  This uses Blat, a free program that you would need to download.  It also requires that you have access to a SMTP server.  Gmail won't work.  If you don't have access to a mail server, you can set one when you register a domain.  This costs about $10 a year from places like GoDaddy.com.  If that sounds too complicated for you, and you'd like to use my server, and you've contributed to the development of the program, contact me.

In the INI file, Render tells the program to create the image or not.  If you don't want the image created and only have the program look for flame files and images and mail them, set this to 0 and leave mail=1.  Loop tells the program to wait 15 minutes and check for more flames, or exit upon completion.  Set it to 0 if you want the program to quit.  The sleep stuff is pretty self explanatory.  As set by default, the program sleeps from 8am to 5pm Mon-Fri.  Currently, the stop time has to be greater than the start time.  In other words, you can't sleep past midnight.  If you want it to sleep between these hours on the weekend as well, set the WeekendSleep option to 1.  If you don't want it to sleep at all, set the stop to one minute past the start. 

If you find this program useful, I'm trying to justify my Apophysis addiction on a disability income.  Please contribute $5 (or more if you feel it is worth it) to my PayPal account at

 

You can download the latest version of the program HERE The program is not crippled in any way.  If you use it, like it, or just want to feel generous, you know where to find me.  Same goes for any comments, suggestions, or feedback.

 

Release History:
==========================

09/20/07 - Initial release. v0.1

09/21/07 - Fixed doubling of flame size and added version to do PNG flames. v0.2

09/21/07 - Added reading of .ini file so that you could change image type, quality, size, and other FLAM3 environment variables.  v0.3

09/21/07 - Modified the program to kick off renders in a minimized window instead of a new active one.  Added ability for the program to use Blat to email parameters and image to a specific address. v.0.4

09/22/07 - Gave the program a spiffy new icon and added a "continue?" message after the render.  This way, you can kill the program or it's DOS box at any time without it trying to rename the file or mailing it or whatever.  If you hit "no" on the message, it closes immediately.  If you ignore it, the message times out after 4-seconds or so and continues on. Before, if you killed the rendering process before stopping the program, the program might rename the .flame as .error and start another render before you can kill the program.  That is no longer an issue.  v.0.5

09/23/07 - Added in-depth info Blat log, MachineName parameter as "from" in subject line, now handles spaces in file path, SMS option added to INI file, Mail option added to INI, option to turn off prompts added to INI, greatly expanded README. v.0.6

09/30/07 - Finished sleep logic, fixed problem where uncompleted flames were marked as done, added render flag and loop flag. v.0.7

10/15/07 - Added extension and log file options in INI file.  Extension option allows you, for example, to set render=0,mail=1,extension=done to re-email already completed items.  Detailed logs are kept in daily files that can be reviewed as needed.  Also, if mail or SMS options are turned on, you will now get emails or notifications in a flame has an error.

04/13/08 - Added an embed option in the INI file.  If you have ImageMagick installed, the batch render program will embed the parameters into the comments of the image when embed=1 is set in your INI file.


Things I still want to do:
==========================

  • INI setting for recursive folder search
  • INI setting to display last render as wallpaper 
  • INI setting to move flame output to a new folder based on flame name (primarily for flame packs)
  • INI setting for individual mail log files
  • Ability to search flame file for multiple <flame> tags so that packs could be handled differently 
  • Configure it as a screensaver to run whenever the computer was idle, displaying the last render on the screen or slideshow of all images in folder if "sleeping"
  • Ultimately, automatic FTP might be an option as well.  There are other programs out there (like SecondCopy) that do this though, so I don't know how much time I'd spend on this.