Geometry Parameters
Adjust segment count on Sphere, Torus, Cylinder, and Cone.
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 size = 5;
const camera = new EASEL.OrthographicCamera({
left: -size * aspect,
right: size * aspect,
top: size,
bottom: -size,
near: 0.1,
far: 100,
});
function buildGeometry(shape, segments) {
if (shape === "Torus")
return new EASEL.TorusGeometry(0.9, 0.35, segments, segments * 2);
if (shape === "Cylinder")
return new EASEL.CylinderGeometry(0.7, 0.7, 1.8, segments);
if (shape === "Cone")
return new EASEL.ConeGeometry(0.9, 1.8, segments);
return new EASEL.SphereGeometry(1.1, segments, Math.floor(segments * 0.75));
}
scene.remove(mesh);
mesh = new EASEL.Mesh(buildGeometry(shape, segments), material);
scene.add(mesh);import * as THREE from "three";
const scene = new THREE.Scene();
const size = 5;
const camera = new THREE.OrthographicCamera(
-size * aspect,
size * aspect,
size,
-size,
0.1,
100,
);
function buildGeometry(shape, segments) {
if (shape === "Torus")
return new THREE.TorusGeometry(0.9, 0.35, segments, segments * 2);
if (shape === "Cylinder")
return new THREE.CylinderGeometry(0.7, 0.7, 1.8, segments);
if (shape === "Cone")
return new THREE.ConeGeometry(0.9, 1.8, segments);
return new THREE.SphereGeometry(1.1, segments, Math.floor(segments * 0.75));
}
scene.remove(mesh);
mesh = new THREE.Mesh(buildGeometry(shape, segments), material);
scene.add(mesh);