Skip to content

AR.js vs three.js

Which should you use? A side-by-side look at what each one does, who it suits, what it costs, how hard it is to set up, and where each falls short.

AR.js

Open source · MIT

A JavaScript library for marker-based and location-based augmented reality in web pages.

three.js

Open source · MIT

A JavaScript library for drawing and animating 3D scenes in web browsers.

The short answer

Choose AR.js if you need…

  • Developers who want to add simple AR experiences to a website
  • Teams already using A-Frame or Three.js who want AR in the browser
  • People building marker-based AR demos that run without a native app
  • Developers who need location-based AR features in a web page

Choose three.js if you need…

  • Web developers adding interactive 3D graphics to a website
  • Developers building browser-based visualizations or simple 3D animations
  • People who already know JavaScript and want to start with 3D on the web

Side-by-side

AR.jsthree.js
TypeLibraryLibrary
PriceFree and open sourceFree and open source
LicenceMITMIT
GitHub stars15.8k117k
Setup difficultyIntermediateIntermediate
How you get itSee the READMEInstall with a package manager
Main languageHTMLJavaScript
Last code update4 years ago4 days ago

What each one is

AR.js

AR.js is a free, open-source JavaScript library for adding augmented reality to web pages, so that virtual objects appear over a phone or laptop camera view. The README describes it as supporting marker-based and location-based AR. It is typically used together with web 3D tools such as A-Frame and Three.js, which are listed as topics of the project. The README also says the project has moved to a new GitHub organization, and this copy will no longer be updated.

three.js

Three.js is a JavaScript library that lets developers create 3D scenes, cameras, and objects and display them in a web page. The README describes its aim as an easy-to-use, lightweight, cross-browser, general-purpose 3D library. It currently includes WebGL and WebGPU renderers, with SVG and CSS3D renderers available as addons.

Best for

AR.js

  • Developers who want to add simple AR experiences to a website
  • Teams already using A-Frame or Three.js who want AR in the browser
  • People building marker-based AR demos that run without a native app
  • Developers who need location-based AR features in a web page

three.js

  • Web developers adding interactive 3D graphics to a website
  • Developers building browser-based visualizations or simple 3D animations
  • People who already know JavaScript and want to start with 3D on the web

Strengths

AR.js

  • Open source under the MIT license
  • Designed for browsers, so users do not need to install a native app, per the description
  • Supports both marker-based and location-based AR, according to the README

three.js

  • The README presents it as a general-purpose, cross-browser 3D library
  • Includes a documented usage example that creates a scene, camera, mesh, and renderer
  • Has extensive official resources listed, including examples, docs, and a manual

Not ideal for

AR.js

  • Anyone who needs the actively maintained version, because the README says this repository will not be updated and points to a new repository
  • Projects needing image tracking from this repo, since the README says that feature is on the new repository
  • Non-developers looking for a ready-made app, since this is a code library

three.js

  • People who only need 2D graphics, since the library is focused on 3D scenes
  • Anyone looking for a finished app rather than a code library to build with
  • Beginners with no JavaScript experience, as the README code assumes familiarity with modules and the browser

Trade-offs

AR.js

  • The README says this repository is no longer updated and development has moved elsewhere
  • The last push in the provided metadata is from December 2022, so the code may be out of date
  • Setup details and examples are not included in the truncated README, so the exact steps are unclear

three.js

  • The full git history is about 2 GB, so a shallow clone is recommended for most users
  • The README does not describe install steps beyond the import example, so setup details must come from the docs
  • Working in 3D requires understanding concepts like cameras, geometry, and materials

Getting started

AR.js

Clone the repository

git clone https://github.com/jeromeetienne/AR.js
Step-by-step guide: how to use AR.js

three.js

Shallow clone of the repository

git clone --depth=1 https://github.com/mrdoob/three.js.git
Step-by-step guide: how to use three.js

Frequently asked questions

What is the difference between AR.js and three.js?

AR.js: A JavaScript library for marker-based and location-based augmented reality in web pages. three.js: A JavaScript library for drawing and animating 3D scenes in web browsers. AR.js suits developers who want to add simple ar experiences to a website, while three.js suits web developers adding interactive 3d graphics to a website.

Are AR.js and three.js free?

AR.js: Free and open source. three.js: Free and open source.

Is AR.js or three.js more popular?

three.js has more GitHub stars (117k) than AR.js (15.8k). Popularity isn't the same as fit — check which one matches your use case above.

What are other alternatives to AR.js and three.js?

Other options people compare them with include A-Frame, PlayCanvas, PixiJS, G2, Chart.js.

Keep comparing

Built from our catalogue entries for both products: open-source details come from each project's README (AI-assisted, refreshed weekly) and GitHub data; AI-tool details are editorial. Spotted something wrong? Let us know from either product's page.