Build from Source

The main project repository is at exokitxr/exokit. You can clone it the regular way:

git clone https://github.com/exokitxr/exokit.git

Windows requirements

Requirements: Node.js 11.6.0, Python 2, Visual Studio 2015 or 2017

Alternative requirements: Node.js 11.6.0, as administrator: npm install -g windows-build-tools

macOS requirements

Requirements: Node.js 11.6.0, XCode

Linux requirements

Requirements: Node.js 11.6.0

Linux additionally requires that you install some local dependencies. For Debian/Ubuntu they are:

apt-get install -y \
build-essential wget python libglfw3-dev libglew-dev libfreetype6-dev libfontconfig1-dev uuid-dev libxcursor-dev libxinerama-dev libxi-dev libasound2-dev libexpat1-dev

Install and build

Make sure to be using Node v11.6.0. We recommend using nvm or nvm-windows for managing Node versions. After Node v11.6.0 is installed, all of the Exokit dependencies and native code can be build with npm install:

cd exokit
npm install

Common build errors

This section covers common errors when building the Exokit engine and their solutions.

Error: Cannot find module './build/Release/vm_one.node'

There was a build failure that was ignored and node_modules contains the failure. Wipe node_modules and try to build again.

rm -rf node_modules
npm cache clean

<SkImage.h> not found, or a missing header

This means a prebuilt dependency did not extract. Clear your npm/yarn cache, rm -Rf node_modules and npm install again.

Notes

  1. Exokit’s bindings code is a native module build using the binding.gyp recipe.
  2. Exokit downloads and uses several prebuilt dependencies. They have been pre-compiled for all supported architectures and uploaded to npm. They self-extract themselves based off detected architecture.

Run Exokit Engine

Exokit Engine is just a node module, so you can run it with node. From the exokit git clone directory, do:

node . <site URL or file path>

Debugging

You can use the regular Node debugging tools and gdb to debug Exokit Engine. See the debugging documentation for more information.

Contributing

Please file an issue if you encounter any bugs. Pull Requests are very much welcome as well.