Olympic Oval - Realtime video and installation

This is some prerendered footage of a realtime video I did together with Alex Beim (tangibleinteraction.com).

We designed and developed it for the opening of the Olympic Oval in Vancouver for the Olympic Winter Games 2010. The Video itself had two purposes. It should be displayed as a projection on the building itself and be played to the opening speech (thats what the ribbon cutting and the forming of the olympic rings is for).

We furthermore developed an installation part where people could interact with the ribbons.

Now some technical details:
It’s coded in c++ using openFrameworks and openGL/GLSL and runs originally at 60FPS. The toughest challenge for me was the physics and the shading of the ribbons.
Using correct per Vertex normals and Per Pixel lighting plus a little bit of bloom and tonemapping gave me the results I was going for. The ribbon behaviour itself is completely based and boiding rules. I didn’t use any noise (only for the camera) because it is simply too slow. (If anybody knows a fast c++ implementation of simplex noise please let me know)

watch video at vimeo:

PS: I will add some live action videos as soon as they are read.

I also developed a little APP that can save the ribbons at high resolutions including the bloom and shader effects (they wanted that for print).
What I did in that case is bringing the shader effects back to the CPU. I will post a video of that app in the next days too.

I thought there was a built-in noise system included in GLSL/HLSL. But I’m not sure of where to get a C++ simplex noise system.

But you are working on *the* Olympic Games videos with OF? Really? I’m astonished. This is the exact reason I got into computers and programming, to be in the presence of such incredible and varied talent, even as early as high school.

Either way, would this noise be used for the camera itself, or for what? The motion of the ribbons? If so, I might recommend the fluid dynamics system that memo is working on (ofxMSAFluids, I think), and some basic random force vectors injected into the fluid field to impart a wind-like effect. But I really don’t know how effectively this could be implemented with regards to speed and consistency.

[quote author=“shotgunninja”]I thought there was a built-in noise system included in GLSL/HLSL. But I’m not sure of where to get a C++ simplex noise system.

For simplex noise I use SimplexNoise1234 - it is very easy to use and has 1 - 4 dimension noise functions.