EMERAC Computer

213 views
Skip to first unread message

Roger Kaufman

unread,
May 8, 2021, 2:40:01 PM5/8/21
to antiprism
Hi Adrian,

In the movie "The Desk Set (1957)" they featured a computer called the
EMERAC. It featured a light board that was 17x53.

In a few years the computer was obsolete and used in numerous movies and
television shows. The most notable one was Irwin Allen's Voyage to the
Bottom of the Sea. In a Facebook group I've talked about being able to
simulate the board.

I have to believe that there was a program to control the light board
with a stack of punch cards (however there are 3 values). On the Voyage
show the board had what I'm approximating 3 amber like colors, off, dim,
and bright. The following command is close, but I'd like to be able to
display the 3 colors randomly on the board as a demo to get a better idea.

unitile2d 1 -l 17 -w 53 | off_color -e black -v black -f U -m
map_chocolate:khaki:gray50% | antiview -v 0.03 -e 0.03

Do you have an idea how to get it to take randomly for 3 map colors like
this?

A program or python wouldn't be hard to write to display "cards", and I
can try to generate an animated gif this way.

Roger
vttbots.jpg
emerac.jpg
DeskSet2.png

Adrian Rossiter

unread,
May 9, 2021, 6:53:29 AM5/9/21
to antiprism
Hi Roger

On Sat, 8 May 2021, Roger Kaufman wrote:
> In the movie "The Desk Set (1957)" they featured a computer called the
> EMERAC. It featured a light board that was 17x53.

I wonder what determined the pixel dimensions? (2x6 8x8 pixel blocks
with a one pixel gap?)


> In a few years the computer was obsolete and used in numerous movies and
> television shows. The most notable one was Irwin Allen's Voyage to the Bottom
> of the Sea. In a Facebook group I've talked about being able to simulate the
> board.

Nice to see it with Robby the Robot!


> I have to believe that there was a program to control the light board with a
> stack of punch cards (however there are 3 values). On the Voyage show the
> board had what I'm approximating 3 amber like colors, off, dim, and bright.
> The following command is close, but I'd like to be able to display the 3
> colors randomly on the board as a demo to get a better idea.
>
> unitile2d 1 -l 17 -w 53 | off_color -e black -v black -f U -m
> map_chocolate:khaki:gray50% | antiview -v 0.03 -e 0.03
>
> Do you have an idea how to get it to take randomly for 3 map colors like
> this?

If you just want random values then you could use the 'deal' map

unitile2d 1 -l 17 -w 53 | off_color -e black -v black -f U -m deal901,map_chocolate:khaki:gray50% | antiview -D 55 -v 0.03 -e 0.03

Adrian.
--
Adrian Rossiter
adr...@antiprism.com
http://antiprism.com/adrian

Roger Kaufman

unread,
May 9, 2021, 3:22:58 PM5/9/21
to anti...@googlegroups.com
Hi Adrian,

On 5/9/2021 6:53 AM, Adrian Rossiter wrote:
> Hi Roger
>
> On Sat, 8 May 2021, Roger Kaufman wrote:
>> In the movie "The Desk Set (1957)" they featured a computer called
>> the EMERAC. It featured a light board that was 17x53.
>
> I wonder what determined the pixel dimensions? (2x6 8x8 pixel blocks
> with a one pixel gap?)

I'm scratching my head of these dimensions. They are both prime which
makes some patterns more difficult. The pattern you suggest would be a
possible one and I think I saw a picture of it like that somewhere.

>> In a few years the computer was obsolete and used in numerous movies
>> and television shows. The most notable one was Irwin Allen's Voyage
>> to the Bottom of the Sea. In a Facebook group I've talked about being
>> able to simulate the board.
>
> Nice to see it with Robby the Robot!

I think that scene is from the Invisible Boy (1957). It featured Robby
who was brought to Earth from The Forbidden Planet and was considered a
sequel to that movie.

>> I have to believe that there was a program to control the light board
>> with a stack of punch cards (however there are 3 values). On the
>> Voyage show the board had what I'm approximating 3 amber like colors,
>> off, dim, and bright. The following command is close, but I'd like to
>> be able to display the 3 colors randomly on the board as a demo to
>> get a better idea.
>>
>> unitile2d 1 -l 17 -w 53 | off_color -e black -v black -f U -m
>> map_chocolate:khaki:gray50% | antiview -v 0.03 -e 0.03
>>
>> Do you have an idea how to get it to take randomly for 3 map colors
>> like this?
>
> If you just want random values then you could use the 'deal' map
>
>   unitile2d 1 -l 17 -w 53 | off_color -e black -v black -f U -m
> deal901,map_chocolate:khaki:gray50% | antiview -D 55 -v 0.03 -e 0.03
>

I never would have guessed the map could work like that! I adjusted the
colors just a little. I noticed with -D 55 some of the black dividing
edges on my screen are different widths, but appear normal if I rotate
it a bit. An interesting artifact.

I don't think I could get that glow without materials but it doesn't
have to be that good. Typically when that board was filmed they had it a
bit out of focus making it look lights were bleeding into the next cell.

unitile2d 1 -l 17 -w 53 | off_color -e black -v black -f U -m
deal901,map_chocolate:khaki1:gray35% | antiview -D 55 -v 0.03 -e 0.03

In the shows, they had a simple program going so the light board pattern
would just cycle from left to right while wrapping. So it might be
possible to simulate it by taking the last 17 map entries and placing
them at the beginning in a cycle.

Also, if you look at the pattern behind the picture with Robby, the
columns repeat every 10 vertical cells. So for authenticity, some map
editing could be done in that vein, yielding an animation that only
needed 10 frames.

