A Particle System experiment designed to benchmark web technologies: ES6, Emscripten and Web Assembly
JavaScript CSS HTML C++ Shell Makefile
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
ES6 update Sep 13, 2016
Emscripten update point cloud Dec 10, 2016
Test update point cloud Dec 10, 2016
slides update point cloud Dec 10, 2016
webpack update point cloud Dec 10, 2016
.gitignore update Jul 25, 2016
LICENSE update Jul 27, 2016
README.md update Sep 12, 2016
package.json update point cloud Dec 10, 2016
server.js update point cloud Dec 10, 2016

README.md

#Particle System

##Description

A Particle System experiment designed to benchmark web technologies from a non trivial piece of code: ES6, Emscripten and Web Assembly

##Setup/Usage Instructions

  • Building the ASM.js and WebAssembly versions:

If you want to build the Web Assembly version, you need to build the Emscripten toolchain from source using the incoming branch. The master branch does NOT support BINARYEN=1 option at the moment

 [Install Emscripten Portable SDK](https://kripken.github.io/emscripten-site/docs/getting_started/downloads.html#all-os-installation-instructions-portable-sdk)
 
 [Building Emscripten from Source](https://kripken.github.io/emscripten-site/docs/building_from_source/index.html?highlight=build%20from%20source)
 
  . cd particle-system/Emscriptem
  . make
  . emcc -s NO_EXIT_RUNTIME=1 -s release/ParticleSystem.bc --post-js ParticleSystem/glue.js -o dist/asmjs/ParticleSystem.asm.js
  (or run emcc-asmjs.sh script for mac/linux users. Assumes emcc is in your PATH)
  . eemcc -s NO_EXIT_RUNTIME=1 -s BINARYEN=1 release/ParticleSystem.bc --post-js ParticleSystem/glue.js -o dist/wasm/ParticleSystem.js
  (or run emcc-wasm.sh script for mac/linux users. Assumes emcc is in your PATH)
  • Building the the ES6 Particle System Library and the Test pages:

      . npm install
      . npm run build-lib-dev / npm run build-lib-prod
      (prod version is minified and without source map)
      . npm run build-tests
    
  • Running the tests:

    Serve Test/. with the HTTP server of your choice ...

If you want to test Web Assembly versions, you need a browser that supports Web Assembly.

At the moment Chrome Canary, Firefox Nighly and soon in Microsoft Edge.

Slides

Boost your Web Application with C++

Live Tests

Performance Tests:

Autodesk Forge Viewer Test:

Three.js Tests:

I've been testing against the following browsers: Chrome, Chrome Canary, Firefox, Firefox Nightly and Safari. Only Canary and Firefox Nightly supports WASM, so the following benchmark only indicate those. Running WASM in a browser that doesn't support it is using a fallback which ends up being very very slow ...

Benchmark results

License

This sample is licensed under the terms of the MIT License. Please see the LICENSE file for full details.

##Written by

Written by Philippe Leefsma