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.

1 Like

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!

2 Likes

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.

3 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

1 Like

Thank you so much for the thorough reply!

When you mention RAM how do I specify that limit? Is this in the code or the “Preferences” for Processing?

Agree. Turning on and off can be a challenge especially to make it fully automated.

I have found that using a relay and a timer can be effective but usually leads to problems down the road as most machines do not like this.

I have found a new way using Processing to d that actually shutdown and have a thread on that here.

Awesome I am happy to hear this is a useful question and there are other people interested in the space!

I still think the “max out every spec” is a good strategy BUT there certainly sounds like there is room to improve. Sounds like you can always have more RAM, CPU speed, and GPU prowess.

One of the things that seems to be helpful is having some sort of reliability aside from the specs.

For instance I used the Intel NUC computers for a while but found that if a very quick power on/off cycle happened - like a flickering power outtage from high winds - the computer would brick. Nothing could turn it on or off. You had to physically unplug the power adapter to get it going again. No good for an installation!

I found the OnLogic computers (there may be others!) fixed this by having a different power supply relationship in the computer.

Also, I have found, for Windows 10, that ensuring it is running “Windows 10 Enterprise IOT” is the best way to go.

Can’t tell you how many times I get a call from the client where the installation won’t boot because some “How can we help make Windows better?” screen has popped up during boot and needs to be clicked or something to continue loading. Or, the dreaded auto update… I swear I click these off in every deep setting but they keep popping up.

So, I have found the Windows 10 Enterprise IOT has none of these snags and just loads and runs.

1 Like

Hi @robertesler,
Thank you for your comments. I also had good experiences with Raspberry Pi’s Zero, 3A and 3B’s. Have you tried running Processing on model 4? I am running against the limits of a 3 and love to go to 4 but after installing Processing (jumping through many hoops), it runs slower than on a 3. It must have something to do with OpenGL support. Any curious if you got a good system running on RPI 4.

1 Like

I agree it is great to have Processing support on the RPI lineage but I must admit most of the installations and work I do are a bit too much compute for those machines.

Though, they certainly are getting better every iteration and do make for great installation grade computers.

In the deepest darkest past I put up a few installations. I always used boring corporate desktop PCs (HP Elitedesk, Dell Optiplex) because they were cheap and easily upgradeable. Usually running a mix of Windows and Linux.

I did remote management with an always-on controller PC that maintained a VPN connection to an ec2 instance. I could get in and access any of the installation PCs via VNC or CLI. This PC also handled turn on via WOL and turn off with scripts called via SSH.

The installation PCs rarely needed internet access, but when they did I could use the firewall on the controller to prevent untimely updating. I did turn all that stuff off, esp on the Windows PCs, but you never know.

It worked a treat for minimum $$$. Of course stuff went wrong, but it was all related to people ripping out cables they shouldn’t be ripping out. Can’t fix that with a VPN!

1 Like

Wow that is a creative solution where you have one computer connected to another so you still get remote access but the installation machine is not connected per se.

Thank you for the tip on this that may indeed come in handy!

Yeah no problem man. It was a bit of a pain to figure out the Linux routing incantations at first, but isolating all the installation PCs kills all the untimely update problems at once, and you can still access them remotely if you want. Being a VPN client it means that the gallery (or wherever) doesn’t need to open any ports on their firewall either.

Sometimes this management PC didn’t have an Internet connection, but it was still used for people to start up/shut down the installation.

Worth also checking BIOS options, such as switch on by time. eg. I had an outdoor interactive (webcam motion tracking) sound installation that switched itself on and off automatically for ~4 years without anyone doing any work on it.

Personally, wouldn’t even consider anything other than a customised and stripped down Linux install for this purpose. Windows and macOS too much of a black box for my liking.