OT: about threads:
this would take it somewhat off topic, as i meddle more in java than processing itself.
i’ve tried things like rendering things in image buffers and using executor service to run them in different threads. http://tutorials.jenkov.com/java-util-concurrent/executorservice.html
after that i combine/blit them into the canvas like tiles when each thread of the executor service completes and return images to the main routine (this could be draw()). even on AWT/Swing that significantly speed up some heavy graphing/plotting work. this is especially observable (from waiting ~10 seconds to completing in a heartbeat) on the slower but multi-core cpus that’s prevalent on laptops, netbooks, tablets PCs these days.
i’d think similar strategies can be done in processing.