Peter Jensen

Intel Corporation


Worked on Intel's C/C++ optimizing compilers and low-level web-runtime technologies.

Box2D with SIMD enhancements in JavaScript

Room: E-130 | Time: 1:30pm - 2:20pm

We'll present a port of the box2D physics engine to JavaScript using SIMD.JS primitives. We'll compare two different ports; a handwritten port and a compiled port from C/C++ using the Emscripten compiler. The tradeoffs and performance differences between them will be shown. We'll cover the type of original C++ SIMD code that can be compiled by Emscripten. Also, the challenges of vectorizing a 2D physics engine, especially vector math, constraint solvers, and batch creation, and how these are applied to the JavaScript version of box2D is covered. Demos using the box2D engine running in the browsers will be shown. The SIMD.JS is a propose standard for doing SIMD programming in JavaScript. It is being considered for inclusion into revision 7 of the ECMAScript standard. The SIMD.JS primitives have been prototyped in both the Chrome and the Firefox browsers. The demos will be done with these prototypes. Emscripten is a compiler, developed by Mozilla, that compiles LLVM bitcode into JavaScript. It can be used with the clang front end to compile C/C++ to JavaScript. We've modified the Emscripten compiler to support generation of SIMD.JS primitives from SIMD code in the original C/C++ code.

1:30pm - 2:20pm