Skip to content
This repository


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Client and server code to exercise browsers under game-like conditions to measure how many sprites can moved around on the screen at once.

tag: v0.4.1

Fetching latest commit…


Cannot retrieve the latest commit at this time

Octocat-spinner-32 bin
Octocat-spinner-32 chess
Octocat-spinner-32 droid
Octocat-spinner-32 engine
Octocat-spinner-32 iframe
Octocat-spinner-32 images
Octocat-spinner-32 lib
Octocat-spinner-32 logs
Octocat-spinner-32 perf
Octocat-spinner-32 pvn
Octocat-spinner-32 simpledemo
Octocat-spinner-32 space
Octocat-spinner-32 test
Octocat-spinner-32 tools
Octocat-spinner-32 trench
Octocat-spinner-32 .gitignore
Octocat-spinner-32 license.txt
Octocat-spinner-32 restart


JSGameBench exists to explore HTML5’s game performance limits. For version 0.1, the focus is sprite performance a player is likely to see. Scoring is how many sprites are drawn, so large scores are better. Going forward, we want to collect peak and average scores for browsers across a range of hardware configurations. We hope JSGameBench helps the community improve game performance and we look forward to HTML5 game engine developers improving on our ideas and crushing these number!

For each render path, JSGameBench draws as many moving, animating sprites as possible at 30fps against a background with both axis-aligned and rotated sprites. We try both because significant performance differences between the two indicate flaws or oversights in current rendering techniques. More importantly, while animation can be used instead of sprite rotations, it is often an unacceptable trade off that game developers should not be forced to make.

The final score is the geometric mean of the axis aligned and rotated scores. Geometric mean is used to prevent a high axis aligned score from hiding the poor rotated performance.


JSGameBench is licensed under the Apache 2.0 license ( except as noted otherwise.

How to run it

install nodejs

Get the stable build of nodejs from ./configure --prefix=~/local make;make install add ~/local/bin to your PATH


Install npm node package manager curl | sh

install node package

npm install

run it (runs on port 8081 by default)

node bin/jsgamebench


Install node-inspector for server debugging: (

npm install node-inspector

Something went wrong with that request. Please try again.