Skip to content
/ taro Public
forked from Cloud9c/taro

A lightweight 3D game engine for the web.

License

Notifications You must be signed in to change notification settings

OliverXH/taro

 
 

Repository files navigation

GIF

A lightweight 3D game engine for the web. Built with three.js and cannon-es.

  • ⚛️ Physics - Full integration with a 3D rigid-body physics engine.
  • 🔌 Entity Component System - Write efficent and extendable code.
  • 🔊 Sound - 3D positional sounds built on the Web Audio API.
  • 📜 Scripts - Design game behaviors in JavaScript.
  • ⚡ Performance - Taro is a thin framework on top of three.js.

Documentation

You can find the Taro documentation on the website.

Usage

There are several examples on the website. Here is an example to get started:

var app = new TARO.App();
document.body.appendChild( app.domElement );

var scene = new TARO.Scene();
app.setScene(scene);

class CubeController {
  init() {
    // fires when the component is attached to an entity
    this.rotation = this.entity.rotation;
  }

  update() {
    // fires once per frame
    this.rotation.x += 0.01;
    this.rotation.y += 0.01;
  }
}

TARO.registerComponent('cubeController', CubeController);

var cube = new TARO.Entity('cube');
cube.addComponent('material', { color: 0x00ff00 });
cube.addComponent('geometry', { type: 'box' });
cube.addComponent('cubeController');

var camera = new TARO.Entity('camera');
camera.position.z = 5;
camera.addComponent('camera');

app.start();

This example will display a spinning cube on the canvas.

Builds

Editor

In addition to the engine, there is a visual editor available to get a taste of Taro.

License

MIT License

About

A lightweight 3D game engine for the web.

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages

  • JavaScript 100.0%