Skip to content

sergidomenechguzy/app-ar-viewer

Repository files navigation

AR-Viewer

AR-Viewer dark

Augmented-Reality web-app build with PWA functionality using React, three.js and WebXR. It is downloadable through the used browser and offers extensive offline functionality.

A live demo is available here.

AR-Viewer dark 3D-Viewer dark Settings dark Object Selection dark

More screenshots available here.

Uses an AR-Viewer to place 3D-Objects around yourself through your device's camera and a regular 3D-Viewer as an alternative and fallback if your device doesn't support WebXR. Includes a selection of free 3D-Objects but also offers the functionality to upload your own local files (for now only in the .gltf/.glb file format). Supports light mode and dark mode as well as english and german as UI languages.

Currently support for WebXR and the included immersive-ar mode is pretty limited. So at the moment the only platform this app reliably works on with all features is Chrome for Android. When the WebXR API will be included into more browsers, compatibility for this app's AR-Viewer will also increase.

Local Setup

As this app is intended as a downloadable PWA with offline functionality the default scripts use https since a secure connection is required for all PWA features.

Installation

To run this app locally first clone the repository then install the dependencies:

git clone https://github.com/sergidomenechguzy/app-ar-viewer.git
cd app-ar-viewer
npm install

Local Development

npm run start

Build

npm run build

This creates your own production build into the build folder that can be served locally.

Serve

npm run serve

This serves your current build locally over https. Works only after running npm run build.

To create a new build and instantly serve it:

npm run fresh

Note that for these commands to work you need to create your own cert.pem and key.pem files and add them in a .cert folder to the project root. This certificate is used to create the local https server. An easy way to create these files is to use mkcert. Alternatively you can also use the http scripts.

http

As an alternative to the https start, serve and fresh scripts, regular http versions exist as well:

npm run start:http
npm run serve:http
npm run fresh:http

Included Assets

Coaster, Coffee Table, Pepper Grinder, Pouf, Scale, Stool, Wooden Chair 1, Wooden Chair 2, Metal Table, Wooden Table, Metal Cabinet, Modern Sofa, Kitchen Counter with Sink, Bed, Grey L-Shaped Couch, Old Cuoboard, Mixer, Grey Sofa, Simple Ben Bag, Wardrobe, Desk Light, Coat Rack, Lounge Chair