ForgeJS is a modern web-based engine built on standard technologies (HTML5, Javascript and WebGL) that runs on every modern browser to unleash immersive VR content experiences. It's not only a VR engine, it's a framework for authoring VR content. You can use ForgeJS even if you do not have advanced programming skills: ForgeJS is able to read a configuration file and create the experience from it.
Many documentation resources are available online:
- API Documentation describes all public methods, interfaces, properties and events.
- JSON reference explains how to describe your project in the json configuration file.
- Samples demonstrates how to build your experience in the config.json file.
- Tutorials series explains how to use some of the ForgeJS features in your project.
- Known issues and limitations.
- Frequently asked questions.
Linked project repositories for the ForgeJS javascript framework.
The latest build is available online on our ForgeJS download page.
ForgeJS is licensed under Apache 2.0 license.
ForgeJS has the following dependencies:
- three.js r86 (MIT license)
- hammer.js 2.0.8 (MIT license)
- omnitone 1.0.1 (Apache 2.0 license)
- dash.js 2.6.0 (BSD license)
NOTE: We made a custom build of three.js with some classes concatenated to it. These classes are included in the original three.js repository but not concatenated in the main build. We added EffectComposer, RenderPass, ClearPass, MaskPass, ShaderPass, TexturePass and CopyShader in our three.custom.min.js.
The easiest way to learn how to build a project with ForgeJS is to practice with our tutorials and get inspiration from our samples that are available online.
- Clone the project from GitHub (
git clone https://github.com/gopro/forgejs
). - Install nodejs and npm on your machine (download here).
- Install the grunt-cli npm package (
npm install -g grunt grunt-cli
will install grunt globally on your machine). - Install the node dev dependencies of the project (
cd forgejs && npm install
).
You can now run grunt tasks from the project repo folder. Here is a short list of useful grunt tasks:
Build a non minified build of ForgeJS:
grunt build
Build a minified build of ForgeJS:
grunt min // without logs on FORGE.DEBUG = true
grunt min --keep-log // with logs
grunt min --no-test // without tests
Generate the documentation and the json reference:
grunt doc
Auto watch any changes you made in sources to auto build a non minified build of ForgeJS:
grunt watch:build