Categories
SDK releases

Introducing: Wikitude SDK 5

Update (August 2017): Object recognition, multi-target tracking and SLAM: Track the world with SDK 7

We would like to share the details of our version 5 of the cross-platform Wikitude SDK with you.
We have been working on this release for some time now and consider this our most ambitious release since launching the first version of the Wikitude SDK more than three years ago.

Continue to read the details and you will easily understand why.

For our developers the Wikitude SDK 5 brings increased flexibility when it comes to choosing your development environment.

Beside the existing options to work with Wikitude’s JavaScript API and the well-established extensions for Cordova, Titanium and Xamarin, developers are now able to embed augmented reality features using the new Wikitude Native API for Android and iOS. The Native API will give access to all computer-vision related features like 2D Markerless Image Recognition and Tracking, 2D Cloud Markerless Image Recognition and Tracking.

Speaking of 2D image tracking, the new SDK extends – literally – its functionality here as well. Extended Image Tracking, available in both Native and JavaScript API, is a new tracking mode that will keep the image tracking on although the original target image can not be seen by the camera image anymore.

The Native API is also the base for the new Unity3D plugin for the Wikitude SDK. With the Unity3D plugin developers are able to add 2D target images to their Unity3D based application.

Starting with this SDK release, developers are be able to create and use custom plugins for the Wikitude SDK. Plugins under this framework can receive a shared camera frame plus additional information about recognized images – like the pose and distance. Plugins can either be written in C++, Java or ObjC and can communicate with your augmented reality experience.

Furthermore the Wikitude SDK 5 brings full compatibility with Android Studio (intermediate set-up guide is already available).

WikitudeSDK_architecture_v5

Extended Image Tracking

150527_WT_SDK5_Icon_ExtendedTracking The Extended Image Tracking option is an advanced tracking mode for 2D markerless tracking, that will continue to track your target image, although it can’t be seen by the camera anymore. Users will scan your target image as of now, but will be able to leave the target and continue to move around, still keeping the tracking of the entire 3D scene.
Extended Tracking is the first release of Wikitude’s new 3D Tracking engine and is supplementing Wikitude’s 2D image tracking capabilities. The new mode is fantastic for larger 3D model sceneries, or smaller image targets on larger surfaces, where the user can move around more freely.

Native API for Wikitude SDK

150527_WT_SDK5_Icon_iOS-Android For all developers, who want to use the Wikitude SDK at its core, Wikitude is branching off its computer vision core technology. The Native API contains the full computer vision engine of the Wikitude SDK, but can be integrated using native programming languages for Android and iOS (Java, ObjC).

 

The Native API features:

  • Plugin Framework
  • 2D Image Recognition and Tracking (Offline)
  • 2D Cloud Recognition and Tracking (Online)
  • 2D Extended Image Tracking

Unity3D Plugin for Wikitude SDK

150527_WT_SDK5_Icon_Unity3D
Based on the new Native API, Wikitude offers a plugin for Unity3D so you can integrate Wikitude’s computer vision engine into a game or application fully based on Unity3D. This means you can work with target images and image recognition in your Unity3D app and benefit from the full feature set of the Unity3D development environment. Adding the power of Wikitude’s SDK with the advanced capabilities of Unity3D makes this combo an unbeatable duo.

Plugin Framework

150527_WT_SDK5_Icon_Plugin
The new Plugin Framework allows to extend the Wikitude SDK by 3rd party functionality. Plugins for the Wikitude SDK have access to the camera frames and information about recognized images (pose, distance). This is perfect for additional functionality that also requires camera images. Plugins are written in C++, Java or ObjC and can communicate both with the JavaScript API and the Native API.

The SDK includes two samples for plugins:

  • Barcode and QR Scanner
  • Face Detection

Full Android Studio compatibility

150527_WT_SDK5_Icon_AndroidStudio Android Studio is becoming more and more the preferred IDE for developing Android apps.
While the Wikitude SDK version 4.1 can run in Android Studio Wikitude SDK 5.0 now has been optimized to work nicely with Android Studio.

  • Updated library format .aar
  • Sample App for Android Studio

