It’s about time….

by David Burnett • Tuesday January 27th, 2009
Posted in Developer's Corner, Oxidizer Blog

… I let you play with a new toy, so it’s sneak preview time again.

I’ve just uploaded Oxidizer  to my oxidizer webspace, so go get it there

For those new to the sneak preview process, a sneak preview is an unofficial release of Oxidizer exclusive to any one that reads rampant-mac. It’s sole purpose is for me to get feedback on  new features before I unleash them on the unsuspecting public. It also gives me the chance to release versions that might have major issues in them like features not working on Tiger for example, or just not working full stop :-) .

So, what’s new….

  • The main new feature is QuickView which renders thumbnails for range of values for a particular parameter. To use it press one of those strange buttons with a Q on it.
  • This version of Oxidizer is mostly localized for the French. To use switch your Mac to French :-)
  • There’s a new menu option to re-run the last Lua script used.

Known issues…

  • Some of the default values are pretty useless.
  • It does not take into account that some parameters are integers.
  • The odd parameter that could have QuickView applied does not.
  • QuickView is a naff name, so the QuickView window title is still “Window”.
  • New Bits mean the French localization is incomplete.

Any issues let me know below, or in the Squish Bugs forum where there’s a nice post on how to make useful bug reports.



  1. ralf
         January 27, 2009

    Hey David, excellent release, more QuickView power to the people! There are even more improvements than what you mentioned, but people will discover for themselves :-)

    I noticed a couple of things that might be worth pointing out:

    * After you introduced the Q-button on the Rotation in the TE, the +/- buttons stopped working (but the Q button works fine)

    * The “Rerun Last Lua Script” appears to work on a stored copy rather than a pointer to the file name? It becomes kind of useless if you edit the file between rerunning it. Maybe that’s a feature, but I think it would be more useful if one could also edit the file in between, and still use the shift-cmd-L command to bypass the file selection dialogue.

    * The color map rotation Q button has a lot of issues. I think some problems are because of the two-step process in updating the color map of the genome, which requires you to click the “Apply” button after modifying the map. This means that it doesn’t auto-update when you click on a preview in the matrix. It also appears to be modifying the original incrementally, rather than a copy? If you click on the same matrix element multiple times, the map keeps rotating to different values – something is definitely wonky there. Another issue is that on sparse gradients you’ll get black boundary conditions if no color index is exactly 0 or 255. This might imply that it will be hard to retain sparseness if you apply the index rotator, and the map should perhaps be converted to a fully populated table before rotating?


  2. paulk
         January 27, 2009

    Looks great, David! Unfortunately, I found it rather late tonight and will now have to put off any serious play time till tomorrow :-(


  3. paulk
         January 28, 2009

    QuickView is really cool, David. :-)

    I’d really like to see the preview renders ignore the Quality Scale setting. I just made the mistake of trying QuickView with QS set to 4. It’s up to the 3rd row of images now… and I don’t see anyway to abort it.


  4. ralf
         January 28, 2009

    Hmmm well wouldn’t an “Abort” button be a better solution then? Doesn’t QV respect the preview settings in the preferences? Maybe if it did that would also solve the problem.

    Actually a general “Abort” or “Panic” button is something that I have wanted to see for a long time. It would be useful for canceling animation renders and scripts gone bad.

  5. David Burnett
         January 29, 2009

    Okay… currently in CVS
    Ralf’s bugs are fixed except for the black boundary conditions for the indexes rotation.
    Thumbnails now ignore Quality Scale and Size Scale settings.
    Animation rendering already has a cancel button on the progress window.
    Oh, and I might have actually fixed the poor randomness of the Gene Pool filling routine at long last….


  6. ralf
         January 29, 2009

    Dave – that’s true, but the cancel button doesn’t fork for “Render Movie as Stills” (“Cancel” only cancels a single frame, not the whole sequence). This is the method that I always use nowadays, because it allows you to recompress the movie into different formats afterwards without loss of quality.

  7. Scott Chitwood
         January 30, 2009

    I’ll be wrapping my eager little hands on this new release later in the weekend for sure!

    @ paulk » I’d really like to see the preview renders ignore the Quality Scale setting. I just made the mistake of trying QuickView with QS set to 4. It’s up to the 3rd row of images now… and I don’t see anyway to abort it.

    I’ve often run into the same thing when running Ralf’s Lua scripts. Try this workaround; launch and change the preferences while the previews are generating. The current preview will retain the initial setting and Oxi will use the new setting for any previews in queue.

    @ David » Oh, and I might have actually fixed the poor randomness of the Gene Pool filling routine at long last….

    Big w00t for that! Will report back on that one for sure.

  8. David Burnett
         January 30, 2009

    @Ralf… not now it doesn’t :-)

  9. paulk
         January 30, 2009

    @Dave » Thumbnails now ignore Quality Scale and Size Scale settings.

    Thanks!!! :-)

    @Scott » Thanks for that tip, too! But hopefully I won’t need it now. :-) Can’t tell you how many times I forgot and loaded a script with that set to something like 10,000. Ugh!

  10. ralf
         January 30, 2009

    Paul: if Dave would tell me how to address Oxidizer environment variables from a Lua script, that could be easily solved… (oxidizer_env table?)

  11. David Burnett
         January 31, 2009

    @Ralf, you can look at the environment values, but I don’t think you can alter them…

    — the script looks crap but if you select it by dragging over it and copy and paste it’s all there.

    function print_table (table, old_indent)

    local indent = old_indent .. ” ”
    — Traverse string keys. Values are parameters.
    for k,v in pairs(table) do
    if type(v) == “table” then
    print(indent .. k)
    print_table(v, indent)
    elseif k ~= “n” then
    print(indent .. k,v)


    –check for genomes by looking at the size of the table.

    print(“— environment —“);
    print_table(oxidizer:environmentDictionary(), “”)
    print(“— environment —“);

    print(“— ss —“);
    env = oxidizer:environmentDictionary()
    print(“— ss —“);
    –print_table(oxidizer:environmentDictionary(), “”)

    print(“— alert –“);
    if env[“ss”] > 1 then
    alert_obj = alert_class:alertWithMessageText_defaultButton_alternateButton_otherButton_informativeTextWithFormat(“Size Scale is set to ” .. env[“ss”], “Continue”, “Stop”, “”,””)

    result = alert_obj:runModal()

    print (result)


  12. paulk
         January 31, 2009

    I don’t think I know how to get at the version in CVS… ?

  13. ralf
         January 31, 2009

    Dave – well looking at them is a good start, to abort the script if they are too large. Thanks!

    @paulk – there are some instructions at the end of script tutorial for how to run Oxi via CVS and Xcode. For CVS you just do this in the terminal (but no broken lines!):

    cvs login

    cvs -z3 co -P oxidizer

    To compile with Xcode you must have the Developer tools installed, which are on your OS X install disk in optional installs.

  14. David Burnett
         January 31, 2009

    CVS version in ten easy steps….

    One: Install Leopard.
    Two: Go to and sign up for the free online ADC account.
    Three: Download and install the latest version of XCode (3.12) from ADC
    Four:Start Terminal.
    Five: Go to or make a folder where you want to put Oxidizer, say ~/Source

    Six: Type the following command then press enter
    cvs login

    Seven: You’ll get a prompt for the CVS password, just press enter.

    Eight: enter the following command
    cvs -z3 co -P oxidizer
    and a few seconds later you should get a folder called oxidizer in the Source folder.

    Nine: Open the project in XCode 3.x use the Build option to compile Oxidizer.
    Ten: Moan at me when I’ve not kept CVS up to date and things do not compile (Ask Ralf :-) ).


  15. Anonymous
         February 1, 2009

    Well, I’ve already got Leopard, so that’s a start. :-) XCode, eh? That’ll be new territory for me!

    Thanks for the instructions!


  16. paulk
         February 1, 2009

    Oops, that was me. Guess I wasn’t logged in. :-)

Sorry, comments for this entry are closed at this time.