Goo Engine is an open-source 3D engine using HTML5 and WebGL for rendering.
Browser: add the following to your webpage.
<script src="http://code.gooengine.com/latest/lib/goo.js"></script>
Node.js:
npm install --save goojs
// var goo = require('goojs'); // (for node.js)
// Create a runner
var gooRunner = new goo.GooRunner();
var world = gooRunner.world;
// Add the canvas to the DOM
document.body.appendChild(gooRunner.renderer.domElement);
// Add a light entity
world.createEntity(new goo.PointLight(), [100, 100, 100]).addToWorld();
// Add a camera entity
world.createEntity(new goo.Camera(), new goo.OrbitCamControlScript({spherical: [5,0,0]})).addToWorld();
// Add a box entity with a rotation script
world.createEntity(new goo.Box(), goo.Material.createMaterial(goo.ShaderLib.simpleLit), function update(entity) {
entity.setRotation(world.time, world.time, 0);
}).addToWorld();
Goo Create is a complete 3D authoring platform built on top of the Goo Engine.
npm install
npm install -g grunt-cli
grunt minify
- Run
grunt unittest
to run all tests using Karma - Run
npm test
to test the parts of the engine that are supported in Node.js
Start a web server, e.g. using:
npm install st -g
st --port 8000
And then open:
- Visual tests: http://localhost:8000/visual-test/
To make sure that no incorrectly styled code gets committed, install the pre-commit hook:
grunt init-git
This makes Git check whether all added and modified files pass the style check before allowing a commit.
grunt jsdoc
- outputs to out-doc
GooJS uses a custom documentation compiler, modoc; see tools/modoc/README.md
for more details.
- Minified and mangled:
grunt minify
- Minified:
grunt minify-no-mangle
- Concatenated:
grunt minify-dev
The Goo Engine is released under the MIT license.