Showing posts with label Android. Show all posts
Showing posts with label Android. Show all posts

Sunday, October 30, 2011

Javascript based Natural Feature Tracking enables markerless AR in the browser


Coming back from ISMAR 2011 in Basel, I could see a very interesting project by developed by Christoph Oberhofer, Jens Grubert, Gerhard Reitmayr (ICG Graz University of Technology - Austria). It proofs that a reliable and performant natural feature based tracking can actually be implemented in Javascript, HTML5 and WebGL.

There are still a lot of issues especially with the access to live video, but results are already impressive. One has to imagine that this runs entirely on a single website.


The demo runs also on an Android phone with Firefox Beta. Of course not as fluide as on a PC, but still with reasonable interactive framerates. Chrome and Opera alpha were used for the desktop demo. Interestingly it was not running on Firefox on PC.

This work is a very good example of the pace of innovation regarding cutting edge augmented reality applications. There is no need for additional plugins, like FLARToolkit. See my post on that. It runs directly in your browser. It is clearly another possibility to bring augmented reality closer to the a broader public.

We can only imagine what will be possible, when the browser support of HTML5, WebGL and Javascript will be significantly improved and technologies like WebCL will come in play.

Great work


Monday, October 24, 2011

Saturday, October 22, 2011

Volkswagen Golf Cabriolet Augmented Reality App

Volkswagen Golf Cabriolet with an augmented reality app. Available for for the iPad2, iPhone and Android. MAde by Paris based Agency.V. using Total Immersion technology.


Total Immersion released D'Fusion Studio Augmented Reality platform


Total Immersion released there new D'Fusion Studio Augmented Reality platform. It allows developers can create games and applications for a variety of platforms including iOS and Android™, Web, Microsoft® Kinect™ and kiosk

In parallel, they published the AR game SkinVaders for iOS platforms. Which uses facetracking to integrate nasty dots and whatshowever into your face.


SkinVaders play is right on your face – literally! Attack the aliens before they attack you!

Sunday, October 9, 2011

Day 1 Droidcon UK in London

HeavenHell @DroidconUK in London preview made by Nelphy (Diotasoft)


I had the honor to see some sequences of the new HeavenHell game made by Nelphy Games (Faceboook, Twitter). The game is realized using Unity3D and will be available on Android and iOS.




Smooth, responsive and user-friendly UIs: Greendroid prime

Talk by Cyril Mottier, the developer of Greendroid, a popular Android opensource library on github that implements improved user interfaces, like ActionBar, impressive variety ListView examples and a lot more. He talked about principles to optimize and turbo charge your application. Pronciples he follows while developing Greendroid. Here are some essential points (not complete!)
  • Responsiveness, give visual feedback to user action as fast as possible
  • User-friendliness, task-oriented vs feature-oriented
  • Respect the Android UI-Thread, do computation intense stuff in separate parallel threads (AsynchTask)
  • priorize, stop loading/computing when important animal running, reduce of priority of thread/process
Somehow new to me was the fact that you should consider to use services instead of asynctask. Since AsyncTask restarts when the device orientation changes (reload layout). One example could be an image gallery, that loads its content from a webservice in a background thread. Its not improbable that the user switches often in between Landscape and Portrait mode, when watching a single image.

I hereby clarify that Greendroid supports also honeycomb tablet devices! There is only a naming issue concerning the ActionBar method, which will be fixed soon. I tweeted that there is incombatibility, which is not correct!




Surprise surprise! Blackberry goes Android. I heard it before, but RIM indeed had a booth at Droidcon. Unfortunately there were no devices available for developers to test their apps on RIM products.








Papayamobil Talk

The main news (for me!!) at the Papayamobil talk was that there users that indeed spent insane amount of money for Game items. Apparently one single user spent 2400$ on items though in-App purchase. So make sure your game will integrate this feature. Papayamobile games make most money though the in-app payement. There will be Papayamobil iOS support in the near future.


OpenGLES2 & Android QEMU Emulator

Two developers from Accenture presented their work on a Emulator for Android that supports OpenGL ES 2.0 specification. This is quite important work, since up to today, developers without OpenGL ES 2.0 capable phones can't pretty much test their code during development. OpenGL ES 2.0 is the standard implementation for 3D rendering on mobile devices on Android as well as on the IPhone/IPad.

The project is available for download on github. 

Saturday, October 8, 2011

HTC Evo 3D


