All Projects → tentone → apate-ar

tentone / apate-ar

Licence: MIT license
Framwork for environment aware AR with occlusion, lighting PBR rendering, physics support (cannon.js), based on three.js

Programming Languages

javascript
184084 projects - #8 most used programming language
GLSL
2045 projects
HTML
75241 projects

Projects that are alternatives of or similar to apate-ar

aframe-hit-test
A-Frame hit-testing example
Stars: ✭ 39 (-49.35%)
Mutual labels:  threejs, augmented-reality, webxr
Threear
A marker based Augmented Reality library for Three.js
Stars: ✭ 124 (+61.04%)
Mutual labels:  threejs, augmented-reality, webxr
Jeelizfacefilter
Javascript/WebGL lightweight face tracking library designed for augmented reality webcam filters. Features : multiple faces detection, rotation, mouth opening. Various integration examples are provided (Three.js, Babylon.js, FaceSwap, Canvas2D, CSS3D...).
Stars: ✭ 2,042 (+2551.95%)
Mutual labels:  threejs, augmented-reality
Ar.js
Image tracking, Location Based AR, Marker tracking. All on the Web.
Stars: ✭ 3,048 (+3858.44%)
Mutual labels:  threejs, augmented-reality
lvr
👓 Augmented Reality for everyone - Out of the world experiences
Stars: ✭ 92 (+19.48%)
Mutual labels:  threejs, augmented-reality
Webxr Handtracking
👐 WebXR hand tracking examples
Stars: ✭ 116 (+50.65%)
Mutual labels:  threejs, webxr
Remixvr
RemixVR is a tool for collaboratively building customisable VR experiences.
Stars: ✭ 129 (+67.53%)
Mutual labels:  threejs, webxr
Webxr Emulator Extension
WebXR emulator extension
Stars: ✭ 231 (+200%)
Mutual labels:  threejs, webxr
Ar Gif
Easy to use augmented reality web components
Stars: ✭ 52 (-32.47%)
Mutual labels:  threejs, augmented-reality
spark-ar-physics
A helper module for connecting Spark AR with physics libraries
Stars: ✭ 28 (-63.64%)
Mutual labels:  augmented-reality, cannonjs
threelet
Portable 3D/WebXR component based on three.js
Stars: ✭ 38 (-50.65%)
Mutual labels:  threejs, webxr
cannon-es-debugger
Wireframe debugger for use with cannon-es https://github.com/react-spring/cannon-es
Stars: ✭ 69 (-10.39%)
Mutual labels:  threejs, cannonjs
Handy.js
Handy makes defining and recognizing custom hand shapes in WebXR a snap!
Stars: ✭ 76 (-1.3%)
Mutual labels:  threejs, webxr
Studio
An authoring platform to build Web Augmented Reality experiences, without coding knowledge
Stars: ✭ 135 (+75.32%)
Mutual labels:  threejs, augmented-reality
3dstreet
🚲🚶🚌 Web-based 3D visualization of streets using A-Frame
Stars: ✭ 74 (-3.9%)
Mutual labels:  threejs, webxr
Three.vrcontroller
Support hand controllers for Oculus, Vive, Windows Mixed Reality, Daydream, GearVR, and more by adding VRController to your existing Three.js-based WebVR project.
Stars: ✭ 213 (+176.62%)
Mutual labels:  threejs, webxr
MyOOS
MyOOS [Shop system] Repository
Stars: ✭ 26 (-66.23%)
Mutual labels:  augmented-reality, webxr
Webxr Physics
Adds physics to WebXR
Stars: ✭ 18 (-76.62%)
Mutual labels:  threejs, webxr
Egjs View3d
Fast & customizable 3D model viewer for everyone
Stars: ✭ 34 (-55.84%)
Mutual labels:  threejs, webxr
depth-sensing
Specification: https://immersive-web.github.io/depth-sensing/ Explainer: https://github.com/immersive-web/depth-sensing/blob/main/explainer.md
Stars: ✭ 47 (-38.96%)
Mutual labels:  augmented-reality, webxr

Environment-Aware WebXR Augmented Reality

  • Web-based framework for environment-aware rendering and interaction in augmented reality based on WebXR using three.js
  • The framework implements realistic rendering of 3D objects, handles with geometry occlusions, matches the lighting of the environment, casts shadows, and provides physics interaction with real-world objects.
  • Target the web environment and have designed our solution to work on a vast range of devices as, monocular camera setups or devices with dedicated higher quality depth sensors.
  • Single application while being capable of obtaining over 20 frames per second even on middle-range devices.
  • Demonstration video of the features in the framework.
  • Based on the experimental WebXR AR draft API available in Chrome 88+

Getting Started

  • Download the repository from git gh repo clone tentone/ar-occlusion
  • Install Node and NPM.
  • Prepare a browser compatible with WebXR in a depth with support for depth-estimation, hit-test and lighting.
  • Install dependencies from NPM by running npm install and start the code running npm run start

Algorithms

  • To ensure consistency in the rendering of the virtual scene we implement a physically-based rendering pipeline.

  • Physically correct attributes are associated with each 3D object that, combined with lighting information captured by the device, enables the rendering of AR content that matches the real-world illumination.

  • Depth data provided by WebXR to dynamically place 3D objects around the environment, calculate geometry occlusion and build a model of the environment to enable physics interaction.

  • Calculate geometry occlusion on a pixel basis directly from the projected vertices coordinates to prevent loss in data precision

  • To reuse the PBR pipeline of three.js we inject our code into the existing shaders generated by the library using the onBeforeCompile method of the material.
  • We use the cannon.js physics simulation engine for all physics interactions.
  • The environment is mapped using a probabilistic voxel based model that is updated every frame.

License

  • The code from the project is MIT licensed. The license is available on the project repository,
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].