The aim of the project is to create an easy to use, lightweight, 3D library with a default WebGL renderer. The library also provides Canvas 2D, SVG and CSS3D renderers in the examples.
Examples — Documentation — Wiki — Migrating — Questions — Forum — Slack — Discord
This code creates a scene, a camera, and a geometric cube, and it adds the cube to the scene. It then creates a WebGL renderer for the scene and camera, and it adds that viewport to the document.body element. Finally, it animates the cube within the scene for the camera.
import*asTHREEfrom'js/three.module.js';varcamera,scene,renderer;vargeometry,material,mesh;init();animate();functioninit(){camera=newTHREE.PerspectiveCamera(70,window.innerWidth/window.innerHeight,0.01,10);camera.position.z=1;scene=newTHREE.Scene();geometry=newTHREE.BoxGeometry(0.2,0.2,0.2);material=newTHREE.MeshNormalMaterial();mesh=newTHREE.Mesh(geometry,material);scene.add(mesh);renderer=newTHREE.WebGLRenderer({antialias: true});renderer.setSize(window.innerWidth,window.innerHeight);document.body.appendChild(renderer.domElement);}functionanimate(){requestAnimationFrame(animate);mesh.rotation.x+=0.01;mesh.rotation.y+=0.02;renderer.render(scene,camera);}If everything went well you should see this.