Nokia Horizon Line
This was a permanent installation for the lobby of a new Nokia R+D building. The concept was a collection of real-time data visualizations of various Nokia statistics like phone sales or text messages sent along with displays of various phone models. The aspect ratio was unique in that the focus of the installation was a 15 foot by 1 foot video tile display consisting of high resolution microtile projection cubes. The visuals were also displayed across four “clouds” or hanging pieces of glass with projections in a normal HD format.
While there were several creative and technical hurdles with the project it was exciting to be able to collaborate with a fantastic 3D artist and apply some recent GPU techniques to help realize his visions in real-time across a unique high resolution display.
All of the artwork involved large complicated scenes of nodes and connections in order to give a sense of the size and complexity of the network. At a resolution of 7688×540 this would require rendering from multiple machines and some creative GPU work. I had been researching techniques for rendering massive numbers of tubular cubic splines and particles on the GPU and they came in quite handy on this project.
I had been experimenting with a technique called GAMER or Generic Adaptive Mesh Refinement to quickly render large numbers of complex particles and tubes generated dynamically. You can read more about that in this post. For the tubes I created a shader that took as input two texture buffer of control points which were used to generate cubic splines in the vertex shader by instancing a single quad several hundred times. The number of subdivisions of the instanced quad grid determined the coarseness of the resulting spline calculation allowing for an easy way to keep the rendering rate high with large data sets.
I also creating a gpu based particle system for the artist to use that allowed for meshes to be used as target shapes and controls to scatter or collect the particles.
The themes are cycled through on a daily timer. If the client would like to override the schedule and pick a theme they can use a web interface which has a socket connection to the master cpu in the wall system.