AR.js is a lightweight JavaScript library for building augmented reality experiences on the web. It provides image tracking, location-based AR, and marker tracking capabilities, all executable directly in web browsers without requiring native app installation.
The library addresses the challenge of bringing AR functionality to web platforms by offering three distinct tracking modes. Image tracking allows users to point their camera at reference images to trigger AR content. Location-based AR uses GPS coordinates to place virtual objects at specific geographic positions that remain anchored as the user moves and looks around. Marker tracking uses printed QR-code-like markers to trigger AR experiences. The tool integrates with A-Frame for simplified entity-component-based development and with Three.js for lower-level graphics control, offering multiple build variants so developers can import only the tracking features they need.
Developers should choose this tool if they need web-based AR without native app distribution overhead. It suits projects requiring any of its three tracking modes, particularly those already using A-Frame or Three.js. The README notes that for image tracking and face tracking specifically, MindAR offers an alternative with support for multiple simultaneous image targets. AR.js remains the only library providing both marker-based and location-based AR on the web. The project provides official documentation and multiple build options tailored to different use cases, from A-Frame builds combining image tracking with location features to Three.js builds offering various feature combinations.
The project maintains multiple build variants in parallel, each serving distinct feature combinations. Development activity shows ongoing maintenance of the documentation and examples, with an official documentation site and live examples demonstrating each tracking mode. The tool has transitioned through different maintainers and is now managed by the AR.js organization rather than individual contributors.