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,
});
const renderer = new EASEL.Renderer({ canvas, width, height });
scene.add(new EASEL.AmbientLight(0xffffff, 0.5));
const glassMat = new EASEL.LambertMaterial({ color: 0xffffff });
const glassBox = new EASEL.Mesh(new EASEL.BoxGeometry(2, 2, 2), glassMat);
scene.add(glassBox);
const loader = new EASEL.TextureLoader();
loader.load("/textures/Glass_01.png", (texture) => {
glassMat.map = texture;
});import * as THREE from "three";
const scene = new THREE.Scene();
const camera = new THREE.PerspectiveCamera(45, width / height, 0.1, 100);
const renderer = new THREE.WebGLRenderer({ canvas });
renderer.setSize(width, height);
scene.add(new THREE.AmbientLight(0xffffff, 0.5));
const glassMat = new THREE.MeshLambertMaterial({
color: 0xffffff,
transparent: true,
alphaTest: 0.5,
});
const glassBox = new THREE.Mesh(new THREE.BoxGeometry(2, 2, 2), glassMat);
scene.add(glassBox);
const loader = new THREE.TextureLoader();
loader.load("/textures/Glass_01.png", (texture) => {
glassMat.map = texture;
glassMat.needsUpdate = true;
});