Availability

Update (August 2017): The SDK 7.0 official release is now available for download. Customers with a valid Wikitude subscription license will receive future updates for free upon release.

Oh, there is one more thing…3D Tracking!

Wikitude will publicly release SLAM based 3D tracking capabilities soon! Please check wikitude.com/SLAM for details. Here is a quick video demo to give you a glimpse of what’s coming.

Categories
SDK releases

SDK 5 BETA live! Unity3D, extended tracking, plugins API

Update: It has been some time since the launch of Wikitude – Unity 3D Beta Plugin. Check out the updates on all AR development frameworks supported by Wikitude.

With this BETA version of the SDK 5.0, we are finally delivering on our promise we made a few weeks ago that this release will be BIG. Big because is it absolutely packed with features.

Our former Director of Product Management and newly appointed CTO Philipp Nagele likes to summarize it as follows: “The sheer number and significance of the features included in this release are exceptional. Our talented team of computer vision experts and mobile developers has shown once again how to fulfill the AR technology requirements from some of the biggest brands and companies around.”

This BETA version is still a bit rough around the edges. While we are working day and night – literally – to finalize our testing and documentation, we need to apologize to you should this cause you any trouble! We will continue to keep the fully stable SDK 4.1.1 up on our download page while offering the BETA version of the SDK 5.0 in parallel, so you can try it out already and get things going with some new features (see full list of features). Needless to say, if you purchase the SDK 4.1.1 today, you will get a FREE upgrade to the final release of the SDK 5.0 coming out shortly.

Unity 3D plugin

Built for our new native API, allowing you to dig deep and to code in Android or iOS, we are now offering a free Unity 3D plugin for those of you building powerful 3D experiences or AR games. One of our SDK customers in the gaming space has already put this feature to good use. “We are working with Wikitude’s augmented reality technology for some time now but have been missing the connecting piece to Unity, which we as a game studio heavily rely on. We are happy that Wikitude now filled that gap”, says Redox CEO Philipp Götz. Check out Redox’s video below showing their latest AR experiment based on the Wikitude SDK in connection with the Unity3D plugin.

Extended image tracking

Based on popular demand we are adding this feature to give you more freedom and to expand your augmented reality space. A picture is worth a thousand words, better yet, watch the video below to understand the power of this feature better.

In this example video a facility manager of a large building uses the image for primarily two purposes:

  1. To identify the floor of the building and the exact room location of where he is.
  2. To initialize the AR experience as a highly accurate reference point and to show the matching content, in this case, the water pipes running behind the walls allowing him to drill a hole into the wall at the correct spot.

Wikitude SDK plugins API

“Power to our developers” is what best describes this feature. Do you want to combine text recognition / OCR, barcode, or QR code technologies with augmented reality? Now you can! Our partners and OCR specialists at ANYLINE have built the project shown in the video below as we prepared for the launch of this “open” feature. You can also check out our dedicated page for more details on this feature.

As always, we would love to hear your feedback in the comments section below, in our developer forum, on Facebook, Twitter, or directly via email at feedback@wikitude.com

Categories
SDK releases

Preview on the wikitude SDK Plugins API

The SDK 5 is now available for download!

In the past months our development focus for the Wikitude SDK was on executing our ambitious plans for the next major version – 5.0, released at the end of August. Today we are lifting the curtain on one particular feature: the Wikitude SDK Plugins API!

Over and over customers approached us with the desire to enhance the functionality of the Wikitude SDK with features from other areas of computer vision. Optical character recognition (OCR), face detection and recognition of QR codes were demanded repeatedly. All these features have two things in common: first they also require access to the camera image, and second they can compliment the AR experience built with the Wikitude SDK.

Embedding and integrating some of those libraries on our own would have been an option, but it would have bloated the SDK, and we were sure, that we wouldn’t be able to cover all customer requirements. The idea then was born to link external libraries to the SDK through a common interface, which then lead to the concept of plug-ins for the wikitude SDK.

