Two billion pixels per hour

What are you looking at? Mostly nothing.
Four weeks of surveillance video in one image.

“Two billion pixels per hour” was part of Neue Schule für Fotografie Berlin‘s first alumni exhibition “Perspektiven” in May/June 2014, which featured current works by Patrik BudenzTobias Wirth and me.

How it works

  • A camera stares¹ out the gallery’s display window.
  • It takes roughly two pictures per second, that’s 4 million total over 4 weeks.
  • The still background is removed from the picture stream.
  • Each picture is sequentially placed onto a giant² virtual canvas, following a fractal curve. It’s like the video’s temporal dimension is folded/crumpled into 2D space. Events (pedestrians, cars, trains, nights, rush hours, weekends) form clusters.
  • A screen in the display window shows random peeks into the image. Inside the gallery, an iPad running Google Maps software allows thorough examination of the growing image.

¹ the stare streetviewed
² printed size at 300 dpi: 60×60m ≃ 1 acre

If you don’t like videos, there’s a couple of pictures below.

Here’s me trying to talk about it. Thanks to my co-host Manuel Washaus, and apologies for the hundreds of “umms”. This was my first screencast.
Only German for now – subtitles coming soon.

The big data

Here’s a a couple of highlights from 4 million or 40 GB of image data. Check the blog for more.
Note that the eyes were not blurred in the gallery.



I like to do upon myself as I do upon others,  so I added two printouts  of self-surveillance image data:

digital c-print, 400×127cm

Here’s a tiny portion in full resolution (it was featured on the exhibition’s flyer):

And if you dare – your browser might crash – you can try and open this 21 Megapixel file: (that’s 2.8% of the original size…)



I like my stuff to run on readily available, consumer entertainment electronics:

  • 42″ TV
  • 720p webcam (the UVC-compatible Logitech C510)
  • WiFI router (D-Link DIR 615)
  • Mac mini
  • some HD projector
  • iPad mini Retina
  • my old trusty Asus Eee Netbook (1005HA) = automatic 12 hour UPS


  • The router ran DD-WRT
  • The Mac mini’s native Safari was slower than a Chromium running from a Ubuntu LiveCD…
  • That LiveCD was customized to boot into a portrait full-screen browser, with several scripts to monitor sanity.
  • The iPad ran Safari in iOS 7.1′s native “Guided Access” kiosk mode.
  • The display “client” is basically the Google Maps API v3′s JavaScript library, forced to periodically refresh its tiles; and a loop that zooms in-and-out to a random point in the past, or “now”, respectively.
  • On the “server”:
    • Ubuntu
    • a python script, mashing up:
      • an amalgam of several Hilbert curve scripts
      • image grabbing & manipulation via OpenCV and numpy
      • background removal via a combination of a homegrown algorithm and OpenCV 3′s MOG Background substraction methods
      • a homegrown algorithm for very slow automatic exposure
    • lighttpd
    • a reverse autossh tunnel for remote monitoring from home
I’ll put up the code on Github at some point – for now it’s way too messy and lacks documentation. If you don’t mind that and you’re interested, let me know!




An earlier version of the machine recorded 3 days of data at HGB Leipzig’s Rundgang 2014. See archived post.

Leave a Reply

Your email address will not be published. Required fields are marked *


You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>