For augmented reality resources, the strongest matches are jeromeetienne/ar.js (AR), google-ar/arcore-android-sdk (This Android ARCore SDK provides the native libraries and) and ar-js-org/ar.js (AR). googlewebcomponents/model-viewer and aframevr/aframe round out the shortlist. Each is ranked by relevance to your query, popularity and recent activity.
Discover the best open-source augmented reality resources on GitHub, ranked by stars and activity, to compare and pick the right one.
AR.js is a web-based augmented reality framework used to create immersive experiences directly in a browser using WebGL and WebRTC. It provides a cross-platform runtime that executes on mobile devices and head-mounted displays without requiring a dedicated application installation. The framework includes a marker-based engine for detecting physical patterns or barcodes to anchor digital overlays, a location-based tool for positioning entities via GPS coordinates, and a face tracking library for anchoring content to human facial features. It supports multi-marker simultaneous tracking, custom
AR.js is a web-based augmented reality framework that provides marker-based detection, cross-platform runtime support, and head-mounted display integration for building browser-based AR experiences.
The Android ARCore SDK is a software development kit and augmented reality framework used to create experiences on Android devices. It provides a collection of tools and native libraries for tracking device motion and mapping physical environments to place virtual objects in real space. The framework utilizes an environmental tracking API to detect physical planes and estimate ambient lighting, which blends digital content with the real world. It includes systems for fixing virtual content to specific physical locations to maintain spatial stability as a user moves through an environment. Th
This Android ARCore SDK provides the native libraries and frameworks for building augmented reality experiences with motion tracking and surface plane detection, though its platform scope is specific to Android rather than fully cross-platform.
AR.js is a JavaScript library for building augmented reality experiences that run directly in the web browser. It provides the core capability to render digital content overlaid on the real world using either the A-Frame HTML component system or the three.js JavaScript library, supporting both marker-based and location-based AR approaches. The library enables tracking of predefined 2D images, fiducial markers, and image targets through the device camera, allowing virtual objects such as 3D models, videos, or images to be positioned relative to recognized visual references. For location-based
AR.js is a JavaScript library for building web-based augmented reality experiences that supports marker-based detection and location tracking, though it lacks modern SLAM and depth-sensing features.
model-viewer is a web component used to render and interact with three-dimensional models directly in a web browser. It functions as a glTF 3D model renderer and an interactive WebGL component, encapsulating a 3D rendering pipeline within a custom HTML element. The project enables web-based augmented reality, allowing 3D assets to be projected into physical environments using a mobile device camera. It provides tools for augmented reality projection and experience creation by combining 3D models with camera tracking. The component supports 3D product visualization and the integration of inte
This web component enables basic browser-based augmented reality projection for 3D models using mobile device cameras, though it lacks advanced AR features like SLAM tracking and spatial anchors.
A-Frame is a declarative 3D scene engine and WebXR framework used to build virtual and augmented reality experiences directly in the web browser. It utilizes an entity component system where generic objects are assigned behaviors through attachable components and lifecycle hooks. The framework allows the assembly of immersive environments using HTML-like markup to define geometries, lighting, and materials. It implements WebXR standards to ensure consistent playback across different hardware and browsers, including support for VR headsets, desktops, and mobile devices. The system covers a br
A-Frame is a declarative WebXR framework for building augmented reality and virtual reality experiences in the browser using HTML markup and an entity-component system. While it relies on underlying WebXR implementations for advanced spatial features like SLAM and plane detection, it directly serves as a developer tool for creating AR web applications.
ARKit-CoreLocation is a location integration framework designed to synchronize augmented reality scenes with real-world GPS coordinates. It provides a geospatial positioning engine and anchor system that links 3D scene objects to specific physical latitudes and longitudes. The framework distinguishes itself through sensor-fusion coordinate alignment, combining high-frequency motion data with GPS updates to maintain stable coordinates and refine user positioning. It includes specialized tools for compass calibration and scene orientation correction to align the 3D environment with True North.
ARKit-CoreLocation is a specialized Swift framework for synchronizing AR scenes with GPS coordinates, making it a valuable tool for building location-based augmented reality experiences despite focusing primarily on geospatial positioning rather than full-suite AR capabilities.
Babylon.js is a JavaScript game engine and real-time graphics renderer designed for creating interactive three-dimensional visuals and applications. It functions as a web-based 3D framework and WebGL engine that enables the deployment of high-performance 3D content across various web platforms and devices. The project provides tools for web-based 3D game development, real-time graphics rendering, and the creation of browser-based interactive visualizations. It also supports the development of WebXR virtual and augmented reality experiences using standard web technologies. The framework cover
Babylon.js is a web-based 3D graphics framework and game engine that supports cross-platform augmented reality development through WebXR, though its primary focus is general 3D rendering rather than dedicated AR features like advanced SLAM tracking or spatial anchors.
pyslam is a framework for Simultaneous Localization and Mapping that combines Python flexibility with C++ performance. It is a sparse SLAM implementation designed to map environment geometry and track device location by processing image frames into 3D points. The project features a bridge for exposing high-performance C++ classes to Python scripts using zero-copy memory sharing. This integration allows for switching between a scripting interface for rapid prototyping and a compiled core for execution speed. The system includes a spatial map optimizer to refine 3D point and camera pose estima
This is a Simultaneous Localization and Mapping (SLAM) and visual odometry framework rather than a general augmented reality developer toolkit, making it a foundational building block for tracking rather than a complete AR experience library.
Cartographer is a software library and spatial localization engine for simultaneous localization and mapping. It provides a framework for calculating the precise position and orientation of a device while concurrently generating real-time 2D and 3D representations of its environment using lidar-based data. The system implements a real-time mapping approach that uses live sensor streams to track device heading and position. It utilizes a submap-based mapping strategy to divide environments into local maps that are aligned into a global map. The project covers a range of SLAM capabilities, inc
Cartographer provides robust SLAM and spatial localization capabilities, but it is primarily designed for robotics and lidar-based mapping rather than general-purpose augmented reality application development.
ORB_SLAM3 is a visual-inertial SLAM library designed for real-time simultaneous localization and mapping. It provides a framework for tracking camera movement and building 3D maps of environments using monocular, stereo, or RGB-D cameras combined with inertial sensors. The system features a multi-map fusion engine capable of merging separate spatial sessions into a single seamless representation of an environment. It includes specialized processing for wide-angle and fisheye lenses to expand the visual field of view for spatial tracking. The library covers a broad range of spatial intelligen
ORB_SLAM3 is a powerful visual-inertial SLAM library for camera tracking and mapping, but it is primarily a robotics and computer vision building block rather than an end-to-end augmented reality development framework.
model-viewer is a web-based 3D model viewer provided as a web component for rendering interactive three-dimensional assets and animations directly in a browser. It functions as a specialized GLTF web renderer designed to display GLTF and GLB files with settings optimized for performance and quality. The project includes a WebXR augmented reality player that projects 3D models into real-world environments using mobile device cameras and spatial tracking. It also features a visual regression testing tool capable of generating golden images and comparing renders to detect visual regressions in 3
It is a web component for rendering 3D models and includes a WebXR augmented reality player, but it functions primarily as a GLTF viewer rather than a comprehensive developer framework for building full AR experiences.
| Repository | Stars | Language | License | Last push |
|---|---|---|---|---|
| jeromeetienne/ar.js | 15.8K | HTML | MIT | |
| google-ar/arcore-android-sdk | 5.2K | C++ | NOASSERTION | |
| ar-js-org/ar.js | 5.9K | JavaScript | mit | |
| googlewebcomponents/model-viewer | 8.1K | TypeScript | Apache-2.0 | |
| aframevr/aframe | 17.6K | JavaScript | MIT | |
| projectdent/arkit-corelocation | 5.5K | Swift | MIT | |
| babylonjs/babylon.js | 25.7K | TypeScript | Apache-2.0 | |
| luigifreda/pyslam | 3.1K | Python | gpl-3.0 | |
| googlecartographer/cartographer | 7.9K | C++ | Apache-2.0 | |
| uz-slamlab/orb_slam3 | 8.7K | C++ | GPL-3.0 |