Making a photorealistic panel simulation

The KI10 panel is connected to BlinkenBone, and run with  SimH as machine simulation.

If the KI10 should be fun for other people too, a simulation of the panel must be made  ... it's not the same as the real thing, but still quite unique.

The panel simulation is actually a Java program: "PanelSim". One of it's main functions is to paint a new image of the panel everytime some value of a control is changed by the running SimH simulation. (See here for the concept of "SimH visualization")

For this task, the "PanelSim" program has an inventory of pictures of different controls in different states, which it paints on top a background on command.

For highest accuracy, every button and every LED has an individual picture. Just using cut&paste copies of the same button again and again would give a unnatural feeling.

I knew this task would be much work, but still underestimated it totally: all in all I needed four months for it!

Step 1: gathering pictures of all control states.

So to make a living simulation of the panel, I had to take pictures of every button and every light (called "controls" alltogether) in every different working state. For example, I needed one photo of every button in it's four states: "not pressed and off", "pressed and off", "not pressed and lighting", "pressed and lighting". In a similar way I needed pictures of every LED in it's "lighting" state. And pictures of every rotary knob in different positions.

So I build a photo studio around my panel and began taking pictures. I used a Canon EOS 500D DSLR with EF 50mm 1:1.8 lens. The illumenation of the panel proved to be critical, because of the high contrasts: either the black front plate appeared totally black, or the shining lamps got to bright and lost their texture. I finally used a mixture of room light and flash light.

See me here pressing one button after the other with a little stick to get an individual picture of every button in the "down" position. The stick is later removed from the pictures in Photoshop. And my invisible other hand operates the remote control trigger for the camera.

PDP-10 KI10 raw control state pictures

Raw control state pictures

This way, I took 235 raw pictures!

Step 2: Isolating control pictures into Photoshop layers

Each of the raw images has dimensions of 4752 x 3168 pixels. For processing, I doubled the image resolution to 9504 x 6336 pixels.

The next task was to cut out every image of every control state and arrange it in a hierarchy of Photoshop layers (you've read right!)

There every control state picture gets a telling name. The final photoshop document has much the same structure as the data base inside the Java panel simulation application later. This way I transformed the 235 raw pictures into over 400 "control state images". Everyone of these had to be cut-out by hand, by drawing a selection polygon around it. First it seemed impossible, then the endless cycles of "mark-cut-retouch-move" were like a meditation.

When the layer hierarchy was filled, you can already play with the panel: setting a layer to visible or invisible let's a lamp light or a button to appear as pressed or released.

The final Photoshop document is now 1.5 GB big.

While working in Photoshop, I also corrected the restoration damage of the panel visually: I removed areas of yellow paint, and repaired color fields, damaged lines and letters. So the simulation looks much better than the original, without loosing its photorealistic appearance. I call this "virtual restoration".

See some impression of this process here:

PDP-10 KI10 Photoshop work

Photoshop CS6 at work

PDP-10 KI10 Photoshop cleaning the DEC logo

Cleaning the DEC logo

PDP-10 KI10 Photoshop cleaning the white lines

Repairing the white lines

PDP-10 KI10 Photoshop layer hierarchy

Layer hierarchy

 

Step 3: Exporting "control state images" to disk.

The big Photoshop document contains now all the control state images in its hierarchical layer structure. But it can not be used by the Java "PanelSim" application directly.

Every "control state image" has to be scaled into one of different resolutions and written to disk.

Parallel to this export-task the relative position of each image inside the background image must be recorded and later used to paint the image at the right position again. And all the coordinates are different for each target resolution.

I learned how to write a Photoshop script. To export those 400+ subimages into three different resolutions each my computer is working almost for an hours. See a part of the resulting file list here in the Windows Explorer:

 

PDP-10 KI10 isolated control state pictures

Isolated control state pictures

Only if you undertake such a mammoth task you know how good Photoshop really is: it handled all tasks with ease and speed and never distracted me with problems. But learning to use it is like learning a new programming language: You know: everything is possible, but nothing is obvious. And it has some appetite: It emptied my software budget for several months and eats up 12GB of my main memory ...