Technically a plugin is a class, either written in C++, Java or ObjC, that is derived from the wikitude Plugin base class. Beside lifecycle handling and options to enable and disable the plugin, the Plugin class has two main methods that you can override

cameraFrameAvailable, which is called each time the camera has a new frame
update, which is called each time the wikitude SDK renders a new frame

/* Derive from this class for custom plugin implementations */
class Plugin {
   public:
      Plugin();
      ~Plugin();
      string identifier() const; // returns a unique plugin identifier
      bool processesColorCameraFrames(); // returns true if the plugins wants to process color frames instead of bw
 
      void setEnabled(bool enabled_);
      bool isEnabled();
 
      string callJavaScript(string javaScriptSnippet); // evaluates the given JavaScript snippet in the currently loaded ARchitect World context.
 
   protected:
      void initialize(); // called when the plugin is initially added to the Wikitude SDK
      void pause(); // called when the Wikitude SDK is paused e.g. the application state changes from active to background
      void resume(uint pausedTime_); // called when the Wikitude SDK resumes e.g. from background to active state. pausedTime represents the time in milliseconds that the plugin was not updated.
      void destroy(); // called when the plugin is removed from the Wikitude SDK
 
      void cameraFrameAvailable(const Frame&; cameraFrame_); // called each time the camera has a new frame
      void update(const vector recognizedTargets_); // called each time the Wikitude SDK renders a new frame
 
   protected:
      string      _identifier;
      bool        _enabled;
}; 

With those methods in place your plugin will be able to read the full camera image for your own purpose, where the YUV image is also processed in Wikitude’s computer vision engine.

In case you have the wikitude SDK running with ongoing image recognition, the plugin API will populate the RecognizedTarget in the update method once an image has been recognized. The plugin can then work with class RecognizedTarget, which wraps the details of the target image in the camera view. With that you can read out the pose of the target image and use it for your purposes. Additionally, the call contains the calculated distance to the recognized target.

class RecognizedTarget {
   public:
      const string&    getIdentifier() const; // the identifier of the target. The identifier is defined when the target is added to a target collection
      const Mat4&      getModelViewMatrix() const; // the model view matrix that defines the transformation of the target in the camera frame (translation, rotation, scale)
      const Mat4&      getProjectionMatrix() const;
      const float      getDistanceToCamera() const; // represents the distance from the target to the camera in millimeter
};

Passing values from within the plugin to the JavaScript part of your augmented reality experience is done via the addToJavaScriptQueue() method of the Plugin class. Using this function will execute any JavaScript code in the context of your augmented reality experience.

We hope you like the first release of the Plugins API and can build powerful extensions for the Wikitude SDK. We already have ideas how to further develop the concept like generic Positionables, which you can pass to the Wikitude SDK (e.g. pose of something you recognize and track) or sharing the render loop with plugins.

Categories
SDK releases

Wikitude SDK Maintenance Release 4.1.1

The Wikitude SDK version 4.1.1 is now available for download. This stable release is purely a maintenance and stability update, with no new added features. The update is available for Android and iOS platform and can be downloaded from www.wikitude.com/download

We highly recommend developers using 4.1.0 install this update to ensure optimal results. If you’re using an older version, please see the migration guides for Android, and/or iOS in our documentation “how to upgrade to 4.1.x”.

The update also includes a revamped iOS setup guide, a guide on how to include the Wikitude SDK in Android Studio and a setup guide for using The Wikitude Cordova plugin with Intel XDK.

A big thanks to all that have reported outstanding issues and feedback.

Changelog for the Wikitude SDK 4.1.1

Fixes
- Windows version of 3D Encoder
- `onError` handler now has more details about what failed
- Loading of ClientTracker works as expected when no `onLoaded` trigger is set
- openInBrowser can load .html files from external storage (Android only)
- an issue with inverted axis when using image recognition in combination with the front camera (iOS only)
Updated
- Documentation clarifications and fixes
- Terms of Service

Categories
SDK releases

Wikitude adds Cloud Recognition and upgrades its SDK

