For our work on GridOrbit we developed both software and hardware. One very simple, yet very useful, piece of hardware is the ProximityBar, which is a set of ultrasonic sensors that capture the distance of the nearest object to the public display.
We are using the ProximityBar to infer the presence of people in from of our public displays, and thus transition between interaction zones. It basically means that the kind of content displayed in the screen changes as you get closer to it. In this page you can find more details about our set-up, implementation, and some example code.