New video tutorial on augmented reality

I just uploaded a new tutorial showing you how to create a simple AR scene. Some of this code is a little hairy but you don’t have to understand every part of it to use it. You can read more information about it from the this great blog post that I reference in the tutorial. Check out the GE example that I showed and print out the marker. If you want to see the example from the tutorial click on the image below.

Lee


Commentary

  1. Dan says:

    If I only would have waited just a bit longer… I could have saved myself a good 3 days work… I JUST figured out how to use the FLAR toolkit… and found the AIR app. (Which was a headache because most the sites I went to were not in English.) Anyways, thanks for the tutorial. I’m excited to see what people come up with! This technology is very cool!

  2. Great work Lee, you save me some hours of work since i intend this week starting understanding the FLARToolkit Classes, with this tutorial i certainly have an excelent starting point.

  3. Fréderic Cox says:

    Great tutorial Lee! I’m impressed with the camera quality. Which camera did you use for this?

    PS: The “16″ is the resolution of your marker file and the “80″ is the dimension of the marker unscaled.

  4. Ole Jak says:

    Great tutorial Lee!!!

    Pv3D Animation lesson wanted!=)

  5. Hmmm says:

    Definitely a cool demo, but I still wonder about the usefulness of this technology in a business setting.

  6. lee says:

    @Hmmm I completely agree with you. We’ll see how many useful examples people make once the hype dies down :)

  7. chris says:

    Wow. That’s all I have to say. It’s all about getting the user involved. That’s where it’s moving. Be creative. Maybe you can use this in a business setting :)

  8. Mauro says:

    Great! I was trying to go through all the classes and was having some problems. Thanks for the tutorial!!

  9. soyek says:

    @lee and Hmmm
    You can see an interesting one on the new teaser site of Ubisoft’s game Assassins Creed 2: http://assassinscreed.com

    After watching the mysterious teaser You’ll be redirected to so called Animus system interface and then You’ll be able to unlock secret content using an “artifact” (which is exactly unique, printed AR marker). Assassin’s armed hand in full 3D will be Your reward.
    Good use of AR for online marketing, i think :D

    Anyway, great tut Lee :D

  10. Villmer says:

    Wow. Both an augmented reality tutorial AND a Google Maps tutorial. Cool!

  11. hicham says:

    Hi Lee,
    great tutorial thanks

  12. MooNLighT says:

    Hi Lee, thanks for this great tutorial, which allow me understand small piece of PPV3D and FLARToolkit class.

    But at the end of process I’m stuck on with runtime error:
    ReferenceError: Error #1056: Cannot create property useProjectionMatrix on org.libspark.flartoolkit.pv3d.FLARCamera3D.
    at org.libspark.flartoolkit.pv3d::FLARCamera3D()
    at aug::FirstApp/setupPV3D()
    at aug::FirstApp/eventListener()

    I don’t know why :/

    My http://www.libspark.org/svn/as3/FLARToolKit working copy looks different from Yours (on video tutorial), for class path I’m usin FLARToolKit.swc from trunk/bin dir

  13. jsaon says:

    Lee, how did you do those short cuts in Eclipse? pf – for private function? Are these available in Flex Builder? What are the key combinations?

  14. Dallas says:

    this rules, I tried to understand the source code from GE and was extremely over-whelmed. Topps uses this to make 3D baseball card animations: http://www.toppstown.com/UserSite/TotalImmersion/Info.aspx

  15. KOFI says:

    yes i have been trying to figure out useful applications for this to use at work…as cool as it is..its not easy to come up with useful applications. thanks lee…u da best

    kofi

  16. How about a part 2 tutorial involving how to export a Collada file from 3DS max or Maya and get it to parse in Papervision? The cherry on top would be exporting a Collada that supports animation.

    As always, thanks for the great tutorial!

  17. jsaon says:

    snippets I guess.

  18. Juan says:

    @Hmmm and @lee
    Where’s your creativity???? Definitely there are several oportunities in BTL business…I’m working on a project right now, as soon as it’s complete I’ll post.

    Trust me there are big opportunities for this…just check this PS3 game http://www.youtube.com/watch?v=ad-hd-hEqL4&feature=player_embedded

  19. Clint says:

    You should let your viewers know that the FLARToolkit is released under GPL license, meaning anything you create with it must also be released with a GPL license.

    This puts a hamper on a lot of commercial projects using this toolkit, however ARToolWorks and the team behind (FLARToolkit) have released a commercial license version (somewhere in the order of $US6,000-7,000 per project I believe – don’t quote me on that though… )

    Best know about this up front before selling it into the client…

    All free though, if you are happy to release your projects complete source code to the public.

  20. Justin says:

    Thanks Lee! I’m really excited to see your workflow on this.

  21. JinJi says:

    Hi, Lee. I hane the same compiler problems as MooNLighT:
    ReferenceError: Error #1056: Cannot create property useProjectionMatrix on org.libspark.flartoolkit.pv3d.FLARCamera3D
    Any ideas what can be wrong?

  22. lee says:

    For those who are having issues, check out the post at http://www.mikkoh.com/blog/?p=182. He talks about how to fix your Papervision class. I’m not sure why I didn’t have to do it. Make sure you have the latest of both libraries and use the source, not the SWC.

  23. BGdesign says:

    This was coolest thing Ive done all week.
    Thanks Lee.

  24. Damien says:

    Great tutorials. Thanks for your amazing website Lee. Cheers

  25. MooNLighT says:

    @JinJi
    I solved that issue. It was my fault, I checked out from SVN wrong version. All works perfect if checkout PPV3D from /trunk, not from /as3 or /branches/cs4 :)

    I don’t know why, but with this lib we can see what boxes sliding over the surface when rotating gliph.

    On this video http://www.youtube.com/watch?v=Xx6rHnu6aEA (I made it for my friends) we can see what green man sticked right to it, and don’t sliding over the surface.

    P.S. Comments for that video on russian (sorry, I’m from Ukraine)
    P.P.S trying to find in files which one of libraries was used for it (just on third day after publication of this man on blog, link on them was removed from it)

  26. MooNLighT says:

    Damn, sorry, about sliding was my fault :) When I added plane on the stage, I saw what boxes are created in bidirectional way (half of box was under plane) because of it appears what boxes sliding

  27. Dave says:

    Nice tutorial lee!
    I didn’t have any problems though, PS: what SVN client are you using?

  28. Ascanio says:

    Hi there,

    your Flash-webcam setup doesn’t automatically work on Macs.
    Drop me a mail if you’d like to take a look at a class I designed to automatically fire up the webcam on the most common computers with graceful degradation to manual camera driver selection.

    Keep rokin!

  29. Shen says:

    Hey Lee,

    Can I ask if you know anything about the legal part of using FLARToolkit? I know it’s like open source, since they are sharing everything but what about when brands use it like GE / BMW / Mini etc?

    I see on GE site, they credit FLARToolkit but I don’t recall seeing it for BMW or Mini.

    Thanks

  30. Matt says:

    Hey Lee, quick question…

    For some reason the 3d model will not show up when I have the .swf loaded on a page in my blog…I thought maybe it was a pathing issue to the .pat, .dat and .dae files, but that didn’t fix it.

    Have you run into an issue similar to this? or has anyone?

    Thanks.

  31. Tiago says:

    great tutorial!

    I do have a problem though.
    When I was developing my 3D scene (which includes a collada object) I ran into FP10 permission problems and I had to go to the FP10 locations settings to allow my file to be used.
    After that everything works fine. I test it locally and it’s working, I test it online – in this computer – and it’s working.
    The problem is when I ask my friends or I try it in my laptop. I get the Allow / Reject pop-up window from the camera, I click accept and all I get is a white background, everything’s just white. What’s wrong with that? No errors here, no problems, but to other people there are errors. I’m thinking it has to do with that collada file permission, any way to do that automatically or something?
    Help! :)

  32. Dan says:

    Here’s the lowdown about the licensing issue:
    http://groups.google.com/group/flartoolkit-userz/browse_thread/thread/e6509528ab24dd83/e7d8477febc41d6c?lnk=raot&pli=1

    In a nutshell, 3 options:

    - Use it for free but release the source of your whole site.
    That’s what GPL is all about.
    Actually you don’t have to put the source online but are obliged to hand it over if someone asks for it.

    - Buy a single-project license for $1295

    - Buy a multi-project license for $6495 per year

    Personally I find that rather bizarre and wasn’t sure first if it’s an April Fool’s joke. Apparently it’s not.
    I’m not an expert on the history of software licensing but I assumed GPL was an idealistic attempt to promote the idea all software should be free. Fair enough. In this case it rather seems to be (ab)used to disguise the fact that the library is actually a commercial product.

    Cheers, Dan

  33. Burton says:

    After a good bit of research into some other FLAR examples I’ve worked through, I have a piece of advice for anyone experiencing slow updating on this example.

    where you do, “cam.setMode(WIDTH, HEIGHT, 20);” half those numbers. It will only decrease the sampling of the camera. It helped me tremendously. I was scratching my head trying to figure out why every other example looked much smoother and this was the solution.

  34. Burton says:

    Probably didn’t elaborate well enough. It will decrease the resolution at which the camera samples for the first two values and the last value is the rate at which it will sample.

  35. renata says:

    Hello,
    Congratualion for this great tutorial. But, how can I put a 3d animation into my FLAR. Is it possible load a .FLV file also? thanks a lot :)

  36. scott says:

    Thanks for all the tutorials Lee, oh and nice beard.

  37. liekkje says:

    Business potential is not hard to think of! Give us some time and we’ll have a hell of a business case :)

  38. dennisth says:

    Great tut! Been struggeling with this for nearly 2 weeks, and finally ‘understand’ the basics.
    But how to let model disappear when the marker isn’t detected anymore?
    How can you do that?
    Thanks, hope somebody can tell me

  39. Jerrell says:

    This project looks really cool. I was wondering is there anyway to get the FLARToolKit without SVN? Frankly SVN confuse me and there is very little documentation on how to use it.

    Thanks In Advance.

  40. Andre says:

    Very cool, I notice you use a small polygon count what’s the maximum polygon count?
    Cheers

  41. Ben says:

    Hi Lee,

    thanks for the great tutorial and intro to augmented reality.

    I have your code from the gotoandlearn tut working fine on my machine here (the 640×480 res example).

    Today I swapped it over to my laptop with built in cam to play around with it on the road. The webcam on the thing is pretty poxy so I thought I’ll swap the res down to 320×240 to get some smoother picture going.

    Went through the code and changed all instances of the res in your code and compiled without any problems. The webcam video shows up just fine, nice and smooth however the app fails to recognise the marker and doesn’t trigger the cubes.

    I was wondering if you had any quick ideas as to why altering the captured resolution would make FLAR stop working or if there is anything else i need to change to get it going again.

    Any hints would be appreciated.

  42. aoody says:

    Sawasdee Krub, I am New AR’s Fan…i have just got my 3d collada file exported object working and appear on cam but one thing i like to ask everyone please help me!!!! i want to be able to map more smooth material and multiple ones to my object how to do that with collada file? Thanks a lot for your kindness.

  43. Wim says:

    I;ve downloaded the papervision stuff with SVN (win) but which papervion directory should i put in my actionscript directory?
    The one the as2 folder the as3 folder the branches folder?? :s

    I’m trying to figure out why i get these errors when compiling the example file… :(

  44. wyktor says:

    Hi Lee,, Thanks for the great tutorial. Could you please give me a hint on how to capture AR result? Do I need a special server/software configuration to do this?

    thanks for the reply:)

  45. Dayal says:

    Dear Lee

    Can i do all these with Opensource Tools.

    Like compiling the Agumented Reality sources in SWF files.

    I donot want to use ADOBE’s FLEX or AS editor

    Best REgards
    DAyal
    Singapore

  46. Seth says:

    Good day all?

    Great tutorial! I am currently tinkering with a tutorial I chanced upon on the Adobe Newsletter. One small problem though – are there web cam minimum specs required? I am using a 1.3 mega pixels web cam and upon connecting to the flash app, I get a black image instead of the required live video stream. Any help would be much appreciated.

    Kind regards

  47. Great tutorial, thanks for sharing. :)

  48. Wouter Gort says:

    Whoa this was a great tutorial, thanks a lot!

    Although I kind of have a little problem.. When I leave the settings at 640 x 480 everything works fine.. but as soon as I change the resolution to 320 x 240 nothing works anymore:S and I catch errors al the time.. I can’t figure out what’s the problem. My webcam has trouble to display the 640×480 resolution, but runs smooth at 320 x 240.

    Thanks in advance,

    Wouter

  49. Legotick says:

    Great stuff. Though I am getting this error as a lot of others are.

    1061: Call to a possibly undefined method getPosition through a reference with static type org.papervision3d.core.geom:Vertex3D

    I have downloaded the latest of each (papervision and FLARToolkit).

  50. Legotick says:

    for those experiencing this error:
    1061: Call to a possibly undefined method getPosition through a reference with static type org.papervision3d.core.geom:Vertex3D

    download the pv3d at link below… this fixed it for me.

    http://papervision3d.googlecode.com/files/Papervision3D_2.0.883.zip

  51. Martijn says:

    Hi lee,

    Thanks for the tutorial. But I have a problem. When I want to test the application it gives me an error that he can not find my HTML page and SWF page. How can I fix this???

    Thanks

  52. Martijn says:

    Hi,

    Okay I have fixed my first problem en finished the tutorial. But I have two errors and I can figure out what it is. I have done exactly what you said. It has something to do with missing rightparen or semicolon.

    The two errors are:

    - 1084: Syntax error: expecting identifier before rightparen. Line 93
    - 1086: Syntax error: expecting semicolon before dot. Line 93

    Line 93 is:

    var ml.MaterialsList = new MaterialsList({all: new FlatShadeMaterial(pl)});

    I hope you can help me.

    Thankssss

  53. Martijn says:

    Hello its me again. Everything is good exept one error:

    1046: Type was not found or was not a compile-time constant: Event. line 116

    I saw in the tutorial when you type ” addEventListener(Event.ENTER_FRAME, loop); ” that the program recognize it. But it seems that I dont have that file or something. How is that possible and if I am missing a file where can I get that? I downloaded the flartoolit and papervision 3D again but I can find that file.

    THanks

  54. miguel says:

    i finally solved it, ty anyway for the tutorial, u must make another on how embed video or custom designed models instead cube etc, greetings :)

  55. Martijn says:

    PLEASE!! Is there anyone who can help me!!! I have everything as it shoot be but I get an error:

    1017: The definition of base class DisplayObject3D was not found.

    test/src/org/libspark/flartoolkit/support/pv3d FLARBaseNode.as line 39

    The paths seems okay. I realy don’t know what the problem is.

    Thanks

  56. lek says:

    thanks dude, very comprehensive walk through you had made there, especially for guys like myself who are totally new to PPV and AR.

  57. Arjen van Voorst says:

    I am impressed. But while recreating this tutorial I get some weird errors, which I haven’t been able to solve.

    Since I have Dutch Flexbuilder, error descriptions are in Dutch. But you’ll probable know what it’s about:

    I have downloaded all the required stuff, checked you’re path (in the vid) on where to put it. Still no succes.

    Severity and Description Path Resource Location Creation Time Id
    1017: De definitie van basisklasse NyARCode is niet gevonden. FLARdemo/[source path] ActionScripts/org/libspark/flartoolkit/core FLARCode.as line 32 1268326865086 804
    1017: De definitie van basisklasse NyARParam is niet gevonden. FLARdemo/[source path] ActionScripts/org/libspark/flartoolkit/core/param FLARParam.as line 39 1268326865091 811
    1017: De definitie van basisklasse NyARRgbRaster_BasicClass is niet gevonden. FLARdemo/[source path] ActionScripts/org/libspark/flartoolkit/core/raster/rgb FLARRgbRaster_BitmapData.as line 37 1268326865086 805
    1017: De definitie van basisklasse NyARTransMatResult is niet gevonden. FLARdemo/[source path] ActionScripts/org/libspark/flartoolkit/core/transmat FLARTransMatResult.as line 33 1268326865090 810
    1020: Een methode gemarkeerd als ‘override’ moet een andere methode overschrijven. FLARdemo/[source path] ActionScripts/org/libspark/flartoolkit/core/raster/rgb FLARRgbRaster_BitmapData.as line 48 1268326865086 806
    1020: Een methode gemarkeerd als ‘override’ moet een andere methode overschrijven. FLARdemo/[source path] ActionScripts/org/libspark/flartoolkit/core/raster/rgb FLARRgbRaster_BitmapData.as line 52 1268326865087 807
    1020: Een methode gemarkeerd als ‘override’ moet een andere methode overschrijven. FLARdemo/[source path] ActionScripts/org/libspark/flartoolkit/core/raster/rgb FLARRgbRaster_BitmapData.as line 56 1268326865087 808
    1045: Interface NyARSquareContourDetector_IDetectMarkerCallback niet gevonden. FLARdemo/[source path] ActionScripts/org/libspark/flartoolkit/detector FLARSingleMarkerDetector.as line 183 1268326865088 809

  58. Hermann says:

    I can’t get this to work. I have all files, i imported all libraries and still keeps showing errors.

  59. Umair says:

    1017: The definition of base class NyARCode was not found. FLARdemo2/[source path] Flash Source/org/libspark/flartoolkit/core FLARCode.as

    keep getting this error don’t know why ..
    any help will be appritiated

  60. Umair says:

    Did a little Check ..

    you have to place the jp folder from

    FLARToolKit_ver2_x_xlibsNyARToolKitAS3src\n
    into the root of your Source Path

  61. Nilesh says:

    I am gettin the error 1017: The definition of base class NyARCode was not found. aug/[source path]
    Action Scripts/org/libspark/flartoolkit/core FLARCode.as

    Pls. help me down

  62. Abhay says:

    1046: Type was not found or was not a compile-time constant: Vector.

    NyARMatchPattDeviationBlackWhiteData.as

    aug/[source path] Action Scripts/jp/nyatla/nyartoolkit/as3/core/match

    anybody help me out

  63. Ian B says:

    Does anyone just have a simple set of source files that I can try out without any programming and ideally just swap out the 3d collada file with my own model?

    It all seems extremely complicated just to get started.
    Thanks

  64. Fahim says:

    I have a small question. How can I add a webcam into my website for users to view my AR work?

  1. [... I just uploaded a new tutorial showing you how to create a simple AR scene. Some of this code is a little hairy but you don't have to understand every ...]

  2. [... I just uploaded a new tutorial showing you how to create a simple AR scene. Some of this code is a little hairy but you don't have to understand every ...]

  3. [... I just uploaded a new tutorial showing you how to create a simple AR scene. Some of this code is a little hairy but you don't have to understand every ...]

  4. [... I just uploaded a new tutorial showing you how to create a simple AR scene. Some of this code is a little hairy but you don't have to understand every ...]

  5. [... I just uploaded a new tutorial showing you how to create a simple AR scene. Some of this code is a little hairy but you don't have to understand every ...]

  6. [... I just uploaded a new tutorial showing you how to create a simple AR scene. Some of this code is a little hairy but you don't have to understand every ...]

  7. [... I just uploaded a new tutorial showing you how to create a simple AR scene. Some of this code is a little hairy but you don't have to understand every ...]

  8. [... I just uploaded a new tutorial showing you how to create a simple AR scene. Some of this code is a little hairy but you don't have to understand every ...]

  9. [... I just uploaded a new tutorial showing you how to create a simple AR scene. Some of this code is a little hairy but you don't have to understand every ...]

  10. [... I just uploaded a new tutorial showing you how to create a simple AR scene. Some of this code is a little hairy but you don't have to understand every ...]

Leave a Comment