HTC presented its new powerhorse, the HTC Evo 3D. It comes with an auto-stereoscopic screen that allows you to see objects in 3D stereo without the need of special glasses. This technology exists already for a while, but never took of with standard displays for different reasons. This technology was and is still relatively expensive, there is not enough content available and the quality was not sufficiently good.

Apparently, HTC along with LG (Optimus 3D) has faith in this technology, despite these concerns. The new Evo 3D comes with an impressive 950x540 pixel screen resolution. When using stereo, you got only half the horizontal resolution. there is a button that allows to simply switch between 2d and 3d, which is great. The quality of the 3D stereo display is pretty good. Better than the LG, though thats not surprising, since the screen resolution is higher.

HTC makes a big case about this technology and promoted intensively at DroidconUK. They know they need content to make it a win. But whats the potential content for 3D stereo displays. HTC mentioned movies, games and data visualization. But, in my point of the thing that will make 3D stereo on phones a success will be great 3D games!! I'm entirely convinced. Playing the demo games coming with phone show some good potential and I belief that the creativity of game developers, especially mobile game developers, can give this technology a big boost.

Not to imagine how it could serve for augmented reality.

Some specs of the HTC Evo 3D
  • Screen Size: 4.3"
  • Resolution: 960x540
  • Playback: 720p
  • Weight: 6oz
  • Processor: 1.2GHz Snapdragon 8660
  • Memory: 4GB internal - up to 32GB expandable
  • OS: Android 2.3
  • Cameras: Dual Rear 5MP, Single Front 1.3MP

Thursday, October 6, 2011

Droidcon UK in London Intro

Hi there,

I'am at Droidcon UK in London. Two days of talks all around Android. There are a lot of interesting talks about Business, Design, Games and Development. There are even two talks particularly about Augmented Reality, which I will surely attend. Unfortunately I did not hear anything about a talk related to Unity3D, but it just starts and are two days of presentations to go.

I will write about the talks I liked the most in this blog in the upcoming days.

Stay tuned!

Friday, September 9, 2011

Unity3D “Special Effects with Depth” talk at SIGGRAPH

Unity3D continues to publish their SIGGRAPH 2011 talks.

Thanks guys!

Original Unity blog post.


SIGGRAPH 2011 - Bedroom frenzySIGGRAPH 2011 - Breakfast with ParticlesOle and I promised to share the slides from our talk at the SIGGRAPH 2011 Studio. The presentation covers various graphics techniques that use depth, normals and color buffers. The methods range from improving standard techniques to creating entirely new ones, like approximate volumetric effects or advanced image post-processing. The buffers used are in many cases the natural products of the rendering pipeline and offer a way to infer surprisingly much information about the scene, thus allowing for very rich and fast graphics effects.
It may be a worthy read both for artists and programmers, as we discuss the possibilities of some unusual special effects and their technical side.


Fast mobile shaders or rather Mobile! Fast!

I post the slides of what seams to be a great talk about 3D rendering on mobile devices (with Unity3D) by Aras Pranckevičius (@aras_p) and Renaldas Zioma (@__ReJ__) Unity Technologies.

The presentation is kind of general in the beginning focusing on the global differences and challenges between the "new" mobile and "classic" desktop rendering environments. Later they go in detail with actual techniques you can or should use to improve your rendering with Unity3D on a mobile device.

The presentation is quite extensive and all slides contain comments, which give a lot of details.

To give one example, MipMaps are your friends, even better with anisotropic filtering for cryspiness and use texture compression if your device support it. Moreover you can filter the Android market for texture compression support, which allows you to optimize your app for devices with different compression systems. If you want to!

How can the CPU be used to improve quality and speed of your 3D without draining the battery and how Unity3D does it.

Have fun!
 

Thursday, August 11, 2011

Talk on mobile Augmented Reality at Paris Android User Group (Paug)

Hi there,

here is the video of our mobile augmented reality talk given at Paris Android User Group in june.

In the first part Atef Haouari presented a technique to create a mobile AR application for Android using position (GPS) and orientation sensors. There is a recap of the entire talk here.

In the second part (from 1:07h), I present some of our work in the area of vision based mobile augmented reality for Android using the Qualcomm AR SDK (QCAR) and Unity3D.

The presentation was held in french. Sorry for all the non-french speakers.



Watch live streaming video from parisandroidug at livestream.com

Sunday, July 17, 2011

Plugins for Unity3D

Hi there,

during the following weeks I will write a small series of posts about plugins for Unity3D. In particular how to create plugins for Android and Windows applications.

