simple 3D scene

Aspiring DevOps | Web Developer | Containerisation | myselfMohammedaArif | Graduate '19-'23
Importing Three.js:
import * as THREE from 'https://unpkg.com/three@0.160.0/build/three.module.js'imports the Three.js library, enabling 3D graphics capabilities in JavaScript.
Creating the Scene, Camera, and Renderer:
const scene = new THREE.Scene();creates a scene to hold the 3D objects.const camera = new THREE.PerspectiveCamera(...);creates a perspective camera, defining how the scene is viewed.const renderer = new THREE.WebGLRenderer();creates a renderer to draw the 3D scene onto a canvas element.
Setting Renderer Size and Pixel Ratio:
renderer.setSize(window.innerWidth, window.innerHeight);sets the renderer's size to match the browser window.renderer.setPixelRatio(devicePixelRatio);ensures high-quality rendering on high-resolution displays.document.body.appendChild(renderer.domElement);adds the renderer's canvas to the HTML document, making it visible.Creating a Green Box:
const boxGeometry = new THREE.BoxGeometry(1, 1, 1);creates a cube-shaped geometry with dimensions of 1x1x1.const material = new THREE.MeshBasicMaterial({ color: 0x00FF00 });creates a material with a green color.const mesh = new THREE.Mesh(boxGeometry, material);combines the geometry and material to create a green box mesh.scene.add(mesh);adds the box to the scene.
Positioning the Camera:
camera.position.z = 6;moves the camera 6 units away from the origin, providing a better view of the box.
Animation Loop:
The
animatefunction creates an animation loop usingrequestAnimationFrame:requestAnimationFrame(animate);schedules the next animation frame for smooth rendering.renderer.render(scene, camera);renders the scene from the camera's perspective.mesh.rotation.x += 0.01;andmesh.rotation.y += 0.01;rotate the box slightly around its X and Y axes in each frame, creating a continuous spinning motion.
Starting the Animation:
animate();initially calls theanimatefunction to start the animation loop.
import * as THREE from 'https://unpkg.com/three@0.160.0/build/three.module.js';
const scene = new THREE.Scene();
const camera= new THREE.PerspectiveCamera(75,window.innerWidth/window.innerHeight,0.1,1000);
const renderer= new THREE.WebGLRenderer();
console.log(scene);
console.log(camera);
console.log(renderer);
// Create a black box
renderer.setSize(window.innerWidth, window.innerHeight);
renderer.setPixelRatio(devicePixelRatio);
document.body.appendChild(renderer.domElement);
const boxGeometry = new THREE.BoxGeometry(1,1,1)
const material = new THREE.MeshBasicMaterial({color: 0x00FF00})
console.log(boxGeometry)
console.log(material)
const mesh =new THREE.Mesh(boxGeometry,material)
console.log(mesh)
scene.add(mesh)
camera.position.z =6
function
animate() {
requestAnimationFrame(animate);
renderer.render(scene, camera);
mesh.rotation.x +=0.01
mesh.rotation.y += 0.01
}
animate();
Overall, this code creates a simple 3D scene with a green box rotating smoothly in space, demonstrating the basic setup and animation process in Three.js.


