Light Types
Compare Directional, Point, Spot, and Hemisphere lights on a sphere and ground plane.
Controls
Benchmark
Runs fixed workloads with warmup frames, repeated samples, p50/p95 FPS and frame timing, workload counters, pipeline timings, and JSON output.
import * as EASEL from "easel";
const scene = new EASEL.Scene();
const camera = new EASEL.PerspectiveCamera({
fov: 45,
aspect: width / height,
near: 0.1,
far: 100,
});
camera.position.z = 8;
camera.position.y = 2;
scene.add(new EASEL.AmbientLight(0xffffff, 0.15));
const dir = new EASEL.DirectionalLight(0xffffff, 1);
dir.position.set(3, 5, 4);
const point = new EASEL.PointLight(0xffffff, 1, 20, 2);
point.position.set(2, 3, 2);
const spot = new EASEL.SpotLight(0xffffff, 1, 20, Math.PI / 6, 0.5, 2);
spot.position.set(2, 4, 2);
const hemi = new EASEL.HemisphereLight(0x8888ff, 0x443322, 1);import * as THREE from "three";
const scene = new THREE.Scene();
const camera = new THREE.PerspectiveCamera(45, width / height, 0.1, 100);
camera.position.z = 8;
camera.position.y = 2;
scene.add(new THREE.AmbientLight(0xffffff, 0.15));
const dir = new THREE.DirectionalLight(0xffffff, 1);
dir.position.set(3, 5, 4);
const point = new THREE.PointLight(0xffffff, 1, 20, 2);
point.position.set(2, 3, 2);
const spot = new THREE.SpotLight(0xffffff, 1, 20, Math.PI / 6, 0.5, 2);
spot.position.set(2, 4, 2);
const hemi = new THREE.HemisphereLight(0x8888ff, 0x443322, 1);