While Unity3D already comes with a big amount of features, not all of them are available on all platforms. Especially the mobile platforms lack of many functionalities. Using plugins, you can use additional features in your project. You can integrate your own sound plugin, give access to a particular render engine or use other external APIs. Plugins can also be very useful if you already possess a library with functionalities that you are interested in using.

Unity3D allows you to write your individual plugin, which you can access through interfaces (C# or Javascript) inside your project. The integration of your own plugin is not necessarily difficult but can easily become cumbersome, if you are not familiar with concepts, like Dllimport or JNI.

The basic structure of a Unity3D plugin consists of multiple layers. At Unity level a Javascript/C# interface layer, a layer that serves as a wrapper (like JNI), and finally your_library layer (C/C++/Java). The underlying concept of such an approach is to define interfaces (interface layer) that will give you inside Unity access to methods implemented outside of Unity, for example in a particular library (your_library Layer). Such access is often realized using a wrapper, like JNI (wrapper layer). JNI (Java Native Interface) is a popular tool to access native (C/C++) code from Java, which you might know if have already worked with the Android NDK (Native Development Kit).

In the following, I present an overview of the some common methods to access external functionalities on the Android and the Windows platform.

Android
A very easy way to access a particular Android function from Unity3D, without the need to implement a particular plugin, is the AndroidJNI interface provided by Unity3D. The wrapping is done internally by Unity3D, so you do not have to worry about that. The drawback is that you can only access functions provided by the Android SDK Unity3D is linked to.

Accessing Android from Unity3D via AndroidJNI interface

There are basically two ways to implement Unity plugins for Android applications. Firstly, using Java and the Android SDK or secondly in C/C++ using the Android NDK, as illustrated in the following illustration.

Accessing Android from Unity3D using JNI

Windows
Plugins for Windows applications are implemented using a so called Dllimport, that gives access to an external shared library (dll) under Windows.

Access to an external dll library


In the several follow up posts I will go in more detail on each of these approaches.

Links
Unity3D Plugins Documentation

Monday, July 11, 2011

Breizhcamp Recap

Hi there,

Last friday I went to Rennes to give a talk at the Breizhcamp on mobile augmented reality for Android using the Qualcomm AR SDK and Unity3D. Bassically an extended version of my previous PAUG talk in Paris. Slides are below. There will be as well a video I will post as soon as I get my hands on it.

Anyway, Breizhcamp was really cool. A lot of nice presentations around GWT, .Net, Android, iOS etc. There was also a talk about Kinect, which was interesting and quite entertaining at the same time.

Breizhcamp Rennes 2011


Slides of my mobile AR talk at PAUG now online

Interview at Droidcon 2011 in Berlin

My interview (in german!) with Golem.de at Droidcon in Berlin march 2011 on mobile Augmented Reality. Link to the article Golem.de http://www.golem.de/1103/82345.html

Initial thoughts on mobile AR (SDKs)

Novel augmented reality SDKs allow developers to create a new generation of innovative augmented reality games and applications for mobile devices that use Android. This new technology is able to estimate the handhelds’ pose from almost any desired 2D image or photograph.

Thanks to increasing performance of modern mobile devices, innovative operating systems and powerful third-­‐party libraries, developers are able to create a new generation of augmented reality applications. Such apps are able to locate their position and orientation (pose) in space, using cutting edge computer vision algorithms. This way, virtual information can easily be integrated into a real environment in real time, which is known as mobile Augmented Reality (AR).

One of the first mobile AR applications was Layar. It used integrated sensors, like GPS, compass and accelerometer, to determine the device approximate position and orientation. In the following, virtual information about the environment was integrated in the captured video image.

Another approach to augment reality uses computer vision algorithms. Instead of using sensors, it determines the cameras’ pose using a visual reference, which is usually a 2D image (marker). One popular application that proposes such an approach was ARToolkit. ARToolKit was early ported to Android (NyArtoolKit), but has never been really successful due to bad performance and the inflexible marker design.

Today, a novel generation of computer vision algorithms are able to estimate cameras’ pose from natural features inside the environment in real time. This means, that almost any 2D image or photograph can be used as a reference, if it contains a minimum amount of visual information (features). Therefore, almost any 2D image can be used as a reference marker to allow the tracking algorithm to extract the camera pose in real time on a mobile phone.

In October 2010, Qualcomm released a free SDK (QCAR) for Android powered devices, which uses such advanced visual tracking algorithms. The SDK can be used in combination with the Android SDK or NDK. There exists also a plugin for Unity3D. Using these tools developers can create mobile augmented reality applications, like games.