At the biggest annual and global industry event, the Mobile World Congress in Barcelona, Wikitude announces the expansion and upgrade of its product portfolio by adding the all new Wikitude Cloud Recognition service and by releasing its latest version of the award winning augmented reality SDK, now in its 4.1. release.

Wikitude’s all new Cloud Recognition

Bigger projects require bigger storage, that’s where the Wikitude cloud recognition comes in. Building upon Wikitude’s in-house developed image recognition engine, the Wikitude Cloud Recognition service is designed primarily for enterprise organizations that have the need to work with a large number of target images (1000+) including usage within their own content management system. The stand alone Wikitude SDK already includes an on-device / offline recognition service, allowing apps to recognize up to 1,000 images without a network connection.

However, there are projects and apps that have the need to recognize a whole lot more images. The solution for this is the Wikitude Cloud Recognition service. Wikitude’s Cloud Recognition allows developers to work with 50,000 target images hosted directly in the cloud.

Main features of the Wikitude Cloud Recognition include:

  • Search an image database with up to 50,000 images
  • The service is used in combination with the Wikitude SDK offering a simple and convenient way to use Cloud Recognition
  • Two modes supported:
    • Continuous Search (camera constantly screens for target image)
    • Tap to Scan  (take a photo of the target image)
  • Free trial available – each commercial license includes 1,000,000 requests to the service

An enterprise example use case for the Wikitude Cloud Recognition service can be found in the wine industry. Here, a vast number of different packaging and labels require a large database of targets that can be scanned and recognized. 1,000 target images would be a good start, but in industries where there are millions of images to be scanned, the Wikitude Cloud Recognition service is the appropriate solution.

To get started, Wikitude provides a trial token for each user account to test the Cloud Recognition for free (free developer account required). This trial token has a set quota limit that allows developers to try and test the functionality of the service. For production systems, Wikitude offers commercial licenses with various quota limits based on the number of images in your database.

The all-new Wikitude Cloud Recognition service is now live and ready for use. More information as well as a free trial are available at www.wikitude.com/products/wikitude-cloud-recognition/.

The Wikitude SDK 4.1

Concurrently, Wikitude is releasing an updated version of its augmented reality SDK. The Wikitude SDK 4.1 for Android and iOS integrates the functionality to conveniently work with the Wikitude Cloud Recognition service. The SDK can either periodically send images to the cloud server to be recognized (Continuous Search) or transmit just a single still image of the camera live feed (Tap to Scan). The Wikitude SDK does all the heavy lifting for developers in terms of network communication and camera handling – working with the Cloud Recognition service in the SDK is straightforward and simple.

The Wikitude team worked on further pushing the limits on the performance on-device recognition. The results are considerably improved speed and reliability for recognizing target images. Please see the migration guide on how to benefit from the new target collection format. This also includes the ability to define the physical size of your target image, which then enables a feature called “Distance to user” – the Wikitude SDK calculates the distance to the target image, which can then be queried.

The Wikitude SDK 4.1 now also is able to use the front-facing camera as input feed. Augmenting your selfies has never been easier. This also brings additional controls for interacting with the camera for SDK developers. If needed developers can control zoom and focus of the camera image for their augmented reality experience.

Together with native support for devices running a 64-bit ARM chipset like the Tegra K1 (Nexus 9) the team worked on optimizing low-level functions, taking further advantage of the ARM NEON technology. This makes image tracking faster and less computationally intensive.

On the 3D rendering side the Wikitude SDK 4.1 release fixes several issues leading to increased memory consumption, an issue with animated 3D models not clickable and added supported for clicks on different 3D model parts. The click event now will return the clicked 3D mesh part.

All the new features are captured in an updated sample app shipping together with the SDK and also available on GitHub. Immediately available for Android and iOS. Supported extensions (PhoneGap, Titanium and Xamarin) will be updated in the next days.

This is a free upgrade for all 4.0 users – customers running SDK 2.x or 3.x can purchase upgrades for Wikitude SDK PRO and Wikitude SDK LITE in the online store.