Flash Augmented Reality, Made Easier: Open Source FLARManager

flarmanager

You’ve seen the demos. You like the idea of tracking tags in the real world to create visuals. And now you want to try augmented reality for yourself - and, incidentally, you’re a Flash developer.

Reader Eric Socolofsky writes to share a framework he’s created that makes it much easier to work with the Flash-based, open source FLARToolkit, called FLARManager. Version 0.4 is just released:

http://words.transmote.com/wp/20090618/flarmanager-v04/

FLARManager has a number of features that improve upon the existing work done by FLARToolkit:

  • Building the apps themselves is easier. Fire up the framework with Flex Builder (or Flash, or Eclipse, or FlashDevelop), and you have access to all the libraries you need, so you can start playing more or less out of the box. Hello, world, indeed.
  • You don’t have to rely on Papervision if you don’t want to. Papervision, the faux-3D library for Flash, is included with the distribution. But marker tracking is decoupled from Papervision, so you don’t have to use it if you don’t need it.
  • Better event management. Marker adding, updating, and removal, multiple pattern detection and management, and the like are all extended in FLARManager.
  • Great documentation. Eric has taken the time to read some fantastic getting started tutorials, all accessible from the site above so you can go play.

Now, you wouldn’t pick Flash for speed - that’s not the idea.

read more

Magical, 3D-Warping Techniques Steadies Your Videos

Technology still has the power to appear like magic. And one place we may desperately need magic: straightening out our horribly shaky, handheld video shots. Software makers like Apple have already offered up some techniques for doing this - in the case of Apple’s Final Cut Studio, optical flow analysis attempts to track the image as it shakes around the screen and compensates by adjusting the orientation of the frame. But a research team at the University of Wisconsin, partnering with Adobe, will present a new approach at the legendary graphics-geeky SIGGRAPH conference in August. They go one step further, applying a 3D mesh to the image to warp your image three-dimensionally to make the stabilization even more seamless.

Me writing about it is basically useless. Check out the mind-blowing results in the video. From the description:

In this paper, we describe a technique that transforms a video from a hand-held video camera so that it appears as if it were taken with a directed camera motion. Our method can adjust the video to appear as if it were taken from nearby viewpoints, allowing for 3D camera movements to be simulated. By aiming only for perceptual plausibility, rather than accurate reconstruction, we are able to develop algorithms that can effectively recreate dynamic scenes from a single source video. Our technique first recovers the original 3D camera motion and a sparse set of 3D, static scene points using an off-the-shelf structure-from-motion system. Then, a desired camera path is computed either automatically (e.g., by fitting a linear or quadratic path) or interactively. Finally, our technique performs a least-squares optimization that computes a spatially-varying warp from each input video frame into an output frame. The warp is computed to both follow the sparse displacements suggested by the recovered 3D structure, and avoid deforming the content in the video frame. Our experiments on stabilizing challenging videos of dynamic scenes demonstrate the effectiveness of our technique.

The research, at the University of Wisconsin-Madison:
Content-Preserving Warps for 3D Video Stabilization

You can view all the techie details there, as well as many more demo videos. This is promising stuff, and we’ve seen in recent years a vast acceleration of the time between academic research and shipping commercial products — especially with cheap computational power on home computers to play around with, and increasing challenges for software vendors to differentiate what they’re doing in a mature application space.

Side note: boy, do I want to go to SIGGRAPH this year.

Also along these lines: Spacetime Fusion, tests of Final Cut’s SmootCam feature, more SmoothCam tests

For those of you purists, yes, it’s still worth considering the art of steadicam shots - at least before technology obliterates it for us clueless masses. Previously: B&H Interviews Steadicam Inventor: Shooting is Like Dancing

A Visualist Cathedral: ANTIVJ’s Grote Kerk

“Visual label” ANTIVJ has made an artistic expertise of projection mapping, light sculpture, outdoor projection, and generally painting projections onto architecture and objects. I got to see their latest work in Montreal at MUTEK, and will have an interview with them up this week. In the meantime, here’s a really stunning work from the Netherlands, at the cathedral in Breda. With original music by Thomas Vaquié, played on organ by Gerard Maters with light design by Giacinto Caponio, Grote Kerk is a sublime modern, digital spectacle, a light and sound show in a tradition extending back to the magic lantern shows. All of this is performed live using software from arKaos. (Thanks to arKaos’ own Marc Nostromo, who incidentally has a fantastic blog on noisepages.)

http://antivj.com/

For another work from this crew, here’s Joanie Lemercier’s Live Painting: Shackleton, performed live in Croft, Bristol, UK at the end of last year:

AntiVJ - Live Painting: Shackleton from AntiVJ on Vimeo.

Blender: 2.5 Gets Real-Time, Slick Interface; Video Texture Tutorial

