From Kudan AR Engine
Jump to: navigation, search


KudanAR provides facilities for image tracking (hereby referred to as markers). It features:

  • No limit on the number of markers, capable of handling hundreds.
  • An API and tools for combining/manipulating sets of markers, leading to differential updates.
  • Offline tools for processing markers including command line tools that can be scripted to process in batch.
  • Marker generation from within the app, either from an image stored on the device, or from the camera stream, making it very easy to test potential markers.

Good markers

A good marker has the following properties:

  • Lots of high contrast corners.
  • A non-repeating pattern.
  • Fairly large in the camera view from its typical viewing position.

When combined with other markers in the same trackable set, markers should be fairly unique compared to the others.

Read more about What Makes a Good Marker?

Creating markers

You can create a marker using the Kudan AR Toolkit on your host computer. You can also generate markers on from images on the device itself via the ARImageTrackable class.

ARImageTrackable *trackable = [[ARImageTrackable alloc] initWithImage:[UIImage imageNamed:@"myimage.png"] name:@"myimage"];

Marker names

Markers within the same trackable set, or registered with the same tracker if marker sets have been combined, require a unique name. This name can be set via the marker creator tools or via the API, and can be used to locate the marker easily.

Marker dimensions

Markers have an arbitrary size property. This is used to define the scene units for rendering and can be set via the marker tools or the API. If a marker is 20x10 then a 3D model with width 20 and height 10 will fit the marker perfectly. It can sometimes be useful to assign real-world units to the marker, for example, the dimensions of the marker in millimeters.

While the dimensions are arbitrary, the aspect ratio of the dimensions should match the aspect ratio of the source image otherwise the behaviour will be undefined.

Marker sets

Markers can be grouped into sets, represented by a single file, for easy management. Sets can be created via the tools or the API.

Sets can be loaded into the tracker:

[trackerManager addTrackableSet:trackableSet];

There is no limit on the number of sets that can be loaded. You can have one set representing 300 markers, or 300 sets each representing one marker. Sets can be loaded from arbitrary paths on the filesystem, so can be downloaded from the internet and loaded.