Chialab Open Source
Published in

Chialab Open Source

Introducing AR.js 3

New features, a new Github organisation and a new Documentation. All that you need to know about AR.js 3.

AR.js GIF showing supported AR types: Marker Based, Location Based, Image Tracking.

We’re finally here. After months of work, AR.js version 3 is out.

The aim was to make it a true, free alternative to paid Web AR solutions. We don’t know if we’ve accomplished this, but we are feeling that AR.js has more features than ever and is way more collaborative than before.

We have worked hard, spent many days and nights — obviously, we are coders, what did you expect? — and we are now so thrilled to share this achievement with the community. We know that it can be better, we know its limitations, but we can’t wait to share the result of this journey.

AR.js is now under a Github organisation, that means, it is more collaborative than ever. It has a new structure, a new Documentation (yes, I know you were waiting for this for too long) and most of all, we’ve added Image Tracking, what we felt was the missing piece for a true alternative to Web AR paid solutions.

No rush. Let’s see every change one by one.

But first of all, a huge, huge thanks to the wonderful guys who made this possible: Walter Perdan, Thorsten Bux, Daniel Fernandes, misdake, hatsumatsu, and many more. It was great to built this with all of you.

You can find AR.js 3 at the link below.

AR.js new Repository:

Github organisation

AR.js Github org homepage.

AR.js is now under a Github organisation:

We made this decision to avoid the single-point-of-failure of having an OSS project owned by only one (or few) users. Users may become inactive and this can slow down the project. This can happen, and the only way to prevent this, safely, is to make possible for more people to have permissions to modify the repositories under a Github organisation.

Also, a project under a Github org is a better guarantee for Institutions or private companies who want to use/contribute to the project. And last but not least, to work on a project that is not ‘owned’ by an individual, but is owned by a community, is something that makes users more willing to help and contribute.

Everyone can request access to the Organisation. You can do that by leaving your Github account as a comment on this article, or by reaching me (Nicolò Carpignoli) on Twitter (@nicolocarp).

Even if you’re not part of the org, you can still see, fork and use any project under the AR.js Organisation, they’re public available to everyone.

New Documentation

ARjs Docs homepage.

New AR.js Documentation:

AR.js was missing a good Documentation, that’s a fact. A Github Readme, plus some others markdown files, was maybe enough for few developers but not for everyone.

That’s because Github was not designed to create Documentation, lacking of features like a search function and a side navigation menu, for example.

The new Documentation is very basic, simple in its design, it is meant to not distract the user: you will find every information you need, very fast.

We tried to add every API and suggestion you may need. I (Nicolò) will continue to write some tutorials as blog posts on Medium, but the official reference will become the new AR.js Docs, and we are commited to keep it always updated with AR.js API changes.

Image Tracking is here

AR.js now features three types of AR: Marker Based, Location Based AR and Image Tracking.

T-Rex popping out magically from a dinosaur picture.
T-Rex popping out magically from a dinosaur picture.

The latter is the one added with version 3.

The technology for Image Tracking is called NFT (Natural Feature Tracking). Basically, using a generator (NFT Marker Generator) it is possible to create image descriptors, that once loaded on an AR.js 3 Web app , will be used to recognise the input image.

Once the image has been recognised, just like with Markers, it will show a content (3D models, 2D images, videos) or trigger actions (open a link, etc.), choice is yours. As for markers, it will be possible to create Image Tracking Web AR using only HTML, if choosing the A-Frame version.

Multiple, alternative versions of AR.js

AR.js is now coming in two alternative versions. You have to choose between import the version with Image Tracking and Location Based, or the version with Marker Based and Location Based. That’s due to incompatibility of Image Tracking and Marker Based features. We’re looking forward to make them compatible near in the future.

ES6 support, Aruco/Tango deprecated

We’ve cleaned the code, reducing the repository size of about ~36%. We’ve added the support to ES6 syntax, although a refactor of the entire codebase is still to be defined. And we removed Google Tango support (deprecated by Google itself) and Aruco Markers (that are not to be confused with Hiro markers/Barcode markers, still supported). They are features that according to our analysis were not used anymore, from the early days of the project. They’re still available until version 2.0.8.

These one are the main news we wanted to share. Check the Changelog for more details.

Next steps will regard AR.js Studio project, closely related to AR.js. We plan to speed its development and possibly integrate also Image Tracking. Read here to learn more. Also, we are planning to enhance Location Based feature and Image Tracking performances (about the latter, adding Web Assembly support will surely be something we will work on).

Well, we hope you will enjoy AR.js v3, and most of all, that you will be able to build great, useful, funny, unexpected AR experiences with it. We can’t wait to see your work!

Chialab is a design studio. We create relations between things and people, handling the strategy, planning, software and contents.