201217Mär

Cannon.js: JavaScript-Physik-Engine für WebGL-Szenen

Wer mit WebGL und 3D-Szenen im Browser experimentiert, wird unter Umständen das Bedürfnis nach einer Physik-Engine hegen: Mit einer solchen Bibliothek lassen sich physikalisch korrekte Kollisionen von Objekten simulieren. Für Simulationen im zweidimensionalen Bereich hat sich Box2D bestens bewährt. Nun werden auch dreidimensionale Kollisionen interessant und aus diesem Grund hat sich der Entwickler Stefan Hedman aus Schweden eine eigene JavaScript-Physik-Engine gebaut. Sie heißt Cannon.js und steht bei GitHub zur Verfügung.

Cannon.js

Das Beispiel setzt auf Three.js, wobei die Cannon-Bibliothek auch unabhängig genutzt werden kann. Eine Schwierigkeit bei der Erstellung einer Physik-Engine liegt in der Optimierung der Berechnungen (Number Crunching), die der Entwickler durch den Einsatz von typisierten Arrays (Float32Array) erreicht hat. Momentan lassen sich nur Sphären und Flächen (Planes) animieren, doch die Arbeit an der Engine wird stetig fortgesetzt.
Eine alternative Physik-Bibliothek wäre Ammo.js, die allerdings mit einer Größe von über 1 MB noch etwas sperrig ausfällt.