Skip to content

allala0/three-engine

Repository files navigation

three-engine


What is three-engine?

three-engine let's you create a three.js scene with one line of code.

Compatibility

Complatible with three.js r.148

How to install

npm install three-engine

How to use

import * as THREE from 'three';
import ThreeEngine from 'three-engine';
new ThreeEngine({
    callbacks: {
        init: threeEngine => {
            const box = new THREE.Mesh(new THREE.BoxGeometry(0.5, 0.5, 0.5), new THREE.MeshStandardMaterial);
            box.setupClickable();
            threeEngine.scene.add(box);
            box.onClick = function(){console.log('Clicked')};
            box.onHover = function(){console.log('Hovered')};
        }
    },
    setup: {
        enableControls: true,
        enableTestLights: true,
        enableAntialias: true,
        DEV_MODE: true
    }
});

Example

You can find example in /examples/example.js. To run example:

git clone https://github.com/allala0/three-engine.git
cd three-engine
npm install
npm run example

TODO

  • Switch to Vite
  • Documentation!!!
  • Fix FXAA antialias warning
  • Export all tools in ThreeEngine
  • Axes helper with signed axes
  • Screenshots
  • Thick lines
  • Built in shaders
    • Outline shader
  • Particle system
  • Geometry sprites
  • Physics engine
  • 3D models
  • 3D models animations
  • PerspectiveCamera min width
  • Builtin custom geometries
  • Geometry editor
  • Postprocessing pipeline manager
  • 3D Editor with UI (adding, moving and rotating, scaling objects, lights, cameras etc. with mouse)
  • Material editor
  • Zoom to cursor in controls
  • First person camera
  • Third person camera
  • Keyboard and mouse controls
  • Multiplayer engine (Colyseus)
  • AI
  • Helpers for test lights
  • Custom loading screens
  • Shadow config in gui
  • Keyboard input
  • UI system
  • Sound system
  • Settings template
  • Mobile touch controls (pinch)

Creator: Artur Brytkowski

Releases

No releases published

Packages

No packages published