Avec Firefox 3, en juin 2008, apparaissait l'élément <canvas>, issu d'HTML 5. Je site la spécification telle qu'en cours de rédaction sur le site du W3C :

The canvas element represents a resolution-dependent bitmap canvas, which can be used for rendering graphs, game graphics, or other visual images on the fly.

En français ;

l'élément canvas représente un canevas de type bitmap, dépendant de la résolution. Il peut être utilisé pour afficher des graphes, des graphiques de jeux ou d'autres images visuelles à la volée.

Il s'agit donc d'une zone rectangulaire qui permet d'afficher une image bitmap (par opposition à "vectoriel") en deux dimensions.

Au moment où il programmait l'implémentation de canvas dans Gecko, le moteur de Firefox, Vlad Vukicevic lançait Canvas 3D, qui permet d'afficher de la 3D dans un élément canvas. Pour ne pas réinventer la roue, Vlad reprend le standard ouvert OpenGL ES et le rend utilisable dans canvas.

Un an et demi plus tard, Khronos (le consortium qui standardise OpenGL) annonce la création d'un standard ouvert et non payant pour la 3D accélérée sur le Web, alors que Google soutient l'initiative.