How to select the right computer specs for a full time digital art installation using Processing?

I like to make permanent art installations that use Processing. Think museums or even a few weeks at an art gallery.

A lot of the time they are fairly graphical and involve cameras, projectors, and other screens.

My question is around how to best determine what is the best computer to use for an installation like this?

Let us keep it in the Windows 10 PC world for sake of this conversation.

As a novice I have found a simple rule to be that the more expensive the CPU, GPU, and Memory, the better the performance it can yield. This has generally been true but I would like to have a better understanding because it would be nice to save money.

I find a lot of the time when making these interactive, projection based, games is that the frame rate can really lag if I get a lot of instances of a particular piece of the game in there or try to run at a high resolution.

I know one way would be to perhaps optimize the code but let us pretend for this question that it is already as dialed as can be and I am looking to optimize the hardware instead.

For instance, with memory. What if Processing could only ever use 16 GB and therefore having 64 GB installed does not help anything? Is there a limit? Will any given sketch be able to take advantage of it?

Or, I notice that other languages allow for specifying multi-threaded CPU code and the like. I am not aware that Processing does this. So perhaps a similar situation. What if Processing only can ever make use of 4 cores and therefore any CPU processor that has more than 4 cores is not useful in allowing the sketch to run faster or smoother?

Similar line of though with a GPU. How can I determine if a more expensive one can actually help?

Lastly, other than looking at the “System Monitor” and seeing how much compute a particular sketch uses on a given machine is there a way to analyze a sketch and give it a more universal metric for how computationally heavy it is?

Either way I am looking at some industrial computers like the “Helix 600” from OnLogic as they are reliably, mountable, and easily customizable.

Maybe there is an even better computer for these needs I am unaware of?

I hope I phrased these questions clearly and appreciate any help better understanding this.

Hi @CaseyJ. This is a really interesting question. I have done several installations and used different machines each time. A few things to consider:

  1. Java (ergo, Processing) can handle multi-core processors, for example: Lloyd Rochester - Java Multicore Example
  2. The Processing website says any OpenGL GPU should accelerate graphics performance: Environment / Processing.org so any NVIDIA or other like it would improve performance.
  3. As for RAM, remember a sketch is actually a Java application, so you can allocate as much RAM as your OS will let you I usually at least double what my application uses, which has never been more than 2 GB for me but it depends on the assets you plan to use in your installation. You have to consider other supportive features like networking, audio or serial connections that need some memory too. Plus the Java Garbage Collector can hoard memory sometimes.

I also think about other things like having the right ports for expansion in case I need to add something, like a camera, at the last minute, or speakers, etc.

Finally, I typically look for machines that are robust and can be left on for long periods and handle fluctuations in temperature and humidity. The industrial machines you reference are probably a good option. I’ve also used Mac Minis and they can be remarkably solid, plus they also can run Windows. Oddly single board CPUs like the Raspberry Pi, Arduinos and Beagle Boards have been very reliable for me under extreme conditions. I sometimes will network multiple Rpis or an Arduino with a Pi and get staggering reliability in temperatures up to 50 degrees Celsius.

Since there is a lot of trial and error on these things if you discover anything interesting along the way please share it with the community. Good luck!

1 Like

You need also think how things are turned on, if you not running them 24h. If your piece is running only lets say 18h a day then it needs to be stopped and started again. Does it need a person to start things up or can you automate things? For autostart - click the switch or with timer - I would recommend Linux. Raspberries do really shine in these scenarios. Fast boot and fairly simple to start processing script automatically. Usually it’s harder to find display or projector that starts nicely when it’s powered.

2 Likes

I’m interested in responses to this excellent question. I have a lot of professional experience in developing long-running interactive media fo museums and public spaces but sometimes using Processing/Java. I’m really keen to know what a good base playback spec is for Processing-based graphic-heavy work – I now do shows with my students and never feel confident about advising on playback hardware. OS, RAM, GPU, and software management strategies for stability and best results. I have often used networked MacMinis for synched multi-screen exhibitions – really easy to set up startup and shutdown scheduling in Energy System Prefs and also in Login Items (where you can launch and AppleScript to manage the launch timing and foregrounding of apps etc.). Whenever I have used Windows machines they tend to be managed by an AV supplier who deal with hardware spec and show control software (start up/shutdown etc.) – curious if there is a simple Windows solution. Anyways keeping an eye on this thread for any Processing/Java playback hardware tips – thanks