/acab-streetlife

Scripts for an ACAB-Installation

Primary LanguagePython

This is the software behind the ACAB wall.
You can get our software on github: https://github.com/muccc/acab-streetlife

Animations are created as python scripts which run on the
computer controlling the installation.

In the multiwall setting the ACAB wall has two walls with 8x6 pixels each. They are addressed using the wall number [0,1] and their x and y coordinates.
The setup looks like this: (x,y)

Wall1:
  (0,0,0), (0,1,0) ... (0,6,0), (1,7,0)
  (0,0,1), (0,1,1) ... (0,6,1), (1,7,1)
    .      .          .       .
    .      .          .       .
    .      .          .       .
  (0,0,4), (0,1,4) ... (0,6,4), (1,7,4)
  (0,0,5), (0,1,5) ... (0,6,5), (1,7,5)

Wall2:
  (1,0,0), (1,1,0) ... (1,6,0), (1,7,0)
  (1,0,1), (1,1,1) ... (1,6,1), (1,7,1)
    .      .          .       .
    .      .          .       .
    .      .          .       .
  (1,0,4), (1,1,4) ... (1,6,4), (1,7,4)
  (1,0,5), (1,1,5) ... (1,6,5), (1,7,5)

Use the acabsl library from our git repository to create your own scripts.

It provides two methods:

  acabsl.send(w,x,y,r,g,b,time):
      Send a new color to pixel (x,y) on wall no w.
      r,g,b are 0-255
      time is in milliseconds:
          time=0  => Instant update
          time>0  => Fade to the new color in time millisceonds

  acabsl.update():
      Use this command if you want to use double buffering.
      Use it once before you do your first acabsl.send() call.
      Then use it everytime you want new commands to be executed.


Example:

  import acabsl
  
  #enable double buffering
  acabsl.update()

  wall1 = 0
  wall2 = 1
  
  #let every pixel fade to red
  for x in range(8):
      for y in range(6):
          acabsl.send(wall1,x,y,255,0,0,500)
          acabsl.send(wall2,x,y,255,0,0,500)
  
  #execute all fades at once
  acabsl.update()


Have a look at the scripts in the animations directory for examples. We also have audio examples ;)


Execute the startsimulation file to run a simulation of the walls on your computer:
  ./startsimulation

It will open two windows with simulated acab walls. Use your imagination to form cylinders for 29c3 ;)

Then execute the script you wrote to display it on the simulator.

Send new scripts via a pull request to our github account: https://github.com/muccc/acab-streetlife and we will put them
into rotation on the walls.

Have fun :)