Size matters

  • Rendering inking
  • Rendering shapes
  • Compositing images
  • Applying effects (blur, sepia, etc…)
  • Creating GPU accelerated UI controls (going beyond HTML limitations)

The Right Tool for the Right Job

Bundling the engine is equivalent to bringing together all of the files required by the engine to run. As a developer, you can have an idea of which dependencies your project will require, but it could quickly become tricky to find all of them.

webpack --profile --json > webpack-stats.json
First analysis of engine dependencies

Removing dependencies

Math.js is our math library (no kidding?) and we quickly discovered that the engine was barely using it. As a result, we decided to make some easy changes eliminating the need for engine to rely on it anymore.

Dependency graph
Tools.js dependency graph
Promise.js node

Final outcome

Now that all files requiring tools.js were identified, it was easy to decouple them.

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Babylon.js

Babylon.js

Babylon.js: Powerful, Beautiful, Simple, Open — Web-Based 3D At Its Best. https://www.babylonjs.com/