This zip contains your project source code, assets, image targets, and configuration needed to build and publish your 8th Wall project. It does not connect to any 8th Wall services, so will work even after the 8th Wall servers are shut down.
If node/npm are not installed, install using https://github.com/nvm-sh/nvm or https://nodejs.org/en/download.
Run npm install in this folder.
Run npm run serve to run the development server.
To test your project on mobile devices, especially for AR experiences that require camera access, you'll need to serve your development server over HTTPS. We recommend using ngrok to create a secure tunnel to your local server. After setting up ngrok, add the following configuration to config/webpack.config.js under the devServer section:
devServer: {
// ... existing config
allowedHosts: ['.ngrok-free.dev']
}Run npm run build to generate a production build. The resulting build will be in dist/. You can host this bundle on any web server you want.
src/: Contains all your original project code and assets.- References to asset bundles will need to be updated. Asset bundles are now plain folders. For example,
- GLTF bundles need to be updated to the
.gltffile in the folder, i.e., if your model is atassets/mymodel.gltf/, update your code to referenceassets/mymodel.gltf/mymodel_file.gltf.
- GLTF bundles need to be updated to the
- References to asset bundles will need to be updated. Asset bundles are now plain folders. For example,
image-targets/: Contains your project's image targets (if any).- The image target with the
_luminancesuffix is the image target loaded by the engine. The others are used for various display purposes, but are exported for your convenience. - To enable image targets, call this in
app.jsorapp.tsfile. (Note:app.jsorapp.tsmay not be created by default; you will need to create this file yourself.) The autoload targets will have a"loadAutomatically": trueproperty in their json file.
- The image target with the
const onxrloaded = () => {
XR8.XrController.configure({
imageTargetData: [
require('../image-targets/target1.json'),
require('../image-targets/target2.json'),
],
})
}
window.XR8 ? onxrloaded() : window.addEventListener('xrloaded', onxrloaded)config/: Contains the necessary webpack configuration and typescript definitions to support project development.external/: Contains dependencies used by your project, loaded inindex.html.- If you are not using the XR Engine, you can remove the xr.js script tag from
index.htmland delete theexternal/xr/folder to save bandwidth. - You can also customize whether
face,slam, or both, are loaded on thedata-preload-chunksattribute.
- If you are not using the XR Engine, you can remove the xr.js script tag from
Please reach out to support@8thwall.com with any questions not yet answered in the docs. Thank you for being part of 8th Wall's story!