100,000 balls under gravity bouncing off walls, rendered in WebGL via a single instanced draw call. Tests GPU rendering throughput and CPU physics update speed. Higher FPS is better.
The 3D Newton Benchmark measures GPU rendering throughput and CPU physics update speed by simulating 100,000 rigid spheres subject to gravity and elastic wall collisions inside a closed three-dimensional box. Each frame the CPU integrates positions using symplectic Euler — updating velocity with gravity then advancing position by the timestep — and resolves boundary collisions by reflecting the velocity component normal to each wall face with a restitution damping factor. With 100,000 balls this requires 600,000 arithmetic operations per physics step before any rendering begins.
The GPU renders all 100,000 balls in a single instanced draw call using Three.js InstancedMesh — the most GPU-efficient technique for repeated geometry in WebGL. Every frame the full 6.4 MB instance matrix buffer is streamed from CPU to GPU to reflect updated ball positions, directly stressing GPU memory bandwidth. Each ball is a low-polygon sphere mesh lit by four colored point lights with Phong shading. The camera slowly orbits the scene so fill rate is exercised continuously across the full viewport at the device's native pixel ratio.
The score is the average frames per second sustained over a fixed 15-second run — higher is better. A fast GPU handles the 100,000-instance draw call and the per-frame buffer upload at high throughput; a fast CPU completes the physics integration loop quickly so the GPU is never starved. The combination stresses both the graphics pipeline and the JS engine simultaneously. Results are submitted to the global leaderboard with GPU renderer and core count so hardware comparisons are meaningful across devices.