# Description

Entry point for 8th Wall's Javascript API

## Functions

| Function | Description |
| --- | --- |
| [addCameraPipelineModule](https://8thwall.org/docs/api/engine/xr8/addcamerapipelinemodule) | Adds a module to the camera pipeline that will receive event callbacks for each stage in the camera pipeline. |
| [addCameraPipelineModules](https://8thwall.org/docs/api/engine/xr8/addcamerapipelinemodules) | Add multiple camera pipeline modules. This is a convenience method that calls [addCameraPipelineModule](https://8thwall.org/docs/api/engine/xr8/addcamerapipelinemodule) in order on each element of the input array. |
| [clearCameraPipelineModules](https://8thwall.org/docs/api/engine/xr8/clearcamerapipelinemodules) | Remove all camera pipeline modules from the camera loop. |
| [initialize](https://8thwall.org/docs/api/engine/xr8/initialize) | Returns a promise that is fulfilled when the AR Engine's WebAssembly is initialized. |
| [isInitialized](https://8thwall.org/docs/api/engine/xr8/isinitialized) | Indicates whether or not the AR Engine's WebAssembly is initialized. |
| [isPaused](https://8thwall.org/docs/api/engine/xr8/ispaused) | Indicates whether or not the XR session is paused. |
| [pause](https://8thwall.org/docs/api/engine/xr8/pause) | Pause the current XR session. While paused, the camera feed is stopped and device motion is not tracked. |
| [resume](https://8thwall.org/docs/api/engine/xr8/resume) | Resume the current XR session. |
| [removeCameraPipelineModule](https://8thwall.org/docs/api/engine/xr8/removecamerapipelinemodule) | Removes a module from the camera pipeline. |
| [removeCameraPipelineModules](https://8thwall.org/docs/api/engine/xr8/removecamerapipelinemodules) | Remove multiple camera pipeline modules. This is a convenience method that calls [removeCameraPipelineModule](https://8thwall.org/docs/api/engine/xr8/removecamerapipelinemodule) in order on each element of the input array. |
| [requiredPermissions](https://8thwall.org/docs/api/engine/xr8/requiredpermissions) | Return a list of permissions required by the application. |
| [run](https://8thwall.org/docs/api/engine/xr8/run) | Open the camera and start running the camera run loop. |
| [runPreRender](https://8thwall.org/docs/api/engine/xr8/runprerender) | Executes all lifecycle updates that should happen before rendering. |
| [runPostRender](https://8thwall.org/docs/api/engine/xr8/runpostrender) | Executes all lifecycle updates that should happen after rendering. |
| [stop](https://8thwall.org/docs/api/engine/xr8/stop) | Stop the current XR session. While stopped, the camera feed is closed and device motion is not tracked. |
| [version](https://8thwall.org/docs/api/engine/xr8/version) | Get the 8th Wall Web engine version. |

## Events

| Event Emitted | Description |
| --- | --- |
| xrloaded | This event is emitted once `XR8` has loaded. |

## Modules

| Module | Description |
| --- | --- |
| [AFrame](https://8thwall.org/docs/api/engine/aframe) | Entry point for A-Frame integration with 8th Wall Web. |
| [Babylonjs](https://8thwall.org/docs/api/engine/babylonjs) | Entry point for Babylon.js integration with 8th Wall Web. |
| [CameraPixelArray](https://8thwall.org/docs/api/engine/camerapixelarray) | Provides a camera pipeline module that gives access to camera data as a grayscale or color uint8 array. |
| [CanvasScreenshot](https://8thwall.org/docs/api/engine/canvasscreenshot) | Provides a camera pipeline module that can generate screenshots of the current scene. |
| [FaceController](https://8thwall.org/docs/api/engine/facecontroller) | Provides face detection and meshing, and interfaces for configuring tracking. |
| [GlTextureRenderer](https://8thwall.org/docs/api/engine/gltexturerenderer) | Provides a camera pipeline module that draws the camera feed to a canvas as well as extra utilities for GL drawing operations. |
| [LayersController](https://8thwall.org/docs/api/engine/layerscontroller) | Provides a camera pipeline module that enables semantic layer detection and interfaces for configuring layer rendering. |
| [MediaRecorder](https://8thwall.org/docs/api/engine/mediarecorder) | Provides a camera pipeline module that allows you to record a video in MP4 format. |
| [PlayCanvas](https://8thwall.org/docs/api/engine/playcanvas) | Entry point for PlayCanvas integration with 8th Wall Web. |
| [Threejs](https://8thwall.org/docs/api/engine/threejs) | Provides a camera pipeline module that drives three.js camera to do virtual overlays. |
| [XrConfig](https://8thwall.org/docs/api/engine/xrconfig) | Specifying class of devices and cameras that pipeline modules should run on. |
| [XrController](https://8thwall.org/docs/api/engine/xrcontroller) | `XrController` provides 6DoF camera tracking and interfaces for configuring tracking. |
| [XrDevice](https://8thwall.org/docs/api/engine/xrdevice) | Provides information about device compatibility and characteristics. |
| [XrPermissions](https://8thwall.org/docs/api/engine/xrpermissions) | Utilities for specifying permissions required by a pipeline module.
