Hi @zwetan thanks for the reply!
My main aim (usually) is to generate a 300dpi PNG suitable for printing, an A0 print (for example) requires an image at least 9933 x 14043. This typically is about 75mb.
Using Air to produce a 64 bit captive runtime allows me to access as much memory as I need and at that point I am limited only by the native Air canvas size limitation (I seem to remember getting up to about 21k x 21k before killing it).
Note: At this point if I really need to go larger then I generally code the algorithm to be deterministic from a seed, I then either run the algorithm multiple times with the same seed and generate each tile in turn or I can run multiple instances of the program in parallel.
When prototyping a piece of work I scale everything down so I can just run and debug direct from Flash Develop, when it’s looking about right I then scale it all up, compile and export as captive runtime and then produce the final render there. Making Graphics calls (i.e. lineStyle etc) that work well at both very low and very high resolutions is always a challenge, this it typically achieved by iterating the scale slowly upwards and tweaking as I go.
A large part of the artistic process is exploring the very large parameter space in which the art exists, as such I tend to wind up with lots of NativeWindows crammed full of controls that let me adjust the algorithm in real time.
BitmapData processing is often also offloaded to a worker to keep the main thread stable, this requires a little forethought into how the algorithms are coded etc to ensure it’s all nicely modular etc.
I make extensive use of the Hurlant AS3 Eval library to allow me to code AS3 directly into the running program (usually for more complex realtime config, changing equations at run-time, number generators etc).
I’ve embarked on a few installations that target screens but nothing fancy beyond leveraging the Screen and NativeWindow objects to span screens etc. To date I’ve not needed to do anything more than that and generally I have to keep the canvas size scaled right down and then scale the bitmap data up to the screen resolution just to get things running at a reasonable frame rate.
Hardware acceleration is on my todo list It’s not usually a problem since I don’t often do real-time stuff but I’m interested at least in learning the trade offs.
I’m actually in the middle of working on a screen saver as part of a larger project so funny you should mention it! That will let the end user choose resolution and canvas scale (along with 1 or multiple screens) and it should be quite nice I think.
Anyway, I hope that answered some of your questions!