Skip to content

itagenten/acab-streetlife

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

183 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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 multi wall condifuration, ACAB has two walls with 8x6 pixels each. They are addressed using the wall number [0,1] and their x and y coordinates.

In the single wall configuration, ACAB has a single wall with 16x8 pixels.

The setup looks like this: (x,y)

  (0,0), (1,0) ... (15,0), (16,0)
  (0,1), (1,1) ... (15,1), (16,1)
    .      .          .       .
    .      .          .       .
    .      .          .       .
  (0,4), (1,4) ... (15,4), (16,4)
  (0,5), (1,5) ... (15,5), (16,5)

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

It provides two methods:

  acabsl.send(x,y,r,g,b,time,w):
      Send a new color to pixel (<x>,<y>) on wall no <w>. If you ommit 'w', the
      server will choose a wall for you, when the script gets executed.

      'r','g','b' are in [0-255]

      time is in seconds:
          'time'=0  => Instant update
          'time'>0  => Fade to the new color in <time> seconds

  acabsl.update(w):
      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.
      
      Currently this command affects all walls at the same time.

It also provides the following constants:
acabsl.WALLSIZEX:
      Size of a wall in X direction

acabsl.WALLSIZEY:
      Size of a wall in X direction

acabsl.NOOFWALLS:
      Number of walls available

Example:

  import acabsl
  
  #enable double buffering
  acabsl.update()

  # let every pixel of the wall chosen by the server fade to red
  for x in range(acabsl.WALLSIZEX):
      for y in range(range.WALLSIZEY):
          acabsl.send(x,y,255,0,0,500)
  '''
  # let every pixel of every wall fade to red
  for wall in range(acabsl.NOOFWALLS):
      for x in range(acabsl.WALLSIZEX):
          for y in range(range.WALLSIZEY):
              acabsl.send(x,y,255,0,0,500,wall)
  '''
  
  #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.

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.

You can also directly stream your animation to the wall if you supply your script with the following
arguments: '--host=192.168.20.2 --port=6002'

Have fun :)

About

Scripts for an ACAB-Installation

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Python 97.9%
  • JavaScript 1.8%
  • Shell 0.3%