In 2016 I worked with Stimulant on bringing a three-sixty degree display to the US Bank Tower. I was responsible for developing the visual software as well as the human presence detection capabilities for the space.
I used THREE.js with a hefty amount of pre-processing of LA topographical maps to produce these iterations. Many of these were vastly more experimental than what we ultimately went with, however it was a good exercise to explore as much of the creative space as possible.
One of the main challenges was to stylize the landscape as much as possible while still keeping enough visual fidelity and recognizable of the LA coastline and mountain ranges. The terrain features had to be exaggerated for the viewer's perception as the final piece was going to be a 360 view from the tower itself.
A few notable technical challenges was trying to render WebGL on more than seven displays. This is because the 360 view required multiple projectors per side (4 on one side, 3 on the other). In getting Chrome to display a canvas at that resolution we ran into a hardcoded pixel limit which we had to overcome by re-compiling Chromium.
Another challenge was rendering an actual 360 degree panorama since rendering a simple wide field of view camera wasn't going to work. I wrote a custom multi-camera post-process pass for THREE.js that allowed us to render a scene through as many cameras as wanted to in order to reduce the distortion. The final render was stitched together. The post-processing effects also needed to take this stitching into account.
The motion detection for people wandering around in the space was accomplished by an Open Frameworks app that took all twelve Kinect camera feeds and ran blob detection on all of them. The blobs were sent over to Chrome via a websocket, and then I wrote some middleware that allowed us to customize the hit zones near the points of interests.