Roger



Roger Kaufman

unread,
May 24, 2021, 5:35:26 PM5/24/21
to anti...@googlegroups.com
Hi Adrian,

On 5/9/2021 3:22 PM, Roger Kaufman wrote:
> Also, if you look at the pattern behind the picture with Robby, the
> columns repeat every 10 vertical cells. So for authenticity, some map
> editing could be done in that vein, yielding an animation that only
> needed 10 frames.
>

I wrote a python script to make an animated gif of the panel. The panel
is really just a 17x53 three color monitor. The colors I think are
off/dim/on behind an amber glass.

After I watched this for a while I realized the gif jumps every
rotation. I now realize this is because there are 3 extra columns. It
doesn't help either that 53 is prime! If I made the pattern repeat every
11 columns, I'd be none the better since that is still 2 columns different.

To manipulate the map for each frame, I used the split command (by 17
lines) and then put that last chunk to the beginning and restacked the
map. I used col_util to capture the map to a file. There might have been
better ways to do some of this!

Roger

#!/usr/bin/python3

import os

#http://stackoverflow.com/questions/7407766/format-a-number-containing-a-decimal-point-with-leading-zeroes
def zpad(val, n):
  bits = val.split('.')
  bits[0] = bits[0].zfill(n)
  return '.'.join(bits)

# 53 total columns
asp_ratio = 53/17
height = 600
width = height * asp_ratio

columns = 10
rows = 17
total = rows * columns

#create map for number of columns
os.system("col_util -m deal%d,map_chocolate:khaki1:gray35%% -Z %d -d 4
-f 1 > colmap0.off" % (total, total))
#repeat map to fill all 901 cells
os.system("col_util -m colmap0.off% -Z 901 -d 4 -f 1 > colmap.off")

for i in range(0, columns):
  numstr = zpad(str(i), 2)
  os.system("unitile2d 1 -l 17 -w 53 | off_color -e black -v black -f U
-m colmap.off > frame_%s.off" % (numstr))
  os.system("off2pov -D 18.9 -v 0.04 -e 0.04 frame_%s.off >
frame_%s.pov" % (numstr, numstr))
  os.system("povray -D +a +W%s +H%s declare=AspectRatio=%s
frame_%s.pov" % (str(width), str(height), str(asp_ratio), numstr))
  #split into 17 line chunks suffixed numerically
  os.system("split -l 17 -d colmap.off chunk.")
  #rotate by renaming last chunk to be numerically first
  os.system("mv `ls chunk.* | tail -1` chunk.")
  #restack map into the next map
  os.system("cat chunk.* > colmap.off")
  #clean up chunks, wait for remove to finish
  os.system("rm chunk.* frame*.pov")
  os.system("sleep 0.01")
anim.gif
frame_00.png

Roger Kaufman

unread,
May 25, 2021, 10:46:34 AM5/25/21
to anti...@googlegroups.com
Hi Adrian,

On 5/24/2021 5:35 PM, Roger Kaufman wrote:
> After I watched this for a while I realized the gif jumps every
> rotation. I now realize this is because there are 3 extra columns. It
> doesn't help either that 53 is prime! If I made the pattern repeat
> every 11 columns, I'd be none the better since that is still 2 columns
> different.

I found a fix for this. Instead of taking the first 17 cells and moving
them to the end, it just has to make the map N columns larger than
needed for display. It could strip the first 17 rows each iteration as
before, but with the extra map entries available, it can now do a map
shift and no split of chunks is needed.

This will make the animation go right to left so I use the reverse
directive in the convert command.

There was some kind a artifact happening in the gif. I was able to
eliminate this by increasing the vertex and edge widths and that ended
up being 0.055. There might be some other way to eliminate it since
there are many options to the convert command but I don't know enough
about it.

Roger

#!/usr/bin/python3

import os

#http://stackoverflow.com/questions/7407766/format-a-number-containing-a-decimal-point-with-leading-zeroes
def zpad(val, n):
  bits = val.split('.')
  bits[0] = bits[0].zfill(n)
  return '.'.join(bits)

# 53 total columns
asp_ratio = 53/17
height = 600
width = height * asp_ratio

columns = 10
rows = 17
total = rows * columns

#create map for number of columns
os.system("col_util -m deal%d,map_chocolate:khaki1:gray35%% -Z %d -d 4
-f 1 > colmap0.off" % (total, total))
#repeat map to fill 901 cells + columns x rows additional
extra = 901 + total
os.system("col_util -m colmap0.off%% -Z %d -d 4 -f 1 > colmap.off" %
(extra))

for i in range(0, columns):
  numstr = zpad(str(i), 2)
  shift = 17 * i
  os.system("unitile2d 1 -l 17 -w 53 | off_color -e black -v black -f U
-m colmap.off+%d > frame_%s.off" % (shift, numstr))
  os.system("off2pov -D 18.9 -v 0.055 -e 0.055 frame_%s.off >
frame_%s.pov" % (numstr, numstr))
  os.system("povray -D +a +W%s +H%s declare=AspectRatio=%s
frame_%s.pov" % (str(width), str(height), str(asp_ratio), numstr))
  #clean up, wait for remove to finish
  os.system("rm frame*.pov")
  os.system("sleep 0.01")

#!/bin/bash -x

if test -z "$1"
then
   filename="anim.gif"
else
   filename=$1
fi

convert -verbose \
-reverse \
-delay 15 frame_0[0-9].png \
$filename
Reply all
Reply to author
Forward
0 new messages