Blender 2.5, - Got flexible? from Pablo Vazquez on Vimeo.

In case the last post didn’t give you enough Blender goodness, here’s more for your pleasure.

Version 2.5 is coming of the open source 3D suite that’s also a nodal compositing engine and a video editor and a real-time game engine — basically, a visual operating system in which you can make just about anything. 3D software in general hasn’t been gifted with especially slick interfaces. But 2.5 changes that: check out the elegant pop-up menus and Spotlight-style menu searching. Every little detail can be Python scripted, which sounds geeky but could be an easy way to just tell the software what it is you want to do - and Python is a lovely language to dip your toes into as a beginning coder, too.

All that’s well and good. But the real highlight of the video above is the fact that working in Blender now happens much more in real-time. For those of us used to working with visuals in performance, this means our “studio” workflow can be dynamic and live, too. Whether you render and remix video later, export 3D objects, or move to the Blender Game Engine to take your Blender work onstage, that is likely to appeal to visualists.

And if you’re just getting started, here’s a tutorial on using video textures in the Blender Game Engine, even if you’re new to the whole environment:
Beginner’s tutorial: Using video textures in the Blender Game Engine

Via comments from Samuel Gaehwiler - thanks!

At the moment (<2.5), Blender follows the “do everything in one window” paradigm.
As jeff clermont stated above: Blender 2.5 will be the first blender release which will allow multiple windows. Hopefully, one can show the output of the game engine on one monitor in full screen while manipulating it on the other screen. The new event system in 2.5 might allow some nice possibilities for visualists. Pablo Vazquez has done a nice of manipulating a running animation (in the 3d view), which isn’t possible in Blender <2.5.

Stay tuned. We’ll see if multi-screen output becomes practical.

Blender Game Engine Developing Fast; Nokia Control

Blender, the free and open source 3D modeling tool that’s also a real-time game engine, promises real-time visual performance possibilities, and is even a video editing tool, continues its march toward the long-promised, insanely powerful 2.5 milestone. (”Point five” doesn’t really begin to cover it.)

2.49 is now stable. And boy does it have a heck of a lot going on. There’s nodal texture editing, multiple streams of video playback in the Game Engine (making this especially appealing to visualists), 3D painting, real-time dome rendering in case you’ve got a planetarium gig, faster Game Engine performance, Bullet physics improvements for lots of physics-y goodness, real-time shape modification, and better game logic and Python control and included Python script extensions. And that’s just the start.

Blender 2.49

Basically, Blender has become a full-blown, real-time OpenGL video and graphics powerhouse inside an existing modeling tool. I’m still intrigued by dedicated game engines, but this means your modeling workflow and real-time workflow are one and the same.

And it’s capable, as a result, of some stunning visuals. The video above is from Martin Supitis, who describes it thusly on YouTube:

Few weeks of exploring the magic world of GLSL coding and few days of getting it all in this demo. Here is the result.
The thread in BlenderArtists forums that also contains download links and updates - here:
blenderartists.org/forum/showthread.php? t=152343

Made for company Twilight 22 where i take part of creating adventure action game Fire Wire District 22 as concept artist, modeler, now also learning graphic coding.

here is seen final composite of GLSL scene + SSAO, Depth of Field, Light Scattering and Chromatic Aberration filters, captured 30fps in 1680X1050 resolution; 8xAnisotropic filtering and 16xQ Antialiasing.

For live visuals, of course, modeling tools do way more than we might actually want or need. But if you can dive into Blender and find a way to simplify the work to the point you might like for a visual performance, I think it could be an immensely powerful tool.

And then there’s hardware control. Marco Rapino aka Akta has been controlling Blender with the accelerometer in his Nokia N95 phone, as in the video seen here. (Oh yes, I do need to port this to Android, especially as I already have the sensors working.)

N95 acceleremoter in Blender from aktathelegend on Vimeo.

Full details:
N95 accelerometer with Blender [ Akta's Way Blog, via BlenderNation ]

Of course, I’d like to see standardized OpenSoundControl for this sort of application. (Accordingly, OSC may soon lose the “Sound” officially in its title, given its more generalized purpose. Open Systems Control, perhaps? Open Stuff Control? Open Smurf Control?)

There’s been at least one paper on the topic of combining Blender with Pd for sound (”Blendnik”):
http://porcaro.org/blendnik.html

I’m not sure of the preferred way to implement OSC inside Python inside Blender, but I’ll have to give this a try myself.

A huge thanks to Giorgio Martini aka Tweaking Knobs for these links. Giorgio is working on his own live project. Here’s a glimpse of what that looks like, in progress:

Untitled from TweakingKnobs on Vimeo.

You can go grab Blender for basically any operating system you can imagine.