As I was amazed at the work of Andy Zupko in the Effects branch of Papervision 3D (2.x Great White) I had a simple idea on how to use andy’s new pixel3d class by using every frame in a video stream as a grayscale heightmap while still maintaining the original pixel’s color. It’s very simply using pixel brightness level to determine height.

The question was going to be performance : how many pixels can we reliably update per frame? Obviously, pushing for a 1×1 pixel3d to pixel we would need over 76,000 3D objects on screen…but with a lower resolution, the results speak for themselves! 8,000 to 10,000 pixels on screen, updated every frame and we’re still pushing 25-30 fps on my Macbook pro after a release build.
I find the test clip of Kraftwerk’s “Musique non stop” particularly nice with this effect as it really shows the depth of the image. Webcam mode (in the source menu) is also a big source of fun! I was going to add soundSpectrum interpolation on the Z-multiplier but judged it would be overkill. This will absolutely make it as a video effect is our soon to be released VJ performance tool called WLPerformer. Try out the different source tests !
If you have any better ideas on how to determine height from every frame, maybe something that would work better with small lines and darker depths , I’m interested in trying it out!
Click here or on the screenshot to launch the thingie!
UPDATED! Click here to get the full source!
(click-drag to rotate the pixel field, Zlevel changes the depth multiplier for a higher field)


















January 3rd, 2008 at 10:11 am
[...] can see his write up on it here. My Personal favorite is using the webcam. Get a light and shine it around - looks very [...]
January 4th, 2008 at 6:05 am
Tu as été cité par zupko, tu as dorénavant tout mon respect
Bonne année les geeks
Good job.
January 13th, 2008 at 4:11 pm
[...] looking at some interesting experiments with the new Pixel3D class in the Effects branch of [...]
February 11th, 2008 at 5:52 pm
[...] More information can be found in this blogpost. [...]
July 15th, 2008 at 1:46 pm
[...] sure you also check out this great Pixel3D Demo by Benoit Beausejour including full source code. Possibly related posts: (automatically [...]
August 21st, 2008 at 12:56 pm
[...] all this is nothing compared to this baby. Benoit Beausejour from Turbulent built crazy demo using Papervision3D effects branch which transforms video stream to something [...]
September 22nd, 2008 at 4:13 pm
[...] But I finally find some time to add controls and optimize it alittle. At the time when Benoit posted his experiment I was playing with pixel 3D movements so it was nice idea to test how fast it could work. There is [...]
April 12th, 2010 at 3:27 pm
[...] existing experiments in creating 3D videos from 2D sources including the excellent example by agit8. What I wanted to try was to create 3D videos from [...]