Browse Source

Merge branch 'master' of https://github.com/BabylonJS/Babylon.js

David Catuhe 5 years ago
parent
commit
55a1cba7ee
87 changed files with 907 additions and 876 deletions
  1. 70 73
      Playground/debug.html
  2. 111 92
      Playground/frame.html
  3. 49 34
      Playground/full.html
  4. 70 70
      Playground/index-local.html
  5. 82 85
      Playground/index.html
  6. 381 344
      Playground/indexStable.html
  7. 70 70
      Playground/indexWebGPU.html
  8. 16 14
      Playground/js/frame.js
  9. 20 11
      Playground/js/main.js
  10. 2 2
      Playground/js/monacoCreator.js
  11. 0 3
      Playground/package.json
  12. 30 4
      Tools/Gulp/tasks/gulpTasks-localRun.js
  13. 1 0
      dist/preview release/what's new.md
  14. 0 1
      src/Engines/Extensions/engine.rawTexture.ts
  15. 0 1
      src/Engines/Extensions/engine.transformFeedback.ts
  16. 0 1
      src/Engines/Extensions/engine.webVR.ts
  17. 0 1
      src/Engines/engine.ts
  18. 0 1
      src/Engines/nullEngine.ts
  19. 0 1
      src/Events/pointerEvents.ts
  20. 0 1
      src/Gamepads/Controllers/daydreamController.ts
  21. 0 1
      src/Gamepads/Controllers/gearVRController.ts
  22. 0 1
      src/Gamepads/Controllers/genericController.ts
  23. 0 1
      src/Gamepads/Controllers/oculusTouchController.ts
  24. 0 1
      src/Gamepads/Controllers/poseEnabledController.ts
  25. 0 1
      src/Gamepads/Controllers/viveController.ts
  26. 0 1
      src/Gamepads/Controllers/webVRController.ts
  27. 0 1
      src/Gamepads/Controllers/windowsMotionController.ts
  28. 0 1
      src/Gamepads/dualShockGamepad.ts
  29. 1 1
      src/Gamepads/gamepad.ts
  30. 0 1
      src/Gamepads/gamepadManager.ts
  31. 0 1
      src/Gamepads/gamepadSceneComponent.ts
  32. 0 1
      src/Gamepads/xboxGamepad.ts
  33. 0 1
      src/Gizmos/axisDragGizmo.ts
  34. 0 1
      src/Gizmos/axisScaleGizmo.ts
  35. 0 1
      src/Gizmos/boundingBoxGizmo.ts
  36. 0 1
      src/Gizmos/gizmo.ts
  37. 0 1
      src/Gizmos/gizmoManager.ts
  38. 0 1
      src/Gizmos/planeDragGizmo.ts
  39. 0 1
      src/Gizmos/planeRotationGizmo.ts
  40. 0 1
      src/Gizmos/positionGizmo.ts
  41. 0 1
      src/Gizmos/rotationGizmo.ts
  42. 0 1
      src/Helpers/environmentHelper.ts
  43. 0 1
      src/Helpers/photoDome.ts
  44. 0 1
      src/Helpers/videoDome.ts
  45. 0 1
      src/Instrumentation/sceneInstrumentation.ts
  46. 0 1
      src/Layers/effectLayer.ts
  47. 0 1
      src/Layers/effectLayerSceneComponent.ts
  48. 0 1
      src/Layers/highlightLayer.ts
  49. 0 1
      src/Layers/layer.ts
  50. 0 1
      src/Layers/layerSceneComponent.ts
  51. 0 1
      src/LensFlares/lensFlare.ts
  52. 0 1
      src/LensFlares/lensFlareSystem.ts
  53. 0 1
      src/LensFlares/lensFlareSystemSceneComponent.ts
  54. 0 1
      src/Lights/Shadows/cascadedShadowGenerator.ts
  55. 0 1
      src/Lights/Shadows/shadowGenerator.ts
  56. 0 1
      src/Lights/Shadows/shadowGeneratorSceneComponent.ts
  57. 0 1
      src/Lights/directionalLight.ts
  58. 0 1
      src/Lights/hemisphericLight.ts
  59. 0 1
      src/Lights/pointLight.ts
  60. 0 1
      src/Lights/shadowLight.ts
  61. 0 1
      src/Lights/spotLight.ts
  62. 0 1
      src/Loading/Plugins/babylonFileLoader.ts
  63. 0 1
      src/Loading/loadingScreen.ts
  64. 0 1
      src/Loading/sceneLoader.ts
  65. 0 1
      src/Materials/Background/backgroundMaterial.ts
  66. 0 1
      src/Materials/PBR/pbrBaseMaterial.ts
  67. 0 1
      src/Materials/PBR/pbrBaseSimpleMaterial.ts
  68. 0 1
      src/Materials/PBR/pbrMaterial.ts
  69. 0 1
      src/Materials/PBR/pbrMetallicRoughnessMaterial.ts
  70. 0 1
      src/Materials/PBR/pbrSpecularGlossinessMaterial.ts
  71. 0 1
      src/Materials/Textures/Loaders/basisTextureLoader.ts
  72. 0 1
      src/Materials/Textures/Loaders/ddsTextureLoader.ts
  73. 1 1
      src/Materials/Textures/Loaders/envTextureLoader.ts
  74. 1 1
      src/Materials/Textures/Loaders/ktxTextureLoader.ts
  75. 1 1
      src/Materials/Textures/Loaders/tgaTextureLoader.ts
  76. 0 1
      src/Materials/Textures/Procedurals/customProceduralTexture.ts
  77. 0 1
      src/Materials/Textures/Procedurals/noiseProceduralTexture.ts
  78. 0 1
      src/Materials/Textures/Procedurals/proceduralTexture.ts
  79. 0 1
      src/Materials/Textures/Procedurals/proceduralTextureSceneComponent.ts
  80. 0 1
      src/Materials/Textures/baseTexture.polynomial.ts
  81. 0 1
      src/Materials/Textures/baseTexture.ts
  82. 0 1
      src/Materials/Textures/colorGradingTexture.ts
  83. 0 1
      src/Materials/Textures/cubeTexture.ts
  84. 0 1
      src/Materials/Textures/dynamicTexture.ts
  85. 0 1
      src/Materials/Textures/hdrCubeTexture.ts
  86. 0 1
      src/Materials/Textures/internalTexture.ts
  87. 1 1
      src/Materials/Textures/internalTextureLoader.ts

+ 70 - 73
Playground/debug.html

@@ -33,19 +33,19 @@
     <meta name="theme-color" content="#ffffff">
     <meta name="theme-color" content="#ffffff">
 
 
     <link rel="stylesheet" href="https://use.typekit.net/cta4xsb.css" />
     <link rel="stylesheet" href="https://use.typekit.net/cta4xsb.css" />
-    <link rel="stylesheet" href="css/index.css" />
-    <link rel="stylesheet" href="css/index_mobile.css" />
+    <link rel="stylesheet" href="/css/index.css" />
+    <link rel="stylesheet" href="/css/index_mobile.css" />
 
 
     <!-- Pep -->
     <!-- Pep -->
     <script src="https://code.jquery.com/pep/0.4.2/pep.min.js"></script>
     <script src="https://code.jquery.com/pep/0.4.2/pep.min.js"></script>
     <!-- For canvas/code separator -->
     <!-- For canvas/code separator -->
-    <script src="js/libs/split.js"></script>
+    <script src="/js/libs/split.js"></script>
 
 
     <!-- DatGUI CDN -->
     <!-- DatGUI CDN -->
     <script src="https://cdnjs.cloudflare.com/ajax/libs/dat-gui/0.6.2/dat.gui.min.js"></script>
     <script src="https://cdnjs.cloudflare.com/ajax/libs/dat-gui/0.6.2/dat.gui.min.js"></script>
     <!-- jszip -->
     <!-- jszip -->
-    <script src="js/libs/jszip.min.js"></script>
-    <script src="js/libs/fileSaver.js"></script>
+    <script src="/js/libs/jszip.min.js"></script>
+    <script src="/js/libs/fileSaver.js"></script>
 
 
     <!-- Dependencies -->
     <!-- Dependencies -->
     <script src="https://preview.babylonjs.com/ammo.js"></script>
     <script src="https://preview.babylonjs.com/ammo.js"></script>
@@ -97,7 +97,7 @@
     <script src="https://preview.babylonjs.com/serializers/babylonjs.serializers.js"></script>
     <script src="https://preview.babylonjs.com/serializers/babylonjs.serializers.js"></script>
 
 
     <!-- Monaco -->
     <!-- Monaco -->
-    <script src="node_modules/monaco-editor/dev/vs/loader.js"></script>
+    <script src="/node_modules/monaco-editor/dev/vs/loader.js"></script>
 
 
     <!-- Extensions -->
     <!-- Extensions -->
     <script src="https://rawgit.com/BabylonJS/Extensions/master/ClonerSystem/src/babylonx.cloner.js"></script>
     <script src="https://rawgit.com/BabylonJS/Extensions/master/ClonerSystem/src/babylonx.cloner.js"></script>
@@ -108,23 +108,23 @@
     <!-- Big screens -->
     <!-- Big screens -->
     <div class="navbar navBar1280 languageJS">
     <div class="navbar navBar1280 languageJS">
         <div class="categoryTitle">
         <div class="categoryTitle">
-            <img class="logo" src="css/img/logo_v4.svg">
+            <img class="logo" src="/css/img/logo_v4.svg">
             <div class="version">Playground <span class="versionSub" id="mainTitle1280"></span></div>
             <div class="version">Playground <span class="versionSub" id="mainTitle1280"></span></div>
         </div>
         </div>
 
 
         <div class="category languageJS" id="JStoTSbar">
         <div class="category languageJS" id="JStoTSbar">
             <div class="buttonJStoTS languageTS" id="toTSbutton1280">Typescript</div>
             <div class="buttonJStoTS languageTS" id="toTSbutton1280">Typescript</div>
             <div class="buttonJStoTS languageJS" id="toJSbutton1280">Javascript</div>
             <div class="buttonJStoTS languageJS" id="toJSbutton1280">Javascript</div>
-            <div class="buttonPG run removeOnDiff" id="runButton1280"><img src="css/img/playButton.svg"></div>
-            <div class="buttonPG removeOnDiff" id="saveButton1280"><img src="css/img/saveButton.svg"></div>
-            <div class="buttonPG removeOnPhone removeOnDiff" id="zipButton1280"><img src="css/img/downloadButton.svg"></div>
-            <div class="buttonPG removeOnDiff" id="newButton1280"><img src="css/img/newButton.svg"></div>
-            <div class="buttonPG removeOnPhone removeOnDiff" id="clearButton1280"><img src="css/img/clearButton.svg"></div>
-            <div class="buttonPG removeOnPhone removeOnDiff" id="diffButton1280"><img src="css/img/diffButton.svg"></div>
-            <div class="buttonPG removeOnPhone displayOnDiff" id="previousButton1280"><img src="css/img/previousButton.svg"></div>
-            <div class="buttonPG removeOnPhone displayOnDiff" id="nextButton1280"><img src="css/img/nextButton.svg"></div>
-            <div class="buttonPG removeOnPhone displayOnDiff" id="exitButton1280"><img src="css/img/exitButton.svg"></div>
-            <div class="buttonPG select removeOnDiff" id="menuButton1280"><img src="css/img/optionsButton.svg">
+            <div class="buttonPG run removeOnDiff" id="runButton1280"><img src="/css/img/playButton.svg"></div>
+            <div class="buttonPG removeOnDiff" id="saveButton1280"><img src="/css/img/saveButton.svg"></div>
+            <div class="buttonPG removeOnPhone removeOnDiff" id="zipButton1280"><img src="/css/img/downloadButton.svg"></div>
+            <div class="buttonPG removeOnDiff" id="newButton1280"><img src="/css/img/newButton.svg"></div>
+            <div class="buttonPG removeOnPhone removeOnDiff" id="clearButton1280"><img src="/css/img/clearButton.svg"></div>
+            <div class="buttonPG removeOnPhone removeOnDiff" id="diffButton1280"><img src="/css/img/diffButton.svg"></div>
+            <div class="buttonPG removeOnPhone displayOnDiff" id="previousButton1280"><img src="/css/img/previousButton.svg"></div>
+            <div class="buttonPG removeOnPhone displayOnDiff" id="nextButton1280"><img src="/css/img/nextButton.svg"></div>
+            <div class="buttonPG removeOnPhone displayOnDiff" id="exitButton1280"><img src="/css/img/exitButton.svg"></div>
+            <div class="buttonPG select removeOnDiff" id="menuButton1280"><img src="/css/img/optionsButton.svg">
                 <div class="toDisplay languageJS">
                 <div class="toDisplay languageJS">
                     <div class="option subSelect">Theme <i class="fa fa-chevron-right" aria-hidden="true"></i>
                     <div class="option subSelect">Theme <i class="fa fa-chevron-right" aria-hidden="true"></i>
                         <div class="toDisplaySub languageJS">
                         <div class="toDisplaySub languageJS">
@@ -171,14 +171,14 @@
                 <span id="currentVersion1280"></span>
                 <span id="currentVersion1280"></span>
                 <div class="toDisplay currentVersionDisplay" style="display: none"></div>
                 <div class="toDisplay currentVersionDisplay" style="display: none"></div>
             </div>
             </div>
-            <div class="buttonPG select removeOnDiff"><img class="examplesButton" src="css/img/examplesButton.svg"></div>
+            <div class="buttonPG select removeOnDiff"><img class="examplesButton" src="/css/img/examplesButton.svg"></div>
         </div>
         </div>
     </div>
     </div>
 
 
     <!-- Mid-size screens -->
     <!-- Mid-size screens -->
     <div class="navbar navBar1024 languageJS">
     <div class="navbar navBar1024 languageJS">
         <div class="categoryTitle">
         <div class="categoryTitle">
-            <img class="logo" src="css/img/logo_v4.svg">
+            <img class="logo" src="/css/img/logo_v4.svg">
             <div class="version"><span class="versionSub" id="mainTitle1024"></span></div>
             <div class="version"><span class="versionSub" id="mainTitle1024"></span></div>
         </div>
         </div>
 
 
@@ -186,17 +186,17 @@
             <div class="buttonJStoTS languageTS" id="toTSbutton1024">TS</div>
             <div class="buttonJStoTS languageTS" id="toTSbutton1024">TS</div>
             <div class="buttonJStoTS languageJS" id="toJSbutton1024">JS</div>
             <div class="buttonJStoTS languageJS" id="toJSbutton1024">JS</div>
             <div class="buttonSpaceKiller"></div>
             <div class="buttonSpaceKiller"></div>
-            <div class="buttonPG run removeOnDiff" id="runButton1024"><img src="css/img/playButton.svg"></div>
-            <div class="buttonPG removeOnDiff" id="saveButton1024"><img src="css/img/saveButton.svg"></div>
-            <div class="buttonPG removeOnPhone removeOnDiff" id="zipButton1024"><img src="css/img/downloadButton.svg"></div>
-            <div class="buttonPG removeOnDiff" id="newButton1024"><img src="css/img/newButton.svg"></div>
-            <div class="buttonPG removeOnPhone removeOnDiff" id="clearButton1024"><img src="css/img/clearButton.svg"></div>
-            <div class="buttonPG removeOnPhone removeOnDiff" id="diffButton1024"><img src="css/img/diffButton.svg"></div>
-            <div class="buttonPG removeOnPhone displayOnDiff" id="previousButton1024"><img src="css/img/previousButton.svg"></div>
-            <div class="buttonPG removeOnPhone displayOnDiff" id="nextButton1024"><img src="css/img/nextButton.svg"></div>
-            <div class="buttonPG removeOnPhone displayOnDiff" id="exitButton1024"><img src="css/img/exitButton.svg"></div>
-
-            <div class="buttonPG select removeOnDiff" id="menuButton1024"><img src="css/img/optionsButton.svg">
+            <div class="buttonPG run removeOnDiff" id="runButton1024"><img src="/css/img/playButton.svg"></div>
+            <div class="buttonPG removeOnDiff" id="saveButton1024"><img src="/css/img/saveButton.svg"></div>
+            <div class="buttonPG removeOnPhone removeOnDiff" id="zipButton1024"><img src="/css/img/downloadButton.svg"></div>
+            <div class="buttonPG removeOnDiff" id="newButton1024"><img src="/css/img/newButton.svg"></div>
+            <div class="buttonPG removeOnPhone removeOnDiff" id="clearButton1024"><img src="/css/img/clearButton.svg"></div>
+            <div class="buttonPG removeOnPhone removeOnDiff" id="diffButton1024"><img src="/css/img/diffButton.svg"></div>
+            <div class="buttonPG removeOnPhone displayOnDiff" id="previousButton1024"><img src="/css/img/previousButton.svg"></div>
+            <div class="buttonPG removeOnPhone displayOnDiff" id="nextButton1024"><img src="/css/img/nextButton.svg"></div>
+            <div class="buttonPG removeOnPhone displayOnDiff" id="exitButton1024"><img src="/css/img/exitButton.svg"></div>
+
+            <div class="buttonPG select removeOnDiff" id="menuButton1024"><img src="/css/img/optionsButton.svg">
                 <div class="toDisplay">
                 <div class="toDisplay">
                     <div class="option subSelect">Theme <i class="fa fa-chevron-right" aria-hidden="true"></i>
                     <div class="option subSelect">Theme <i class="fa fa-chevron-right" aria-hidden="true"></i>
 
 
@@ -245,42 +245,42 @@
                 <div class="toDisplay currentVersionDisplay" style="display: none">
                 <div class="toDisplay currentVersionDisplay" style="display: none">
                 </div>
                 </div>
             </div>
             </div>
-            <div class="buttonPG select removeOnDiff"><img class="examplesButton" src="css/img/examplesButton.svg"></div>
+            <div class="buttonPG select removeOnDiff"><img class="examplesButton" src="/css/img/examplesButton.svg"></div>
         </div>
         </div>
     </div>
     </div>
 
 
     <!-- Mobile -->
     <!-- Mobile -->
     <div class="navbar navBarMobile languageJS">
     <div class="navbar navBarMobile languageJS">
         <div class="category languageJS" id="JStoTSbar">
         <div class="category languageJS" id="JStoTSbar">
-            <div class="buttonPG select" id="menuButtonMobile"><img src="css/img/hamburgerButton.svg">
+            <div class="buttonPG select" id="menuButtonMobile"><img src="/css/img/hamburgerButton.svg">
                 <div class="toDisplay">
                 <div class="toDisplay">
                     <div class="option noSubSelect languageTS" id="toTSbuttonMobile">TypeScript</div>
                     <div class="option noSubSelect languageTS" id="toTSbuttonMobile">TypeScript</div>
                     <div class="option noSubSelect languageJS" id="toJSbuttonMobile">JavaScript</div>
                     <div class="option noSubSelect languageJS" id="toJSbuttonMobile">JavaScript</div>
-                    <div class="option noSubSelect run removeOnDiff" id="runButtonMobile"><img src="css/img/playButton.svg">Run</div>
-                    <div class="option noSubSelect removeOnDiff" id="saveButtonMobile"><img src="css/img/saveButton.svg">Save</div>
-                    <div class="option noSubSelect removeOnDiff" id="zipButtonMobile"><img src="css/img/downloadButton.svg">Download</div>
-                    <div class="option noSubSelect removeOnDiff" id="newButtonMobile"><img src="css/img/newButton.svg">New</div>
-                    <div class="option noSubSelect removeOnDiff" id="clearButtonMobile"><img src="css/img/clearButton.svg">Clear</div>
-                    <div class="option noSubSelect removeOnDiff" id="diffButtonMobile"><img src="css/img/DiffButton.svg">Diff</div>
-                    <div class="option noSubSelect displayOnDiff" id="previousButtonMobile"><img src="css/img/previousButton.svg">Previous</div>
-                    <div class="option noSubSelect displayOnDiff" id="nextButtonMobile"><img src="css/img/nextButton.svg">Next</div>
-                    <div class="option noSubSelect displayOnDiff" id="exitButtonMobile"><img src="css/img/exitButton.svg">Exit</div>
+                    <div class="option noSubSelect run removeOnDiff" id="runButtonMobile"><img src="/css/img/playButton.svg">Run</div>
+                    <div class="option noSubSelect removeOnDiff" id="saveButtonMobile"><img src="/css/img/saveButton.svg">Save</div>
+                    <div class="option noSubSelect removeOnDiff" id="zipButtonMobile"><img src="/css/img/downloadButton.svg">Download</div>
+                    <div class="option noSubSelect removeOnDiff" id="newButtonMobile"><img src="/css/img/newButton.svg">New</div>
+                    <div class="option noSubSelect removeOnDiff" id="clearButtonMobile"><img src="/css/img/clearButton.svg">Clear</div>
+                    <div class="option noSubSelect removeOnDiff" id="diffButtonMobile"><img src="/css/img/DiffButton.svg">Diff</div>
+                    <div class="option noSubSelect displayOnDiff" id="previousButtonMobile"><img src="/css/img/previousButton.svg">Previous</div>
+                    <div class="option noSubSelect displayOnDiff" id="nextButtonMobile"><img src="/css/img/nextButton.svg">Next</div>
+                    <div class="option noSubSelect displayOnDiff" id="exitButtonMobile"><img src="/css/img/exitButton.svg">Exit</div>
 
 
                     <div class="option noSubSelect removeOnDiff" id="debugButtonMobile"><img
                     <div class="option noSubSelect removeOnDiff" id="debugButtonMobile"><img
-                            src="css/img/inspectorButton.svg">Inspector</div>
+                            src="/css/img/inspectorButton.svg">Inspector</div>
                     <div class="option subSelect removeOnDiff">
                     <div class="option subSelect removeOnDiff">
-                        <img src="css/img/optionsButton.svg">
+                        <img src="/css/img/optionsButton.svg">
                         <div id="currentVersionMobile"></div>
                         <div id="currentVersionMobile"></div>
                         <div class="toDisplaySub currentVersionDisplay">
                         <div class="toDisplaySub currentVersionDisplay">
                         </div>
                         </div>
                     </div>
                     </div>
-                    <div class="option subSelect removeOnDiff"><img src="css/img/optionsButton.svg">Theme
+                    <div class="option subSelect removeOnDiff"><img src="/css/img/optionsButton.svg">Theme
                         <div class="toDisplaySub">
                         <div class="toDisplaySub">
                             <div class="option selected" id="darkThemeMobile">Dark</div>
                             <div class="option selected" id="darkThemeMobile">Dark</div>
                             <div class="option" id="lightThemeMobile">Light</div>
                             <div class="option" id="lightThemeMobile">Light</div>
                         </div>
                         </div>
                     </div>
                     </div>
-                    <div class="option subSelect removeOnDiff"><img src="css/img/optionsButton.svg">Font size
+                    <div class="option subSelect removeOnDiff"><img src="/css/img/optionsButton.svg">Font size
                         <div class="toDisplaySub displayFontSize">
                         <div class="toDisplaySub displayFontSize">
                             <div class="option">8</div>
                             <div class="option">8</div>
                             <div class="option">10</div>
                             <div class="option">10</div>
@@ -303,21 +303,21 @@
                     <div style="display: none;" class="option nosubselect" id="editorFullscreenButtonMobile"
                     <div style="display: none;" class="option nosubselect" id="editorFullscreenButtonMobile"
                         style="display: none">Editor
                         style="display: none">Editor
                         Fullscreen</div>
                         Fullscreen</div>
-                    <div class="option nosubselect removeOnDiff" id="formatButtonMobile"><img src="css/img/optionsButton.svg">Format
+                    <div class="option nosubselect removeOnDiff" id="formatButtonMobile"><img src="/css/img/optionsButton.svg">Format
                         code</div>
                         code</div>
                     <div style="display: none;" class="option nosubselect" id="minimapToggleMobile">Minimap
                     <div style="display: none;" class="option nosubselect" id="minimapToggleMobile">Minimap
                         <i class="fa fa-square" aria-hidden="true"></i>
                         <i class="fa fa-square" aria-hidden="true"></i>
                     </div>
                     </div>
-                    <!-- <div class="option subSelect" id="qrCodeHoverMobile"><img src="css/img/optionsButton.svg">QR Code Link
+                    <!-- <div class="option subSelect" id="qrCodeHoverMobile"><img src="/css/img/optionsButton.svg">QR Code Link
                         <div class="toDisplaySub qrCodeImage">
                         <div class="toDisplaySub qrCodeImage">
                             <div class="option" id="qrCodeImageMobile">[QR Code Image]</div>
                             <div class="option" id="qrCodeImageMobile">[QR Code Image]</div>
                         </div>
                         </div>
                     </div> -->
                     </div> -->
                     <div class="option nosubselect removeOnDiff" id="metadataButtonMobile"><img
                     <div class="option nosubselect removeOnDiff" id="metadataButtonMobile"><img
-                            src="css/img/metadataButton.svg">Metadata</div>
+                            src="/css/img/metadataButton.svg">Metadata</div>
                     <div class="option nosubselect removeOnDiff"><img class="examplesButton"
                     <div class="option nosubselect removeOnDiff"><img class="examplesButton"
-                            src="css/img/examplesButton.svg">Examples</div>
-                    <div class="option subSelect removeOnDiff"><img src="css/img/examplesButton.svg">Links / Tools
+                            src="/css/img/examplesButton.svg">Examples</div>
+                    <div class="option subSelect removeOnDiff"><img src="/css/img/examplesButton.svg">Links / Tools
                         <div class="toDisplaySub displayFooterLinks">
                         <div class="toDisplaySub displayFooterLinks">
                             <div class="option link">
                             <div class="option link">
                                 <a target='_new' href="https://www.netlify.com/">Deployed by Netlify</a>
                                 <a target='_new' href="https://www.netlify.com/">Deployed by Netlify</a>
@@ -339,14 +339,14 @@
                 </div>
                 </div>
             </div>
             </div>
             <div class="categoryTitle">
             <div class="categoryTitle">
-                <img class="logo" src="css/img/logo_v4.svg">
+                <img class="logo" src="/css/img/logo_v4.svg">
                 <div class="version"><span class="versionSub" id="mainTitleMobile"></span></div>
                 <div class="version"><span class="versionSub" id="mainTitleMobile"></span></div>
             </div>
             </div>
         </div>
         </div>
 
 
         <div id="switchWrapper" class="languageJS removeOnDiff">
         <div id="switchWrapper" class="languageJS removeOnDiff">
-            <img id="switchWrapperCode" src="css/img/codeButton.svg">
-            <img id="switchWrapperCanvas" src="css/img/canvas3Dbutton.svg">
+            <img id="switchWrapperCode" src="/css/img/codeButton.svg">
+            <img id="switchWrapperCanvas" src="/css/img/canvas3Dbutton.svg">
         </div>
         </div>
     </div>
     </div>
 
 
@@ -361,7 +361,7 @@
     </div>
     </div>
     <div id="exampleList" class="javascript">
     <div id="exampleList" class="javascript">
         <div id="exampleBanner" class="languageJS">
         <div id="exampleBanner" class="languageJS">
-            <h1>Examples<img id="examplesButtonClose" src="css/img/clearButton.svg"></h1>
+            <h1>Examples<img id="examplesButtonClose" src="/css/img/clearButton.svg"></h1>
         </div>
         </div>
         <div class="horizontalSeparator"></div>
         <div class="horizontalSeparator"></div>
         <input id="filterBar" type="text" placeholder="Filter examples...">
         <input id="filterBar" type="text" placeholder="Filter examples...">
@@ -378,9 +378,6 @@
         <div id="statusBar"></div>
         <div id="statusBar"></div>
         <div class="links">
         <div class="links">
             <div class='link'>
             <div class='link'>
-                <a target='_new' href="https://www.netlify.com/">Deployed by Netlify</a>
-            </div>
-            <div class='link'>
                 <a target='_new' href="https://forum.babylonjs.com/">Forum</a>
                 <a target='_new' href="https://forum.babylonjs.com/">Forum</a>
             </div>
             </div>
             <div class='link'>
             <div class='link'>
@@ -397,7 +394,7 @@
 
 
     <div id="saveLayer" class="save-layer">
     <div id="saveLayer" class="save-layer">
         <div class="save-form languageJS ">
         <div class="save-form languageJS ">
-            <img id="saveFormButtonClose" src="css/img/clearButton.svg">
+            <img id="saveFormButtonClose" src="/css/img/clearButton.svg">
             <label for="saveFormTitle">TITLE</label>
             <label for="saveFormTitle">TITLE</label>
             <div class="separator"></div>
             <div class="separator"></div>
             <input type="text" maxlength="120" id="saveFormTitle" class="save-form-title">
             <input type="text" maxlength="120" id="saveFormTitle" class="save-form-title">
@@ -436,27 +433,27 @@
 
 
     <div id="waitDiv">
     <div id="waitDiv">
         <div id="logo-part">
         <div id="logo-part">
-            <img src="css/img/v4.svg" id="waitLogo" />
-            <img src="css/img/spinner.svg" id="waitSpinner" />
+            <img src="/css/img/v4.svg" id="waitLogo" />
+            <img src="/css/img/spinner.svg" id="waitSpinner" />
         </div>
         </div>
     </div>
     </div>
 
 
     <!-- jQuery -->
     <!-- jQuery -->
-    <script src="js/libs/jquery.min.js"></script>
-    <script src="js/jquery.qrcode.js"></script>
-    <script src="js/qrcode.js"></script>
+    <script src="/js/libs/jquery.min.js"></script>
+    <script src="/js/jquery.qrcode.js"></script>
+    <script src="/js/qrcode.js"></script>
 
 
     <!-- Main scripts -->
     <!-- Main scripts -->
-    <script src="js/config_versions.js"></script>
-    <script src="js/pbt.js"></script>
-    <script src="js/examples.js"></script>
-    <script src="js/main.js"></script>
-    <script src="js/menuPG.js"></script>
-    <script src="js/monacoCreator.js"></script>
-    <script src="js/settingsPG.js"></script>
-    <script src="js/utils.js"></script>
-    <script src="js/zipTool.js"></script>
-    <script src="js/index.js"></script>
+    <script src="/js/config_versions.js"></script>
+    <script src="/js/pbt.js"></script>
+    <script src="/js/examples.js"></script>
+    <script src="/js/main.js"></script>
+    <script src="/js/menuPG.js"></script>
+    <script src="/js/monacoCreator.js"></script>
+    <script src="/js/settingsPG.js"></script>
+    <script src="/js/utils.js"></script>
+    <script src="/js/zipTool.js"></script>
+    <script src="/js/index.js"></script>
 </body>
 </body>
 
 
 </html>
 </html>

+ 111 - 92
Playground/frame.html

@@ -1,103 +1,122 @@
 <!DOCTYPE html>
 <!DOCTYPE html>
 <html>
 <html>
 
 
-<!--
+    <!--
     The purpose of the Frame.html file is to ???
     The purpose of the Frame.html file is to ???
     // TO DO - Complete that
     // TO DO - Complete that
  -->
  -->
 
 
-<head>
-    <title>Babylon.js Playground</title>
-    <meta charset='utf-8' />
-    <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1">
-    <link rel="shortcut icon" href="https://www.babylonjs.com/img/favicon/favicon.ico">
-
-    <meta name="msapplication-TileColor" content="#ffffff">
-    <meta name="msapplication-TileImage" content="https://www.babylonjs.com/img/favicon/ms-icon-144x144.png">
-    <meta name="msapplication-config" content="https://www.babylonjs.com/img/favicon/browserconfig.xml">
-    <meta name="theme-color" content="#ffffff">
-
-    <!-- Pep -->
-    <script src="https://code.jquery.com/pep/0.4.2/pep.min.js"></script>
-
-    <!-- DatGUI CDN -->
-    <script src="https://cdnjs.cloudflare.com/ajax/libs/dat-gui/0.6.2/dat.gui.min.js"></script>
-
-    <!-- Dependencies -->
-    <script src="https://preview.babylonjs.com/ammo.js"></script>
-    <script src="https://preview.babylonjs.com/recast.js"></script>
-    <script src="https://preview.babylonjs.com/cannon.js"></script>
-    <script src="https://preview.babylonjs.com/Oimo.js"></script>
-    <script src="https://preview.babylonjs.com/earcut.min.js"></script>
-    <script src="https://preview.babylonjs.com/babylon.js"></script>
-    <script src="https://preview.babylonjs.com/gui/babylon.gui.min.js"></script>
-    <script src="https://preview.babylonjs.com/inspector/babylon.inspector.bundle.js"></script>
-    <script src="https://preview.babylonjs.com/nodeEditor/babylon.nodeEditor.js"></script>
-    <!-- Babylon.js -->
-    <script src="https://preview.babylonjs.com/materialsLibrary/babylon.fireMaterial.min.js"></script>
-    <script src="https://preview.babylonjs.com/materialsLibrary/babylon.waterMaterial.min.js"></script>
-    <script src="https://preview.babylonjs.com/materialsLibrary/babylon.lavaMaterial.min.js"></script>
-    <script src="https://preview.babylonjs.com/materialsLibrary/babylon.normalMaterial.min.js"></script>
-    <script src="https://preview.babylonjs.com/materialsLibrary/babylon.skyMaterial.min.js"></script>
-    <script src="https://preview.babylonjs.com/materialsLibrary/babylon.triPlanarMaterial.min.js"></script>
-    <script src="https://preview.babylonjs.com/materialsLibrary/babylon.terrainMaterial.min.js"></script>
-    <script src="https://preview.babylonjs.com/materialsLibrary/babylon.gradientMaterial.min.js"></script>
-    <script src="https://preview.babylonjs.com/materialsLibrary/babylon.furMaterial.min.js"></script>
-    <script src="https://preview.babylonjs.com/materialsLibrary/babylon.gridMaterial.min.js"></script>
-    <script src="https://preview.babylonjs.com/materialsLibrary/babylon.shadowOnlyMaterial.min.js"></script>
-    <script src="https://preview.babylonjs.com/materialsLibrary/babylon.customMaterial.min.js"></script>
-    <script src="https://preview.babylonjs.com/materialsLibrary/babylon.cellMaterial.min.js"></script>
-
-    <script
-        src="https://preview.babylonjs.com/proceduralTexturesLibrary/babylon.brickProceduralTexture.min.js"></script>
-    <script
-        src="https://preview.babylonjs.com/proceduralTexturesLibrary/babylon.cloudProceduralTexture.min.js"></script>
-    <script src="https://preview.babylonjs.com/proceduralTexturesLibrary/babylon.fireProceduralTexture.min.js"></script>
-    <script
-        src="https://preview.babylonjs.com/proceduralTexturesLibrary/babylon.grassProceduralTexture.min.js"></script>
-    <script
-        src="https://preview.babylonjs.com/proceduralTexturesLibrary/babylon.marbleProceduralTexture.min.js"></script>
-    <script src="https://preview.babylonjs.com/proceduralTexturesLibrary/babylon.roadProceduralTexture.min.js"></script>
-    <script
-        src="https://preview.babylonjs.com/proceduralTexturesLibrary/babylon.starfieldProceduralTexture.min.js"></script>
-    <script src="https://preview.babylonjs.com/proceduralTexturesLibrary/babylon.woodProceduralTexture.min.js"></script>
-
-    <script src="https://preview.babylonjs.com/postProcessesLibrary/babylon.asciiArtPostProcess.min.js"></script>
-    <script src="https://preview.babylonjs.com/postProcessesLibrary/babylon.digitalRainPostProcess.min.js"></script>
-
-    <script src="https://preview.babylonjs.com/loaders/babylon.glTFFileLoader.js"></script>
-    <script src="https://preview.babylonjs.com/loaders/babylon.objFileLoader.js"></script>
-    <script src="https://preview.babylonjs.com/loaders/babylon.stlFileLoader.js"></script>
-
-    <script src="https://preview.babylonjs.com/serializers/babylonjs.serializers.min.js"></script>
-
-    <script src="https://rawgit.com/BabylonJS/Extensions/master/ClonerSystem/src/babylonx.cloner.js"></script>
-    <script src="https://rawgit.com/BabylonJS/Extensions/master/CompoundShader/src/babylonx.CompoundShader.js"></script>
-    
-    <link rel="stylesheet" href="css/frame.css" />
-</head>
-
-<body>
-    <canvas touch-action="none" id="renderCanvas" tabindex="1"></canvas>
-
-    <div class="footer">
-        <span id="fpsLabel">FPS</span>
-        <div class="footerRight">
-            <a href="javascript:void(null);">
-                <img id="refresh" src="textures/icons/refresh.png" width="36" height="36" alt="Reload page"
-                    title="Reload page" />
-            </a>
-            <a id="edit" href="#" target="_blank">
-                <img src="textures/icons/edit.png" width="36" height="36" alt="Edit in playground"
-                    title="Edit in playground" />
-            </a>
+    <head>
+        <title>Babylon.js Playground</title>
+        <meta charset='utf-8' />
+        <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1">
+        <meta name="description" content="Babylon.js playground is a live editor for Babylon.js WebGL 3D scenes">
+        <meta name="keywords" content="Babylon.js,WebGL,3D">
+        <link rel="shortcut icon" href="https://www.babylonjs.com/img/favicon/favicon.ico">
+
+        <meta name="msapplication-TileColor" content="#ffffff">
+        <meta name="msapplication-TileImage" content="https://www.babylonjs.com/img/favicon/ms-icon-144x144.png">
+        <meta name="msapplication-config" content="https://www.babylonjs.com/img/favicon/browserconfig.xml">
+        <meta name="theme-color" content="#ffffff">
+
+        <!-- Pep -->
+        <script src="https://code.jquery.com/pep/0.4.2/pep.min.js"></script>
+
+        <!-- DatGUI CDN -->
+        <script src="https://cdnjs.cloudflare.com/ajax/libs/dat-gui/0.6.2/dat.gui.min.js"></script>
+
+        <!-- Dependencies -->
+        <script src="https://preview.babylonjs.com/ammo.js"></script>
+        <script src="https://preview.babylonjs.com/recast.js"></script>
+        <script src="https://preview.babylonjs.com/cannon.js"></script>
+        <script src="https://preview.babylonjs.com/Oimo.js"></script>
+        <script src="https://preview.babylonjs.com/earcut.min.js"></script>
+        <script src="https://preview.babylonjs.com/babylon.js"></script>
+        <script src="https://preview.babylonjs.com/gui/babylon.gui.min.js"></script>
+        <script src="https://preview.babylonjs.com/inspector/babylon.inspector.bundle.js"></script>
+        <script src="https://preview.babylonjs.com/nodeEditor/babylon.nodeEditor.js"></script>
+        <!-- Babylon.js -->
+        <script src="https://preview.babylonjs.com/materialsLibrary/babylon.fireMaterial.min.js"></script>
+        <script src="https://preview.babylonjs.com/materialsLibrary/babylon.waterMaterial.min.js"></script>
+        <script src="https://preview.babylonjs.com/materialsLibrary/babylon.lavaMaterial.min.js"></script>
+        <script src="https://preview.babylonjs.com/materialsLibrary/babylon.normalMaterial.min.js"></script>
+        <script src="https://preview.babylonjs.com/materialsLibrary/babylon.skyMaterial.min.js"></script>
+        <script src="https://preview.babylonjs.com/materialsLibrary/babylon.triPlanarMaterial.min.js"></script>
+        <script src="https://preview.babylonjs.com/materialsLibrary/babylon.terrainMaterial.min.js"></script>
+        <script src="https://preview.babylonjs.com/materialsLibrary/babylon.gradientMaterial.min.js"></script>
+        <script src="https://preview.babylonjs.com/materialsLibrary/babylon.furMaterial.min.js"></script>
+        <script src="https://preview.babylonjs.com/materialsLibrary/babylon.gridMaterial.min.js"></script>
+        <script src="https://preview.babylonjs.com/materialsLibrary/babylon.shadowOnlyMaterial.min.js"></script>
+        <script src="https://preview.babylonjs.com/materialsLibrary/babylon.customMaterial.min.js"></script>
+        <script src="https://preview.babylonjs.com/materialsLibrary/babylon.cellMaterial.min.js"></script>
+
+        <script src="https://preview.babylonjs.com/proceduralTexturesLibrary/babylon.brickProceduralTexture.min.js">
+        </script>
+        <script src="https://preview.babylonjs.com/proceduralTexturesLibrary/babylon.cloudProceduralTexture.min.js">
+        </script>
+        <script src="https://preview.babylonjs.com/proceduralTexturesLibrary/babylon.fireProceduralTexture.min.js">
+        </script>
+        <script src="https://preview.babylonjs.com/proceduralTexturesLibrary/babylon.grassProceduralTexture.min.js">
+        </script>
+        <script src="https://preview.babylonjs.com/proceduralTexturesLibrary/babylon.marbleProceduralTexture.min.js">
+        </script>
+        <script src="https://preview.babylonjs.com/proceduralTexturesLibrary/babylon.roadProceduralTexture.min.js">
+        </script>
+        <script src="https://preview.babylonjs.com/proceduralTexturesLibrary/babylon.starfieldProceduralTexture.min.js">
+        </script>
+        <script src="https://preview.babylonjs.com/proceduralTexturesLibrary/babylon.woodProceduralTexture.min.js">
+        </script>
+
+        <script src="https://preview.babylonjs.com/postProcessesLibrary/babylon.asciiArtPostProcess.min.js"></script>
+        <script src="https://preview.babylonjs.com/postProcessesLibrary/babylon.digitalRainPostProcess.min.js"></script>
+
+        <script src="https://preview.babylonjs.com/loaders/babylon.glTFFileLoader.js"></script>
+        <script src="https://preview.babylonjs.com/loaders/babylon.objFileLoader.js"></script>
+        <script src="https://preview.babylonjs.com/loaders/babylon.stlFileLoader.js"></script>
+
+        <script src="https://preview.babylonjs.com/serializers/babylonjs.serializers.min.js"></script>
+
+        <!-- Extensions -->
+        <script
+            src="https://rawcdn.githack.com/BabylonJS/Extensions/f43ab677b4bca0a6ab77132d3f785be300382760/ClonerSystem/src/babylonx.cloner.js"
+            async>
+        </script>
+        <script
+            src="https://rawcdn.githack.com/BabylonJS/Extensions/785013ec55b210d12263c91f3f0a2ae70cf0bc8a/CompoundShader/src/babylonx.CompoundShader.js"
+            async></script>
+
+        <!-- Scene Manager -->
+        <script
+            src="https://rawcdn.githack.com/MackeyK24/MackeyK24.github.io/14fda491c50cfca6d3e2f6cbc5e6afe22cc455d6/toolkit/babylon.manager.js">
+        </script>
+        <script
+            src="https://rawcdn.githack.com/MackeyK24/MackeyK24.github.io/14fda491c50cfca6d3e2f6cbc5e6afe22cc455d6/toolkit/babylon.navmesh.js">
+        </script>
+
+        <link rel="stylesheet" href="/css/frame.css" />
+    </head>
+
+    <body>
+        <canvas touch-action="none" id="renderCanvas" tabindex="1"></canvas>
+
+        <div class="footer">
+            <span id="fpsLabel">FPS</span>
+            <div class="footerRight">
+                <a href="javascript:void(null);">
+                    <img id="refresh" src="/textures/icons/refresh.png" width="36" height="36" alt="Reload page"
+                        title="Reload page" />
+                </a>
+                <a id="edit" href="#" target="_blank">
+                    <img src="/textures/icons/edit.png" width="36" height="36" alt="Edit in playground"
+                        title="Edit in playground" />
+                </a>
+            </div>
         </div>
         </div>
-    </div>
 
 
-    <!-- jQuery -->
-    <script src="https://code.jquery.com/jquery.js"></script>
-    
-    <script src="js/frame.js"></script>
-</body>
+        <!-- jQuery -->
+        <script src="https://code.jquery.com/jquery.min.js"></script>
+
+        <script src="/js/frame.js"></script>
+    </body>
 
 
 </html>
 </html>

+ 49 - 34
Playground/full.html

@@ -1,43 +1,58 @@
 <!DOCTYPE html>
 <!DOCTYPE html>
 <html>
 <html>
 
 
-<head>
-    <title>Babylon.js Playground</title>
-    <link rel="shortcut icon" href="https://www.babylonjs.com/img/favicon/favicon.ico">
-    <link rel="manifest" href="https://www.babylonjs.com/img/favicon/manifest.json">
-    <meta name="msapplication-TileColor" content="#ffffff">
-    <meta name="msapplication-TileImage" content="https://www.babylonjs.com/img/favicon/ms-icon-144x144.png">
-    <meta name="msapplication-config" content="https://www.babylonjs.com/img/favicon/browserconfig.xml">
-    <meta name="theme-color" content="#ffffff">
-    <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1">
+    <head>
+        <title>Babylon.js Playground</title>
+        <link rel="shortcut icon" href="https://www.babylonjs.com/img/favicon/favicon.ico">
+        <link rel="manifest" href="https://www.babylonjs.com/img/favicon/manifest.json">
+        <meta name="msapplication-TileColor" content="#ffffff">
+        <meta name="msapplication-TileImage" content="https://www.babylonjs.com/img/favicon/ms-icon-144x144.png">
+        <meta name="msapplication-config" content="https://www.babylonjs.com/img/favicon/browserconfig.xml">
+        <meta name="theme-color" content="#ffffff">
+        <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1">
 
 
-    <script src="https://code.jquery.com/pep/0.4.2/pep.min.js"></script>
-    <!-- Babylon.js -->
-    <script src="https://preview.babylonjs.com/ammo.js"></script>
-    <script src="https://preview.babylonjs.com/recast.js"></script>
-    <script src="https://preview.babylonjs.com/cannon.js"></script>
-    <script src="https://preview.babylonjs.com/Oimo.js"></script>
-    <script src="https://preview.babylonjs.com/babylon.js"></script>
-    <script src="https://preview.babylonjs.com/gui/babylon.gui.min.js"></script>
-    <script src="https://preview.babylonjs.com/inspector/babylon.inspector.bundle.js"></script>
-    <script src="https://preview.babylonjs.com/nodeEditor/babylon.nodeEditor.js"></script>
-    <script src="https://preview.babylonjs.com/materialsLibrary/babylonjs.materials.min.js"></script>
-    <script src="https://preview.babylonjs.com/proceduralTexturesLibrary/babylonjs.proceduralTextures.min.js"></script>
-    <script src="https://preview.babylonjs.com/postProcessesLibrary/babylonjs.postProcess.min.js"></script>
-    <script src="https://preview.babylonjs.com/loaders/babylonjs.loaders.js"></script>
+        <script src="https://code.jquery.com/pep/0.4.2/pep.min.js"></script>
+        <!-- DatGUI -->
+        <script src="https://cdnjs.cloudflare.com/ajax/libs/dat-gui/0.6.2/dat.gui.min.js"></script>
+        <!-- Babylon.js -->
+        <script src="https://preview.babylonjs.com/ammo.js"></script>
+        <script src="https://preview.babylonjs.com/recast.js"></script>
+        <script src="https://preview.babylonjs.com/cannon.js"></script>
+        <script src="https://preview.babylonjs.com/Oimo.js"></script>
+        <script src="https://preview.babylonjs.com/babylon.js"></script>
+        <script src="https://preview.babylonjs.com/gui/babylon.gui.min.js"></script>
+        <script src="https://preview.babylonjs.com/inspector/babylon.inspector.bundle.js"></script>
+        <script src="https://preview.babylonjs.com/nodeEditor/babylon.nodeEditor.js"></script>
+        <script src="https://preview.babylonjs.com/materialsLibrary/babylonjs.materials.min.js"></script>
+        <script src="https://preview.babylonjs.com/proceduralTexturesLibrary/babylonjs.proceduralTextures.min.js">
+        </script>
+        <script src="https://preview.babylonjs.com/postProcessesLibrary/babylonjs.postProcess.min.js"></script>
+        <script src="https://preview.babylonjs.com/loaders/babylonjs.loaders.js"></script>
 
 
+        <!-- Extensions -->
+        <script
+            src="https://rawcdn.githack.com/BabylonJS/Extensions/f43ab677b4bca0a6ab77132d3f785be300382760/ClonerSystem/src/babylonx.cloner.js"
+            async>
+        </script>
+        <script
+            src="https://rawcdn.githack.com/BabylonJS/Extensions/785013ec55b210d12263c91f3f0a2ae70cf0bc8a/CompoundShader/src/babylonx.CompoundShader.js"
+            async></script>
 
 
+        <!-- Scene Manager -->
+        <script
+            src="https://rawcdn.githack.com/MackeyK24/MackeyK24.github.io/14fda491c50cfca6d3e2f6cbc5e6afe22cc455d6/toolkit/babylon.manager.js">
+        </script>
+        <script
+            src="https://rawcdn.githack.com/MackeyK24/MackeyK24.github.io/14fda491c50cfca6d3e2f6cbc5e6afe22cc455d6/toolkit/babylon.navmesh.js">
+        </script>
+        <link href="/css/frame.css" rel="stylesheet" />
+    </head>
 
 
-    <script src="https://rawgit.com/BabylonJS/Extensions/master/ClonerSystem/src/babylonx.cloner.js"></script>
-    <script src="https://rawgit.com/BabylonJS/Extensions/master/CompoundShader/src/babylonx.CompoundShader.js"></script>
-    <link href="css/frame.css" rel="stylesheet" />
-</head>
-
-<body>
-    <!-- Override frame style -->
-    <canvas touch-action="none" id="renderCanvas" tabindex="1" style="height: 100%"></canvas>
-    <script src="https://code.jquery.com/jquery.js"></script>
-    <script src="js/frame.js"></script>
-</body>
+    <body>
+        <!-- Override frame style -->
+        <canvas touch-action="none" id="renderCanvas" tabindex="1" style="height: 100%"></canvas>
+        <script src="https://code.jquery.com/jquery.min.js"></script>
+        <script src="/js/frame.js"></script>
+    </body>
 
 
 </html>
 </html>

+ 70 - 70
Playground/index-local.html

@@ -14,19 +14,19 @@
     <link rel="shortcut icon" href="https://www.babylonjs.com/favicon.ico">
     <link rel="shortcut icon" href="https://www.babylonjs.com/favicon.ico">
 
 
     <link rel="stylesheet" href="https://use.typekit.net/cta4xsb.css">
     <link rel="stylesheet" href="https://use.typekit.net/cta4xsb.css">
-    <link rel="stylesheet" href="css/index.css" />
-    <link rel="stylesheet" href="css/index_mobile.css" />
+    <link rel="stylesheet" href="/css/index.css" />
+    <link rel="stylesheet" href="/css/index_mobile.css" />
 
 
     <!-- Pep -->
     <!-- Pep -->
     <script src="https://code.jquery.com/pep/0.4.2/pep.min.js"></script>
     <script src="https://code.jquery.com/pep/0.4.2/pep.min.js"></script>
     <!--For canvas/code separator-->
     <!--For canvas/code separator-->
-    <script src="js/libs/split.js"></script>
+    <script src="/js/libs/split.js"></script>
 
 
     <!-- DatGUI -->
     <!-- DatGUI -->
     <script src="https://cdnjs.cloudflare.com/ajax/libs/dat-gui/0.6.2/dat.gui.min.js"></script>
     <script src="https://cdnjs.cloudflare.com/ajax/libs/dat-gui/0.6.2/dat.gui.min.js"></script>
     <!-- jszip -->
     <!-- jszip -->
-    <script src="js/libs/jszip.min.js"></script>
-    <script src="js/libs/fileSaver.js"></script>
+    <script src="/js/libs/jszip.min.js"></script>
+    <script src="/js/libs/fileSaver.js"></script>
 
 
     <!-- Dependencies -->
     <!-- Dependencies -->
     <script src="../dist/preview%20release/ammo.js"></script>
     <script src="../dist/preview%20release/ammo.js"></script>
@@ -44,23 +44,23 @@
     <!-- Big screens -->
     <!-- Big screens -->
     <div class="navbar navBar1280 languageJS">
     <div class="navbar navBar1280 languageJS">
         <div class="categoryTitle">
         <div class="categoryTitle">
-            <img class="logo" src="css/img/logo_v4.svg">
+            <img class="logo" src="/css/img/logo_v4.svg">
             <div class="version">Playground <span class="versionSub" id="mainTitle1280"></span></div>
             <div class="version">Playground <span class="versionSub" id="mainTitle1280"></span></div>
         </div>
         </div>
 
 
         <div class="category languageJS" id="JStoTSbar">
         <div class="category languageJS" id="JStoTSbar">
             <div class="buttonJStoTS languageTS" id="toTSbutton1280" title="Switch to TypeScript">Typescript</div>
             <div class="buttonJStoTS languageTS" id="toTSbutton1280" title="Switch to TypeScript">Typescript</div>
             <div class="buttonJStoTS languageJS" id="toJSbutton1280" title="Switch to JavaScript">Javascript</div>
             <div class="buttonJStoTS languageJS" id="toJSbutton1280" title="Switch to JavaScript">Javascript</div>
-            <div class="buttonPG run removeOnDiff" id="runButton1280" title="Run&#10;(Alt+Enter)"><img src="css/img/playButton.svg"></div>
-            <div class="buttonPG removeOnDiff" id="saveButton1280" title="Save&#10;(Ctrl+S)"><img src="css/img/saveButton.svg"></div>
-            <div class="buttonPG removeOnPhone removeOnDiff" id="zipButton1280" title="Download ZIP&#10;(Ctrl+Shift+S)"><img src="css/img/downloadButton.svg"></div>
-            <div class="buttonPG removeOnDiff" id="newButton1280" title="Create new"><img src="css/img/newButton.svg"></div>
-            <div class="buttonPG removeOnPhone removeOnDiff" id="clearButton1280" title="Clear"><img src="css/img/clearButton.svg"></div>
-            <div class="buttonPG removeOnPhone removeOnDiff" id="diffButton1280" title="Compare"><img src="css/img/diffButton.svg"></div>
-            <div class="buttonPG removeOnPhone displayOnDiff" id="previousButton1280" title="Previous difference&#10;(Shift+Alt+F5)"><img src="css/img/previousButton.svg"></div>
-            <div class="buttonPG removeOnPhone displayOnDiff" id="nextButton1280" title="Next difference&#10;(Alt+F5)"><img src="css/img/nextButton.svg"></div>
-            <div class="buttonPG removeOnPhone displayOnDiff" id="exitButton1280" title="Exit&#10;(Esc)"><img src="css/img/exitButton.svg"></div>
-            <div class="buttonPG select removeOnDiff" id="menuButton1280" title="Options"><img src="css/img/optionsButton.svg">
+            <div class="buttonPG run removeOnDiff" id="runButton1280" title="Run&#10;(Alt+Enter)"><img src="/css/img/playButton.svg"></div>
+            <div class="buttonPG removeOnDiff" id="saveButton1280" title="Save&#10;(Ctrl+S)"><img src="/css/img/saveButton.svg"></div>
+            <div class="buttonPG removeOnPhone removeOnDiff" id="zipButton1280" title="Download ZIP&#10;(Ctrl+Shift+S)"><img src="/css/img/downloadButton.svg"></div>
+            <div class="buttonPG removeOnDiff" id="newButton1280" title="Create new"><img src="/css/img/newButton.svg"></div>
+            <div class="buttonPG removeOnPhone removeOnDiff" id="clearButton1280" title="Clear"><img src="/css/img/clearButton.svg"></div>
+            <div class="buttonPG removeOnPhone removeOnDiff" id="diffButton1280" title="Compare"><img src="/css/img/diffButton.svg"></div>
+            <div class="buttonPG removeOnPhone displayOnDiff" id="previousButton1280" title="Previous difference&#10;(Shift+Alt+F5)"><img src="/css/img/previousButton.svg"></div>
+            <div class="buttonPG removeOnPhone displayOnDiff" id="nextButton1280" title="Next difference&#10;(Alt+F5)"><img src="/css/img/nextButton.svg"></div>
+            <div class="buttonPG removeOnPhone displayOnDiff" id="exitButton1280" title="Exit&#10;(Esc)"><img src="/css/img/exitButton.svg"></div>
+            <div class="buttonPG select removeOnDiff" id="menuButton1280" title="Options"><img src="/css/img/optionsButton.svg">
                 <div class="toDisplay languageJS">
                 <div class="toDisplay languageJS">
                     <div class="option subSelect">Theme <i class="fa fa-chevron-right" aria-hidden="true"></i>
                     <div class="option subSelect">Theme <i class="fa fa-chevron-right" aria-hidden="true"></i>
                         <div class="toDisplaySub languageJS">
                         <div class="toDisplaySub languageJS">
@@ -107,14 +107,14 @@
                 <span id="currentVersion1280"></span>
                 <span id="currentVersion1280"></span>
                 <div class="toDisplay currentVersionDisplay" style="display: none"></div>
                 <div class="toDisplay currentVersionDisplay" style="display: none"></div>
             </div>
             </div>
-            <div class="buttonPG select removeOnDiff" title="Examples"><img class="examplesButton" src="css/img/examplesButton.svg"></div>
+            <div class="buttonPG select removeOnDiff" title="Examples"><img class="examplesButton" src="/css/img/examplesButton.svg"></div>
         </div>
         </div>
     </div>
     </div>
 
 
     <!-- Mid-size screens -->
     <!-- Mid-size screens -->
     <div class="navbar navBar1024 languageJS">
     <div class="navbar navBar1024 languageJS">
         <div class="categoryTitle">
         <div class="categoryTitle">
-            <img class="logo" src="css/img/logo_v4.svg">
+            <img class="logo" src="/css/img/logo_v4.svg">
             <div class="version"><span class="versionSub" id="mainTitle1024"></span></div>
             <div class="version"><span class="versionSub" id="mainTitle1024"></span></div>
         </div>
         </div>
 
 
@@ -122,17 +122,17 @@
             <div class="buttonJStoTS languageTS" id="toTSbutton1024" title="Switch to TypeScript">TS</div>
             <div class="buttonJStoTS languageTS" id="toTSbutton1024" title="Switch to TypeScript">TS</div>
             <div class="buttonJStoTS languageJS" id="toJSbutton1024" title="Switch to JavaScript">JS</div>
             <div class="buttonJStoTS languageJS" id="toJSbutton1024" title="Switch to JavaScript">JS</div>
             <div class="buttonSpaceKiller"></div>
             <div class="buttonSpaceKiller"></div>
-            <div class="buttonPG run removeOnDiff" id="runButton1024" title="Run&#10;(Alt+Enter)"><img src="css/img/playButton.svg"></div>
-            <div class="buttonPG removeOnDiff" id="saveButton1024" title="Save&#10;(Ctrl+S)"><img src="css/img/saveButton.svg"></div>
-            <div class="buttonPG removeOnPhone removeOnDiff" id="zipButton1024" title="Download ZIP&#10;(Ctrl+Shift+S)"><img src="css/img/downloadButton.svg"></div>
-            <div class="buttonPG removeOnDiff" id="newButton1024" title="Create new"><img src="css/img/newButton.svg"></div>
-            <div class="buttonPG removeOnPhone removeOnDiff" id="clearButton1024" title="Clear"><img src="css/img/clearButton.svg"></div>
-            <div class="buttonPG removeOnPhone removeOnDiff" id="diffButton1024" title="Compare"><img src="css/img/diffButton.svg"></div>
-            <div class="buttonPG removeOnPhone displayOnDiff" id="previousButton1024"><img src="css/img/previousButton.svg"></div>
-            <div class="buttonPG removeOnPhone displayOnDiff" id="nextButton1024"><img src="css/img/nextButton.svg"></div>
-            <div class="buttonPG removeOnPhone displayOnDiff" id="exitButton1024"><img src="css/img/exitButton.svg"></div>
-
-            <div class="buttonPG select removeOnDiff" id="menuButton1024" title="Options"><img src="css/img/optionsButton.svg">
+            <div class="buttonPG run removeOnDiff" id="runButton1024" title="Run&#10;(Alt+Enter)"><img src="/css/img/playButton.svg"></div>
+            <div class="buttonPG removeOnDiff" id="saveButton1024" title="Save&#10;(Ctrl+S)"><img src="/css/img/saveButton.svg"></div>
+            <div class="buttonPG removeOnPhone removeOnDiff" id="zipButton1024" title="Download ZIP&#10;(Ctrl+Shift+S)"><img src="/css/img/downloadButton.svg"></div>
+            <div class="buttonPG removeOnDiff" id="newButton1024" title="Create new"><img src="/css/img/newButton.svg"></div>
+            <div class="buttonPG removeOnPhone removeOnDiff" id="clearButton1024" title="Clear"><img src="/css/img/clearButton.svg"></div>
+            <div class="buttonPG removeOnPhone removeOnDiff" id="diffButton1024" title="Compare"><img src="/css/img/diffButton.svg"></div>
+            <div class="buttonPG removeOnPhone displayOnDiff" id="previousButton1024"><img src="/css/img/previousButton.svg"></div>
+            <div class="buttonPG removeOnPhone displayOnDiff" id="nextButton1024"><img src="/css/img/nextButton.svg"></div>
+            <div class="buttonPG removeOnPhone displayOnDiff" id="exitButton1024"><img src="/css/img/exitButton.svg"></div>
+
+            <div class="buttonPG select removeOnDiff" id="menuButton1024" title="Options"><img src="/css/img/optionsButton.svg">
                 <div class="toDisplay">
                 <div class="toDisplay">
                     <div class="option subSelect">Theme <i class="fa fa-chevron-right" aria-hidden="true"></i>
                     <div class="option subSelect">Theme <i class="fa fa-chevron-right" aria-hidden="true"></i>
 
 
@@ -181,42 +181,42 @@
                 <div class="toDisplay currentVersionDisplay" style="display: none">
                 <div class="toDisplay currentVersionDisplay" style="display: none">
                 </div>
                 </div>
             </div>
             </div>
-            <div class="buttonPG select removeOnDiff" title="Examples"><img class="examplesButton" src="css/img/examplesButton.svg"></div>
+            <div class="buttonPG select removeOnDiff" title="Examples"><img class="examplesButton" src="/css/img/examplesButton.svg"></div>
         </div>
         </div>
     </div>
     </div>
 
 
     <!-- Mobile -->
     <!-- Mobile -->
     <div class="navbar navBarMobile languageJS">
     <div class="navbar navBarMobile languageJS">
         <div class="category languageJS" id="JStoTSbar">
         <div class="category languageJS" id="JStoTSbar">
-            <div class="buttonPG select" id="menuButtonMobile"><img src="css/img/hamburgerButton.svg">
+            <div class="buttonPG select" id="menuButtonMobile"><img src="/css/img/hamburgerButton.svg">
                 <div class="toDisplay">
                 <div class="toDisplay">
                     <div class="option noSubSelect languageTS" id="toTSbuttonMobile">TypeScript</div>
                     <div class="option noSubSelect languageTS" id="toTSbuttonMobile">TypeScript</div>
                     <div class="option noSubSelect languageJS" id="toJSbuttonMobile">JavaScript</div>
                     <div class="option noSubSelect languageJS" id="toJSbuttonMobile">JavaScript</div>
-                    <div class="option noSubSelect run removeOnDiff" id="runButtonMobile"><img src="css/img/playButton.svg">Run</div>
-                    <div class="option noSubSelect removeOnDiff" id="saveButtonMobile"><img src="css/img/saveButton.svg">Save</div>
-                    <div class="option noSubSelect removeOnDiff" id="zipButtonMobile"><img src="css/img/downloadButton.svg">Download</div>
-                    <div class="option noSubSelect removeOnDiff" id="newButtonMobile"><img src="css/img/newButton.svg">New</div>
-                    <div class="option noSubSelect removeOnDiff" id="clearButtonMobile"><img src="css/img/clearButton.svg">Clear</div>
-                    <div class="option noSubSelect removeOnDiff" id="diffButtonMobile"><img src="css/img/DiffButton.svg">Diff</div>
-                    <div class="option noSubSelect displayOnDiff" id="previousButtonMobile"><img src="css/img/previousButton.svg">Previous</div>
-                    <div class="option noSubSelect displayOnDiff" id="nextButtonMobile"><img src="css/img/nextButton.svg">Next</div>
-                    <div class="option noSubSelect displayOnDiff" id="exitButtonMobile"><img src="css/img/exitButton.svg">Exit</div>
+                    <div class="option noSubSelect run removeOnDiff" id="runButtonMobile"><img src="/css/img/playButton.svg">Run</div>
+                    <div class="option noSubSelect removeOnDiff" id="saveButtonMobile"><img src="/css/img/saveButton.svg">Save</div>
+                    <div class="option noSubSelect removeOnDiff" id="zipButtonMobile"><img src="/css/img/downloadButton.svg">Download</div>
+                    <div class="option noSubSelect removeOnDiff" id="newButtonMobile"><img src="/css/img/newButton.svg">New</div>
+                    <div class="option noSubSelect removeOnDiff" id="clearButtonMobile"><img src="/css/img/clearButton.svg">Clear</div>
+                    <div class="option noSubSelect removeOnDiff" id="diffButtonMobile"><img src="/css/img/diffButton.svg">Diff</div>
+                    <div class="option noSubSelect displayOnDiff" id="previousButtonMobile"><img src="/css/img/previousButton.svg">Previous</div>
+                    <div class="option noSubSelect displayOnDiff" id="nextButtonMobile"><img src="/css/img/nextButton.svg">Next</div>
+                    <div class="option noSubSelect displayOnDiff" id="exitButtonMobile"><img src="/css/img/exitButton.svg">Exit</div>
 
 
                     <div class="option noSubSelect removeOnDiff" id="debugButtonMobile"><img
                     <div class="option noSubSelect removeOnDiff" id="debugButtonMobile"><img
-                            src="css/img/inspectorButton.svg">Inspector</div>
+                            src="/css/img/inspectorButton.svg">Inspector</div>
                     <div class="option subSelect removeOnDiff">
                     <div class="option subSelect removeOnDiff">
-                        <img src="css/img/optionsButton.svg">
+                        <img src="/css/img/optionsButton.svg">
                         <div id="currentVersionMobile"></div>
                         <div id="currentVersionMobile"></div>
                         <div class="toDisplaySub currentVersionDisplay">
                         <div class="toDisplaySub currentVersionDisplay">
                         </div>
                         </div>
                     </div>
                     </div>
-                    <div class="option subSelect removeOnDiff"><img src="css/img/optionsButton.svg">Theme
+                    <div class="option subSelect removeOnDiff"><img src="/css/img/optionsButton.svg">Theme
                         <div class="toDisplaySub">
                         <div class="toDisplaySub">
                             <div class="option selected" id="darkThemeMobile">Dark</div>
                             <div class="option selected" id="darkThemeMobile">Dark</div>
                             <div class="option" id="lightThemeMobile">Light</div>
                             <div class="option" id="lightThemeMobile">Light</div>
                         </div>
                         </div>
                     </div>
                     </div>
-                    <div class="option subSelect removeOnDiff"><img src="css/img/optionsButton.svg">Font size
+                    <div class="option subSelect removeOnDiff"><img src="/css/img/optionsButton.svg">Font size
                         <div class="toDisplaySub displayFontSize">
                         <div class="toDisplaySub displayFontSize">
                             <div class="option">8</div>
                             <div class="option">8</div>
                             <div class="option">10</div>
                             <div class="option">10</div>
@@ -239,21 +239,21 @@
                     <div style="display: none;" class="option nosubselect" id="editorFullscreenButtonMobile"
                     <div style="display: none;" class="option nosubselect" id="editorFullscreenButtonMobile"
                         style="display: none">Editor
                         style="display: none">Editor
                         Fullscreen</div>
                         Fullscreen</div>
-                    <div class="option nosubselect removeOnDiff" id="formatButtonMobile"><img src="css/img/optionsButton.svg">Format
+                    <div class="option nosubselect removeOnDiff" id="formatButtonMobile"><img src="/css/img/optionsButton.svg">Format
                         code</div>
                         code</div>
                     <div style="display: none;" class="option nosubselect" id="minimapToggleMobile">Minimap
                     <div style="display: none;" class="option nosubselect" id="minimapToggleMobile">Minimap
                         <i class="fa fa-square" aria-hidden="true"></i>
                         <i class="fa fa-square" aria-hidden="true"></i>
                     </div>
                     </div>
-                    <!-- <div class="option subSelect" id="qrCodeHoverMobile"><img src="css/img/optionsButton.svg">QR Code Link
+                    <!-- <div class="option subSelect" id="qrCodeHoverMobile"><img src="/css/img/optionsButton.svg">QR Code Link
                         <div class="toDisplaySub qrCodeImage">
                         <div class="toDisplaySub qrCodeImage">
                             <div class="option" id="qrCodeImageMobile">[QR Code Image]</div>
                             <div class="option" id="qrCodeImageMobile">[QR Code Image]</div>
                         </div>
                         </div>
                     </div> -->
                     </div> -->
                     <div class="option nosubselect removeOnDiff" id="metadataButtonMobile"><img
                     <div class="option nosubselect removeOnDiff" id="metadataButtonMobile"><img
-                            src="css/img/metadataButton.svg">Metadata</div>
+                            src="/css/img/metadataButton.svg">Metadata</div>
                     <div class="option nosubselect removeOnDiff"><img class="examplesButton"
                     <div class="option nosubselect removeOnDiff"><img class="examplesButton"
-                            src="css/img/examplesButton.svg">Examples</div>
-                    <div class="option subSelect removeOnDiff"><img src="css/img/examplesButton.svg">Links / Tools
+                            src="/css/img/examplesButton.svg">Examples</div>
+                    <div class="option subSelect removeOnDiff"><img src="/css/img/examplesButton.svg">Links / Tools
                         <div class="toDisplaySub displayFooterLinks">
                         <div class="toDisplaySub displayFooterLinks">
                             <div class="option link">
                             <div class="option link">
                                 <a target='_new' href="https://www.netlify.com/">Deployed by Netlify</a>
                                 <a target='_new' href="https://www.netlify.com/">Deployed by Netlify</a>
@@ -275,14 +275,14 @@
                 </div>
                 </div>
             </div>
             </div>
             <div class="categoryTitle">
             <div class="categoryTitle">
-                <img class="logo" src="css/img/logo_v4.svg">
+                <img class="logo" src="/css/img/logo_v4.svg">
                 <div class="version"><span class="versionSub" id="mainTitleMobile"></span></div>
                 <div class="version"><span class="versionSub" id="mainTitleMobile"></span></div>
             </div>
             </div>
         </div>
         </div>
 
 
         <div id="switchWrapper" class="languageJS removeOnDiff">
         <div id="switchWrapper" class="languageJS removeOnDiff">
-            <img id="switchWrapperCode" src="css/img/codeButton.svg">
-            <img id="switchWrapperCanvas" src="css/img/canvas3Dbutton.svg">
+            <img id="switchWrapperCode" src="/css/img/codeButton.svg">
+            <img id="switchWrapperCanvas" src="/css/img/canvas3Dbutton.svg">
         </div>
         </div>
     </div>
     </div>
 
 
@@ -297,7 +297,7 @@
     </div>
     </div>
     <div id="exampleList" class="javascript">
     <div id="exampleList" class="javascript">
         <div id="exampleBanner" class="languageJS">
         <div id="exampleBanner" class="languageJS">
-            <h1>Examples<img id="examplesButtonClose" src="css/img/clearButton.svg"></h1>
+            <h1>Examples<img id="examplesButtonClose" src="/css/img/clearButton.svg"></h1>
         </div>
         </div>
         <div class="horizontalSeparator"></div>
         <div class="horizontalSeparator"></div>
         <input id="filterBar" type="text" placeholder="Filter examples...">
         <input id="filterBar" type="text" placeholder="Filter examples...">
@@ -333,7 +333,7 @@
 
 
     <div id="saveLayer" class="save-layer">
     <div id="saveLayer" class="save-layer">
         <div class="save-form languageJS ">
         <div class="save-form languageJS ">
-            <img id="saveFormButtonClose" src="css/img/clearButton.svg">
+            <img id="saveFormButtonClose" src="/css/img/clearButton.svg">
             <label for="saveFormTitle">TITLE</label>
             <label for="saveFormTitle">TITLE</label>
             <div class="separator"></div>
             <div class="separator"></div>
             <input type="text" maxlength="120" id="saveFormTitle" class="save-form-title">
             <input type="text" maxlength="120" id="saveFormTitle" class="save-form-title">
@@ -372,31 +372,31 @@
 
 
     <div id="waitDiv">
     <div id="waitDiv">
         <div id="logo-part">
         <div id="logo-part">
-            <img src="css/img/v4.svg" id="waitLogo" />
-            <img src="css/img/spinner.svg" id="waitSpinner" />
+            <img src="/css/img/v4.svg" id="waitLogo" />
+            <img src="/css/img/spinner.svg" id="waitSpinner" />
         </div>
         </div>
     </div>
     </div>
 
 
     <!-- jQuery -->
     <!-- jQuery -->
     <script src="https://code.jquery.com/jquery.js"></script>
     <script src="https://code.jquery.com/jquery.js"></script>
-    <script src="js/jquery.qrcode.js"></script>
-    <script src="js/qrcode.js"></script>
+    <script src="/js/jquery.qrcode.js"></script>
+    <script src="/js/qrcode.js"></script>
 
 
     <!-- jQuery -->
     <!-- jQuery -->
-    <script src="js/libs/jquery.min.js"></script>
-    <script src="js/jquery.qrcode.js"></script>
-    <script src="js/qrcode.js"></script>
+    <script src="/js/libs/jquery.min.js"></script>
+    <script src="/js/jquery.qrcode.js"></script>
+    <script src="/js/qrcode.js"></script>
 
 
     <!-- Main scripts -->
     <!-- Main scripts -->
-    <script src="js/config_versions.js"></script>
-    <script src="js/pbt.js"></script>
-    <script src="js/examples.js"></script>
-    <script src="js/main.js"></script>
-    <script src="js/menuPG.js"></script>
-    <script src="js/monacoCreator.js"></script>
-    <script src="js/settingsPG.js"></script>
-    <script src="js/utils.js"></script>
-    <script src="js/zipTool.js"></script>
+    <script src="/js/config_versions.js"></script>
+    <script src="/js/pbt.js"></script>
+    <script src="/js/examples.js"></script>
+    <script src="/js/main.js"></script>
+    <script src="/js/menuPG.js"></script>
+    <script src="/js/monacoCreator.js"></script>
+    <script src="/js/settingsPG.js"></script>
+    <script src="/js/utils.js"></script>
+    <script src="/js/zipTool.js"></script>
     
     
     <script>
     <script>
         BABYLONDEVTOOLS.Loader
         BABYLONDEVTOOLS.Loader

+ 82 - 85
Playground/index.html

@@ -5,13 +5,13 @@
         <title>Babylon.js Playground</title>
         <title>Babylon.js Playground</title>
         <meta charset='utf-8' />
         <meta charset='utf-8' />
         <meta name="viewport" content="width=device-width, user-scalable=no">
         <meta name="viewport" content="width=device-width, user-scalable=no">
-        <meta name="description" content="Babylon.js playground is a live editor for Babylon.js WebGL scenes">
+        <meta name="description" content="Babylon.js playground is a live editor for Babylon.js WebGL 3D scenes">
         <meta name="keywords" content="Babylon.js,WebGL,3D">
         <meta name="keywords" content="Babylon.js,WebGL,3D">
         <link rel="shortcut icon" href="https://www.babylonjs.com/favicon.ico">
         <link rel="shortcut icon" href="https://www.babylonjs.com/favicon.ico">
 
 
         <link rel="stylesheet" href="https://use.typekit.net/cta4xsb.css" />
         <link rel="stylesheet" href="https://use.typekit.net/cta4xsb.css" />
-        <link rel="stylesheet" href="css/index.css" />
-        <link rel="stylesheet" href="css/index_mobile.css" />
+        <link rel="stylesheet" href="/css/index.css" />
+        <link rel="stylesheet" href="/css/index_mobile.css" />
 
 
     </head>
     </head>
 
 
@@ -19,7 +19,7 @@
         <!-- Big screens -->
         <!-- Big screens -->
         <div class="navbar navBar1280 languageJS">
         <div class="navbar navBar1280 languageJS">
             <div class="categoryTitle">
             <div class="categoryTitle">
-                <img class="logo" src="css/img/logo_v4.svg">
+                <img class="logo" src="/css/img/logo_v4.svg">
                 <div class="version">Playground <span class="versionSub" id="mainTitle1280"></span></div>
                 <div class="version">Playground <span class="versionSub" id="mainTitle1280"></span></div>
             </div>
             </div>
 
 
@@ -27,25 +27,25 @@
                 <div class="buttonJStoTS languageTS" id="toTSbutton1280" title="Switch to TypeScript">Typescript</div>
                 <div class="buttonJStoTS languageTS" id="toTSbutton1280" title="Switch to TypeScript">Typescript</div>
                 <div class="buttonJStoTS languageJS" id="toJSbutton1280" title="Switch to JavaScript">Javascript</div>
                 <div class="buttonJStoTS languageJS" id="toJSbutton1280" title="Switch to JavaScript">Javascript</div>
                 <div class="buttonPG run removeOnDiff" id="runButton1280" title="Run&#10;(Alt+Enter)"><img
                 <div class="buttonPG run removeOnDiff" id="runButton1280" title="Run&#10;(Alt+Enter)"><img
-                        src="css/img/playButton.svg"></div>
+                        src="/css/img/playButton.svg"></div>
                 <div class="buttonPG removeOnDiff" id="saveButton1280" title="Save&#10;(Ctrl+S)"><img
                 <div class="buttonPG removeOnDiff" id="saveButton1280" title="Save&#10;(Ctrl+S)"><img
-                        src="css/img/saveButton.svg"></div>
+                        src="/css/img/saveButton.svg"></div>
                 <div class="buttonPG removeOnPhone removeOnDiff" id="zipButton1280"
                 <div class="buttonPG removeOnPhone removeOnDiff" id="zipButton1280"
-                    title="Download ZIP&#10;(Ctrl+Shift+S)"><img src="css/img/downloadButton.svg"></div>
+                    title="Download ZIP&#10;(Ctrl+Shift+S)"><img src="/css/img/downloadButton.svg"></div>
                 <div class="buttonPG removeOnDiff" id="newButton1280" title="Create new"><img
                 <div class="buttonPG removeOnDiff" id="newButton1280" title="Create new"><img
-                        src="css/img/newButton.svg"></div>
+                        src="/css/img/newButton.svg"></div>
                 <div class="buttonPG removeOnPhone removeOnDiff" id="clearButton1280" title="Clear"><img
                 <div class="buttonPG removeOnPhone removeOnDiff" id="clearButton1280" title="Clear"><img
-                        src="css/img/clearButton.svg"></div>
+                        src="/css/img/clearButton.svg"></div>
                 <div class="buttonPG removeOnPhone removeOnDiff" id="diffButton1280" title="Compare"><img
                 <div class="buttonPG removeOnPhone removeOnDiff" id="diffButton1280" title="Compare"><img
-                        src="css/img/diffButton.svg"></div>
+                        src="/css/img/diffButton.svg"></div>
                 <div class="buttonPG removeOnPhone displayOnDiff" id="previousButton1280"
                 <div class="buttonPG removeOnPhone displayOnDiff" id="previousButton1280"
-                    title="Previous difference&#10;(Shift+Alt+F5)"><img src="css/img/previousButton.svg"></div>
+                    title="Previous difference&#10;(Shift+Alt+F5)"><img src="/css/img/previousButton.svg"></div>
                 <div class="buttonPG removeOnPhone displayOnDiff" id="nextButton1280"
                 <div class="buttonPG removeOnPhone displayOnDiff" id="nextButton1280"
-                    title="Next difference&#10;(Alt+F5)"><img src="css/img/nextButton.svg"></div>
+                    title="Next difference&#10;(Alt+F5)"><img src="/css/img/nextButton.svg"></div>
                 <div class="buttonPG removeOnPhone displayOnDiff" id="exitButton1280" title="Exit&#10;(Esc)"><img
                 <div class="buttonPG removeOnPhone displayOnDiff" id="exitButton1280" title="Exit&#10;(Esc)"><img
-                        src="css/img/exitButton.svg"></div>
+                        src="/css/img/exitButton.svg"></div>
                 <div class="buttonPG select removeOnDiff" id="menuButton1280" title="Options"><img
                 <div class="buttonPG select removeOnDiff" id="menuButton1280" title="Options"><img
-                        src="css/img/optionsButton.svg">
+                        src="/css/img/optionsButton.svg">
                     <div class="toDisplay languageJS">
                     <div class="toDisplay languageJS">
                         <div class="option subSelect">Theme <i class="fa fa-chevron-right" aria-hidden="true"></i>
                         <div class="option subSelect">Theme <i class="fa fa-chevron-right" aria-hidden="true"></i>
                             <div class="toDisplaySub languageJS">
                             <div class="toDisplaySub languageJS">
@@ -93,14 +93,14 @@
                     <div class="toDisplay currentVersionDisplay" style="display: none"></div>
                     <div class="toDisplay currentVersionDisplay" style="display: none"></div>
                 </div>
                 </div>
                 <div class="buttonPG select removeOnDiff" title="Examples"><img class="examplesButton"
                 <div class="buttonPG select removeOnDiff" title="Examples"><img class="examplesButton"
-                        src="css/img/examplesButton.svg"></div>
+                        src="/css/img/examplesButton.svg"></div>
             </div>
             </div>
         </div>
         </div>
 
 
         <!-- Mid-size screens -->
         <!-- Mid-size screens -->
         <div class="navbar navBar1024 languageJS">
         <div class="navbar navBar1024 languageJS">
             <div class="categoryTitle">
             <div class="categoryTitle">
-                <img class="logo" src="css/img/logo_v4.svg">
+                <img class="logo" src="/css/img/logo_v4.svg">
                 <div class="version"><span class="versionSub" id="mainTitle1024"></span></div>
                 <div class="version"><span class="versionSub" id="mainTitle1024"></span></div>
             </div>
             </div>
 
 
@@ -109,26 +109,28 @@
                 <div class="buttonJStoTS languageJS" id="toJSbutton1024" title="Switch to JavaScript">JS</div>
                 <div class="buttonJStoTS languageJS" id="toJSbutton1024" title="Switch to JavaScript">JS</div>
                 <div class="buttonSpaceKiller"></div>
                 <div class="buttonSpaceKiller"></div>
                 <div class="buttonPG run removeOnDiff" id="runButton1024" title="Run&#10;(Alt+Enter)"><img
                 <div class="buttonPG run removeOnDiff" id="runButton1024" title="Run&#10;(Alt+Enter)"><img
-                        src="css/img/playButton.svg"></div>
+                        src="/css/img/playButton.svg"></div>
                 <div class="buttonPG removeOnDiff" id="saveButton1024" title="Save&#10;(Ctrl+S)"><img
                 <div class="buttonPG removeOnDiff" id="saveButton1024" title="Save&#10;(Ctrl+S)"><img
-                        src="css/img/saveButton.svg"></div>
+                        src="/css/img/saveButton.svg"></div>
                 <div class="buttonPG removeOnPhone removeOnDiff" id="zipButton1024"
                 <div class="buttonPG removeOnPhone removeOnDiff" id="zipButton1024"
-                    title="Download ZIP&#10;(Ctrl+Shift+S)"><img src="css/img/downloadButton.svg"></div>
+                    title="Download ZIP&#10;(Ctrl+Shift+S)"><img src="/css/img/downloadButton.svg"></div>
                 <div class="buttonPG removeOnDiff" id="newButton1024" title="Create new"><img
                 <div class="buttonPG removeOnDiff" id="newButton1024" title="Create new"><img
-                        src="css/img/newButton.svg"></div>
+                        src="/css/img/newButton.svg"></div>
                 <div class="buttonPG removeOnPhone removeOnDiff" id="clearButton1024" title="Clear"><img
                 <div class="buttonPG removeOnPhone removeOnDiff" id="clearButton1024" title="Clear"><img
-                        src="css/img/clearButton.svg"></div>
+                        src="/css/img/clearButton.svg"></div>
                 <div class="buttonPG removeOnPhone removeOnDiff" id="diffButton1024" title="Compare"><img
                 <div class="buttonPG removeOnPhone removeOnDiff" id="diffButton1024" title="Compare"><img
-                        src="css/img/diffButton.svg"></div>
+                        src="/css/img/diffButton.svg"></div>
                 <div class="buttonPG removeOnPhone displayOnDiff" id="previousButton1024"><img
                 <div class="buttonPG removeOnPhone displayOnDiff" id="previousButton1024"><img
-                        src="css/img/previousButton.svg"></div>
-                <div class="buttonPG removeOnPhone displayOnDiff" id="nextButton1024"><img src="css/img/nextButton.svg">
+                        src="/css/img/previousButton.svg"></div>
+                <div class="buttonPG removeOnPhone displayOnDiff" id="nextButton1024"><img
+                        src="/css/img/nextButton.svg">
                 </div>
                 </div>
-                <div class="buttonPG removeOnPhone displayOnDiff" id="exitButton1024"><img src="css/img/exitButton.svg">
+                <div class="buttonPG removeOnPhone displayOnDiff" id="exitButton1024"><img
+                        src="/css/img/exitButton.svg">
                 </div>
                 </div>
 
 
                 <div class="buttonPG select removeOnDiff" id="menuButton1024" title="Options"><img
                 <div class="buttonPG select removeOnDiff" id="menuButton1024" title="Options"><img
-                        src="css/img/optionsButton.svg">
+                        src="/css/img/optionsButton.svg">
                     <div class="toDisplay">
                     <div class="toDisplay">
                         <div class="option subSelect">Theme <i class="fa fa-chevron-right" aria-hidden="true"></i>
                         <div class="option subSelect">Theme <i class="fa fa-chevron-right" aria-hidden="true"></i>
 
 
@@ -178,51 +180,51 @@
                     </div>
                     </div>
                 </div>
                 </div>
                 <div class="buttonPG select removeOnDiff" title="Examples"><img class="examplesButton"
                 <div class="buttonPG select removeOnDiff" title="Examples"><img class="examplesButton"
-                        src="css/img/examplesButton.svg"></div>
+                        src="/css/img/examplesButton.svg"></div>
             </div>
             </div>
         </div>
         </div>
 
 
         <!-- Mobile -->
         <!-- Mobile -->
         <div class="navbar navBarMobile languageJS">
         <div class="navbar navBarMobile languageJS">
             <div class="category languageJS" id="JStoTSbar">
             <div class="category languageJS" id="JStoTSbar">
-                <div class="buttonPG select" id="menuButtonMobile"><img src="css/img/hamburgerButton.svg">
+                <div class="buttonPG select" id="menuButtonMobile"><img src="/css/img/hamburgerButton.svg">
                     <div class="toDisplay">
                     <div class="toDisplay">
                         <div class="option noSubSelect languageTS" id="toTSbuttonMobile">TypeScript</div>
                         <div class="option noSubSelect languageTS" id="toTSbuttonMobile">TypeScript</div>
                         <div class="option noSubSelect languageJS" id="toJSbuttonMobile">JavaScript</div>
                         <div class="option noSubSelect languageJS" id="toJSbuttonMobile">JavaScript</div>
                         <div class="option noSubSelect run removeOnDiff" id="runButtonMobile"><img
                         <div class="option noSubSelect run removeOnDiff" id="runButtonMobile"><img
-                                src="css/img/playButton.svg">Run</div>
+                                src="/css/img/playButton.svg">Run</div>
                         <div class="option noSubSelect removeOnDiff" id="saveButtonMobile"><img
                         <div class="option noSubSelect removeOnDiff" id="saveButtonMobile"><img
-                                src="css/img/saveButton.svg">Save</div>
+                                src="/css/img/saveButton.svg">Save</div>
                         <div class="option noSubSelect removeOnDiff" id="zipButtonMobile"><img
                         <div class="option noSubSelect removeOnDiff" id="zipButtonMobile"><img
-                                src="css/img/downloadButton.svg">Download</div>
+                                src="/css/img/downloadButton.svg">Download</div>
                         <div class="option noSubSelect removeOnDiff" id="newButtonMobile"><img
                         <div class="option noSubSelect removeOnDiff" id="newButtonMobile"><img
-                                src="css/img/newButton.svg">New</div>
+                                src="/css/img/newButton.svg">New</div>
                         <div class="option noSubSelect removeOnDiff" id="clearButtonMobile"><img
                         <div class="option noSubSelect removeOnDiff" id="clearButtonMobile"><img
-                                src="css/img/clearButton.svg">Clear</div>
+                                src="/css/img/clearButton.svg">Clear</div>
                         <div class="option noSubSelect removeOnDiff" id="diffButtonMobile"><img
                         <div class="option noSubSelect removeOnDiff" id="diffButtonMobile"><img
-                                src="css/img/DiffButton.svg">Diff</div>
+                                src="/css/img/diffButton.svg">Diff</div>
                         <div class="option noSubSelect displayOnDiff" id="previousButtonMobile"><img
                         <div class="option noSubSelect displayOnDiff" id="previousButtonMobile"><img
-                                src="css/img/previousButton.svg">Previous</div>
+                                src="/css/img/previousButton.svg">Previous</div>
                         <div class="option noSubSelect displayOnDiff" id="nextButtonMobile"><img
                         <div class="option noSubSelect displayOnDiff" id="nextButtonMobile"><img
-                                src="css/img/nextButton.svg">Next</div>
+                                src="/css/img/nextButton.svg">Next</div>
                         <div class="option noSubSelect displayOnDiff" id="exitButtonMobile"><img
                         <div class="option noSubSelect displayOnDiff" id="exitButtonMobile"><img
-                                src="css/img/exitButton.svg">Exit</div>
+                                src="/css/img/exitButton.svg">Exit</div>
 
 
                         <div class="option noSubSelect removeOnDiff" id="debugButtonMobile"><img
                         <div class="option noSubSelect removeOnDiff" id="debugButtonMobile"><img
-                                src="css/img/inspectorButton.svg">Inspector</div>
+                                src="/css/img/inspectorButton.svg">Inspector</div>
                         <div class="option subSelect removeOnDiff">
                         <div class="option subSelect removeOnDiff">
-                            <img src="css/img/optionsButton.svg">
+                            <img src="/css/img/optionsButton.svg">
                             <div id="currentVersionMobile"></div>
                             <div id="currentVersionMobile"></div>
                             <div class="toDisplaySub currentVersionDisplay">
                             <div class="toDisplaySub currentVersionDisplay">
                             </div>
                             </div>
                         </div>
                         </div>
-                        <div class="option subSelect removeOnDiff"><img src="css/img/optionsButton.svg">Theme
+                        <div class="option subSelect removeOnDiff"><img src="/css/img/optionsButton.svg">Theme
                             <div class="toDisplaySub">
                             <div class="toDisplaySub">
                                 <div class="option selected" id="darkThemeMobile">Dark</div>
                                 <div class="option selected" id="darkThemeMobile">Dark</div>
                                 <div class="option" id="lightThemeMobile">Light</div>
                                 <div class="option" id="lightThemeMobile">Light</div>
                             </div>
                             </div>
                         </div>
                         </div>
-                        <div class="option subSelect removeOnDiff"><img src="css/img/optionsButton.svg">Font size
+                        <div class="option subSelect removeOnDiff"><img src="/css/img/optionsButton.svg">Font size
                             <div class="toDisplaySub displayFontSize">
                             <div class="toDisplaySub displayFontSize">
                                 <div class="option">8</div>
                                 <div class="option">8</div>
                                 <div class="option">10</div>
                                 <div class="option">10</div>
@@ -246,26 +248,23 @@
                             style="display: none">Editor
                             style="display: none">Editor
                             Fullscreen</div>
                             Fullscreen</div>
                         <div class="option nosubselect removeOnDiff" id="formatButtonMobile"><img
                         <div class="option nosubselect removeOnDiff" id="formatButtonMobile"><img
-                                src="css/img/optionsButton.svg">Format
+                                src="/css/img/optionsButton.svg">Format
                             code</div>
                             code</div>
                         <div style="display: none;" class="option nosubselect" id="minimapToggleMobile">Minimap
                         <div style="display: none;" class="option nosubselect" id="minimapToggleMobile">Minimap
                             <i class="fa fa-square" aria-hidden="true"></i>
                             <i class="fa fa-square" aria-hidden="true"></i>
                         </div>
                         </div>
-                        <!-- <div class="option subSelect" id="qrCodeHoverMobile"><img src="css/img/optionsButton.svg">QR Code Link
+                        <!-- <div class="option subSelect" id="qrCodeHoverMobile"><img src="/css/img/optionsButton.svg">QR Code Link
                         <div class="toDisplaySub qrCodeImage">
                         <div class="toDisplaySub qrCodeImage">
                             <div class="option" id="qrCodeImageMobile">[QR Code Image]</div>
                             <div class="option" id="qrCodeImageMobile">[QR Code Image]</div>
                         </div>
                         </div>
                     </div> -->
                     </div> -->
                         <div class="option nosubselect removeOnDiff" id="metadataButtonMobile"><img
                         <div class="option nosubselect removeOnDiff" id="metadataButtonMobile"><img
-                                src="css/img/metadataButton.svg">Metadata</div>
+                                src="/css/img/metadataButton.svg">Metadata</div>
                         <div class="option nosubselect removeOnDiff"><img class="examplesButton"
                         <div class="option nosubselect removeOnDiff"><img class="examplesButton"
-                                src="css/img/examplesButton.svg">Examples</div>
-                        <div class="option subSelect removeOnDiff"><img src="css/img/examplesButton.svg">Links / Tools
+                                src="/css/img/examplesButton.svg">Examples</div>
+                        <div class="option subSelect removeOnDiff"><img src="/css/img/examplesButton.svg">Links / Tools
                             <div class="toDisplaySub displayFooterLinks">
                             <div class="toDisplaySub displayFooterLinks">
                                 <div class="option link">
                                 <div class="option link">
-                                    <a target='_new' href="https://www.netlify.com/">Deployed by Netlify</a>
-                                </div>
-                                <div class="option link">
                                     <a target='_new' href="https://forum.babylonjs.com/">Forum</a>
                                     <a target='_new' href="https://forum.babylonjs.com/">Forum</a>
                                 </div>
                                 </div>
                                 <div class="option link">
                                 <div class="option link">
@@ -282,14 +281,14 @@
                     </div>
                     </div>
                 </div>
                 </div>
                 <div class="categoryTitle">
                 <div class="categoryTitle">
-                    <img class="logo" src="css/img/logo_v4.svg">
+                    <img class="logo" src="/css/img/logo_v4.svg">
                     <div class="version"><span class="versionSub" id="mainTitleMobile"></span></div>
                     <div class="version"><span class="versionSub" id="mainTitleMobile"></span></div>
                 </div>
                 </div>
             </div>
             </div>
 
 
             <div id="switchWrapper" class="languageJS removeOnDiff">
             <div id="switchWrapper" class="languageJS removeOnDiff">
-                <img id="switchWrapperCode" src="css/img/codeButton.svg">
-                <img id="switchWrapperCanvas" src="css/img/canvas3Dbutton.svg">
+                <img id="switchWrapperCode" src="/css/img/codeButton.svg">
+                <img id="switchWrapperCanvas" src="/css/img/canvas3Dbutton.svg">
             </div>
             </div>
         </div>
         </div>
 
 
@@ -304,7 +303,7 @@
         </div>
         </div>
         <div id="exampleList" class="javascript">
         <div id="exampleList" class="javascript">
             <div id="exampleBanner" class="languageJS">
             <div id="exampleBanner" class="languageJS">
-                <h1>Examples<img id="examplesButtonClose" src="css/img/clearButton.svg"></h1>
+                <h1>Examples<img id="examplesButtonClose" src="/css/img/clearButton.svg"></h1>
             </div>
             </div>
             <div class="horizontalSeparator"></div>
             <div class="horizontalSeparator"></div>
             <input id="filterBar" type="text" placeholder="Filter examples...">
             <input id="filterBar" type="text" placeholder="Filter examples...">
@@ -321,9 +320,6 @@
             <div id="statusBar"></div>
             <div id="statusBar"></div>
             <div class="links">
             <div class="links">
                 <div class='link'>
                 <div class='link'>
-                    <a target='_new' href="https://www.netlify.com/">Deployed by Netlify</a>
-                </div>
-                <div class='link'>
                     <a target='_new' href="https://forum.babylonjs.com/">Forum</a>
                     <a target='_new' href="https://forum.babylonjs.com/">Forum</a>
                 </div>
                 </div>
                 <div class='link'>
                 <div class='link'>
@@ -340,7 +336,7 @@
 
 
         <div id="saveLayer" class="save-layer">
         <div id="saveLayer" class="save-layer">
             <div class="save-form languageJS ">
             <div class="save-form languageJS ">
-                <img id="saveFormButtonClose" src="css/img/clearButton.svg">
+                <img id="saveFormButtonClose" src="/css/img/clearButton.svg">
                 <label for="saveFormTitle">TITLE</label>
                 <label for="saveFormTitle">TITLE</label>
                 <div class="separator"></div>
                 <div class="separator"></div>
                 <input type="text" maxlength="120" id="saveFormTitle" class="save-form-title">
                 <input type="text" maxlength="120" id="saveFormTitle" class="save-form-title">
@@ -381,22 +377,22 @@
 
 
         <div id="waitDiv">
         <div id="waitDiv">
             <div id="logo-part">
             <div id="logo-part">
-                <img src="css/img/v4.svg" id="waitLogo" />
-                <img src="css/img/spinner.svg" id="waitSpinner" />
+                <img src="/css/img/v4.svg" id="waitLogo" />
+                <img src="/css/img/spinner.svg" id="waitSpinner" />
             </div>
             </div>
         </div>
         </div>
 
 
-        
+
         <!-- Pep -->
         <!-- Pep -->
-        <script src="js/libs/pep.min.js"></script>
+        <script src="/js/libs/pep.min.js"></script>
         <!-- For canvas/code separator -->
         <!-- For canvas/code separator -->
-        <script src="js/libs/split.js"></script>
+        <script src="/js/libs/split.js"></script>
 
 
         <!-- DatGUI -->
         <!-- DatGUI -->
-        <script src="js/libs/dat.gui.min.js"></script>
+        <script src="https://cdnjs.cloudflare.com/ajax/libs/dat-gui/0.6.2/dat.gui.min.js"></script>
         <!-- jszip -->
         <!-- jszip -->
-        <script src="js/libs/jszip.min.js"></script>
-        <script src="js/libs/fileSaver.js"></script>
+        <script src="/js/libs/jszip.min.js"></script>
+        <script src="/js/libs/fileSaver.js"></script>
 
 
         <!-- Dependencies -->
         <!-- Dependencies -->
         <script src="https://preview.babylonjs.com/ammo.js"></script>
         <script src="https://preview.babylonjs.com/ammo.js"></script>
@@ -416,41 +412,42 @@
         <script src="https://preview.babylonjs.com/loaders/babylonjs.loaders.min.js"></script>
         <script src="https://preview.babylonjs.com/loaders/babylonjs.loaders.min.js"></script>
         <script src="https://preview.babylonjs.com/serializers/babylonjs.serializers.min.js"></script>
         <script src="https://preview.babylonjs.com/serializers/babylonjs.serializers.min.js"></script>
 
 
-        <script src="https://cdn.jsdelivr.net/gh/BabylonJS/Babylon.js@preview/dist/preview%20release/recast.js">
-        </script>
-
         <!-- Extensions -->
         <!-- Extensions -->
-        <script src="https://cdn.jsdelivr.net/gh/BabylonJS/Extensions@master/ClonerSystem/src/babylonx.cloner.js" async>
+        <script
+            src="https://rawcdn.githack.com/BabylonJS/Extensions/f43ab677b4bca0a6ab77132d3f785be300382760/ClonerSystem/src/babylonx.cloner.js"
+            async>
         </script>
         </script>
         <script
         <script
-            src="https://cdn.jsdelivr.net/gh/BabylonJS/Extensions@master/CompoundShader/src/babylonx.CompoundShader.js"
+            src="https://rawcdn.githack.com/BabylonJS/Extensions/785013ec55b210d12263c91f3f0a2ae70cf0bc8a/CompoundShader/src/babylonx.CompoundShader.js"
             async></script>
             async></script>
 
 
         <!-- Scene Manager -->
         <!-- Scene Manager -->
-        <script src="https://cdn.jsdelivr.net/gh/MackeyK24/MackeyK24.github.io@master/toolkit/babylon.manager.js">
+        <script
+            src="https://rawcdn.githack.com/MackeyK24/MackeyK24.github.io/14fda491c50cfca6d3e2f6cbc5e6afe22cc455d6/toolkit/babylon.manager.js">
         </script>
         </script>
-        <script src="https://cdn.jsdelivr.net/gh/MackeyK24/MackeyK24.github.io@master/toolkit/babylon.navmesh.js">
+        <script
+            src="https://rawcdn.githack.com/MackeyK24/MackeyK24.github.io/14fda491c50cfca6d3e2f6cbc5e6afe22cc455d6/toolkit/babylon.navmesh.js">
         </script>
         </script>
 
 
         <!-- Monaco -->
         <!-- Monaco -->
-        <script src="node_modules/monaco-editor/dev/vs/loader.js"></script>
+        <script src="/node_modules/monaco-editor/dev/vs/loader.js"></script>
 
 
         <!-- jQuery -->
         <!-- jQuery -->
         <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
         <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
-        <script src="js/jquery.qrcode.js"></script>
-        <script src="js/qrcode.js"></script>
+        <script src="/js/jquery.qrcode.js"></script>
+        <script src="/js/qrcode.js"></script>
 
 
         <!-- Main scripts -->
         <!-- Main scripts -->
-        <script src="js/config_versions.js"></script>
-        <script src="js/pbt.js"></script>
-        <script src="js/examples.js"></script>
-        <script src="js/main.js"></script>
-        <script src="js/menuPG.js"></script>
-        <script src="js/monacoCreator.js"></script>
-        <script src="js/settingsPG.js"></script>
-        <script src="js/utils.js"></script>
-        <script src="js/zipTool.js"></script>
-        <script src="js/index.js"></script>
+        <script src="/js/config_versions.js"></script>
+        <script src="/js/pbt.js"></script>
+        <script src="/js/examples.js"></script>
+        <script src="/js/main.js"></script>
+        <script src="/js/menuPG.js"></script>
+        <script src="/js/monacoCreator.js"></script>
+        <script src="/js/settingsPG.js"></script>
+        <script src="/js/utils.js"></script>
+        <script src="/js/zipTool.js"></script>
+        <script src="/js/index.js"></script>
     </body>
     </body>
 
 
 </html>
 </html>

+ 381 - 344
Playground/indexStable.html

@@ -1,394 +1,431 @@
 <!DOCTYPE html>
 <!DOCTYPE html>
 <html>
 <html>
 
 
-<head>
-    <title>Babylon.js Playground</title>
-    <meta charset='utf-8' />
-    <meta name="viewport" content="width=device-width, user-scalable=no">
-    <link rel="shortcut icon" href="https://www.babylonjs.com/img/favicon/favicon.ico">
-
-    <link rel="stylesheet" href="https://use.typekit.net/cta4xsb.css" />
-    <link rel="stylesheet" href="css/index.css" />
-    <link rel="stylesheet" href="css/index_mobile.css" />
-
-    <link rel="manifest" href="https://www.babylonjs.com/img/favicon/manifest.json">
-    <meta name="msapplication-TileColor" content="#ffffff">
-    <meta name="msapplication-TileImage" content="https://www.babylonjs.com/img/favicon/ms-icon-144x144.png">
-    <meta name="msapplication-config" content="https://www.babylonjs.com/img/favicon/browserconfig.xml">
-    <meta name="theme-color" content="#ffffff">
-
-    <!-- Pep -->
-    <script src="https://code.jquery.com/pep/0.4.2/pep.min.js"></script>
-    <!--For canvas/code separator-->
-    <script src="js/libs/split.js"></script>
-
-    <!-- DatGUI -->
-    <script src="https://cdnjs.cloudflare.com/ajax/libs/dat-gui/0.6.2/dat.gui.min.js"></script>
-    <!-- jszip -->
-    <script src="js/libs/jszip.min.js"></script>
-    <script src="js/libs/fileSaver.js"></script>
-
-    <!-- Dependencies -->
-    <script src="https://cdn.babylonjs.com/ammo.js"></script>
-    <script src="https://cdn.babylonjs.com/cannon.js"></script>
-    <script src="https://cdn.babylonjs.com/Oimo.js"></script>
-    <script src="https://cdn.babylonjs.com/gltf_validator.js"></script>
-    <script src="https://cdn.babylonjs.com/earcut.min.js"></script>
-    <!-- Babylon.js -->
-    <script src="https://cdn.babylonjs.com/babylon.js"></script>
-    <script src="https://cdn.babylonjs.com/gui/babylon.gui.min.js"></script>
-    <script src="https://cdn.babylonjs.com/inspector/babylon.inspector.bundle.js"></script>
-    <script src="https://cdn.babylonjs.com/materialsLibrary/babylonjs.materials.min.js"></script>
-    <script src="https://cdn.babylonjs.com/proceduralTexturesLibrary/babylonjs.proceduralTextures.min.js"></script>
-    <script src="https://cdn.babylonjs.com/postProcessesLibrary/babylonjs.postProcess.min.js"></script>
-    <script src="https://cdn.babylonjs.com/loaders/babylonjs.loaders.js"></script>
-    <script src="https://cdn.babylonjs.com/serializers/babylonjs.serializers.min.js"></script>
-
-    <!-- Monaco -->
-    <script src="node_modules/monaco-editor/dev/vs/loader.js"></script>
-
-    <!-- Extensions -->
-    <script src="https://rawgit.com/BabylonJS/Extensions/master/ClonerSystem/src/babylonx.cloner.js"></script>
-</head>
-
-<body>
-    <!-- Big screens -->
-    <div class="navbar navBar1280 languageJS">
-        <div class="categoryTitle">
-            <img class="logo" src="css/img/logo_v4.svg">
-            <div class="version">Playground <span class="versionSub" id="mainTitle1280"></span></div>
-        </div>
+    <head>
+        <title>Babylon.js Playground</title>
+        <meta charset='utf-8' />
+        <meta name="viewport" content="width=device-width, user-scalable=no">
+        <link rel="shortcut icon" href="https://www.babylonjs.com/img/favicon/favicon.ico">
+
+        <link rel="stylesheet" href="https://use.typekit.net/cta4xsb.css" />
+        <link rel="stylesheet" href="/css/index.css" />
+        <link rel="stylesheet" href="/css/index_mobile.css" />
+
+        <link rel="manifest" href="https://www.babylonjs.com/img/favicon/manifest.json">
+        <meta name="msapplication-TileColor" content="#ffffff">
+        <meta name="msapplication-TileImage" content="https://www.babylonjs.com/img/favicon/ms-icon-144x144.png">
+        <meta name="msapplication-config" content="https://www.babylonjs.com/img/favicon/browserconfig.xml">
+        <meta name="theme-color" content="#ffffff">
+    </head>
+
+    <body>
+        <!-- Big screens -->
+        <div class="navbar navBar1280 languageJS">
+            <div class="categoryTitle">
+                <img class="logo" src="/css/img/logo_v4.svg">
+                <div class="version">Playground <span class="versionSub" id="mainTitle1280"></span></div>
+            </div>
 
 
-        <div class="category languageJS" id="JStoTSbar">
-            <div class="buttonJStoTS languageTS" id="toTSbutton1280" title="Switch to TypeScript">Typescript</div>
-            <div class="buttonJStoTS languageJS" id="toJSbutton1280" title="Switch to JavaScript">Javascript</div>
-            <div class="buttonPG run removeOnDiff" id="runButton1280" title="Run&#10;(Alt+Enter)"><img src="css/img/playButton.svg"></div>
-            <div class="buttonPG removeOnDiff" id="saveButton1280" title="Save&#10;(Ctrl+S)"><img src="css/img/saveButton.svg"></div>
-            <div class="buttonPG removeOnPhone removeOnDiff" id="zipButton1280" title="Download ZIP&#10;(Ctrl+Shift+S)"><img src="css/img/downloadButton.svg"></div>
-            <div class="buttonPG removeOnDiff" id="newButton1280" title="Create new"><img src="css/img/newButton.svg"></div>
-            <div class="buttonPG removeOnPhone removeOnDiff" id="clearButton1280" title="Clear"><img src="css/img/clearButton.svg"></div>
-            <div class="buttonPG removeOnPhone removeOnDiff" id="diffButton1280" title="Compare"><img src="css/img/diffButton.svg"></div>
-            <div class="buttonPG removeOnPhone displayOnDiff" id="previousButton1280" title="Previous difference&#10;(Shift+Alt+F5)"><img src="css/img/previousButton.svg"></div>
-            <div class="buttonPG removeOnPhone displayOnDiff" id="nextButton1280" title="Next difference&#10;(Alt+F5)"><img src="css/img/nextButton.svg"></div>
-            <div class="buttonPG removeOnPhone displayOnDiff" id="exitButton1280" title="Exit&#10;(Esc)"><img src="css/img/exitButton.svg"></div>
-            <div class="buttonPG select removeOnDiff" id="menuButton1280" title="Options"><img src="css/img/optionsButton.svg">
-                <div class="toDisplay languageJS">
-                    <div class="option subSelect">Theme <i class="fa fa-chevron-right" aria-hidden="true"></i>
-                        <div class="toDisplaySub languageJS">
-                            <div class="option selected" id="darkTheme1280">Dark</div>
-                            <div class="option" id="lightTheme1280">Light</div>
+            <div class="category languageJS" id="JStoTSbar">
+                <div class="buttonJStoTS languageTS" id="toTSbutton1280" title="Switch to TypeScript">Typescript</div>
+                <div class="buttonJStoTS languageJS" id="toJSbutton1280" title="Switch to JavaScript">Javascript</div>
+                <div class="buttonPG run removeOnDiff" id="runButton1280" title="Run&#10;(Alt+Enter)"><img
+                        src="/css/img/playButton.svg"></div>
+                <div class="buttonPG removeOnDiff" id="saveButton1280" title="Save&#10;(Ctrl+S)"><img
+                        src="/css/img/saveButton.svg"></div>
+                <div class="buttonPG removeOnPhone removeOnDiff" id="zipButton1280"
+                    title="Download ZIP&#10;(Ctrl+Shift+S)"><img src="/css/img/downloadButton.svg"></div>
+                <div class="buttonPG removeOnDiff" id="newButton1280" title="Create new"><img
+                        src="/css/img/newButton.svg"></div>
+                <div class="buttonPG removeOnPhone removeOnDiff" id="clearButton1280" title="Clear"><img
+                        src="/css/img/clearButton.svg"></div>
+                <div class="buttonPG removeOnPhone removeOnDiff" id="diffButton1280" title="Compare"><img
+                        src="/css/img/diffButton.svg"></div>
+                <div class="buttonPG removeOnPhone displayOnDiff" id="previousButton1280"
+                    title="Previous difference&#10;(Shift+Alt+F5)"><img src="/css/img/previousButton.svg"></div>
+                <div class="buttonPG removeOnPhone displayOnDiff" id="nextButton1280"
+                    title="Next difference&#10;(Alt+F5)"><img src="/css/img/nextButton.svg"></div>
+                <div class="buttonPG removeOnPhone displayOnDiff" id="exitButton1280" title="Exit&#10;(Esc)"><img
+                        src="/css/img/exitButton.svg"></div>
+                <div class="buttonPG select removeOnDiff" id="menuButton1280" title="Options"><img
+                        src="/css/img/optionsButton.svg">
+                    <div class="toDisplay languageJS">
+                        <div class="option subSelect">Theme <i class="fa fa-chevron-right" aria-hidden="true"></i>
+                            <div class="toDisplaySub languageJS">
+                                <div class="option selected" id="darkTheme1280">Dark</div>
+                                <div class="option" id="lightTheme1280">Light</div>
+                            </div>
                         </div>
                         </div>
-                    </div>
-                    <div class="option subSelect">Font size <i class="fa fa-chevron-right" aria-hidden="true"></i>
-                        <div class="toDisplaySub displayFontSize languageJS">
-                            <div class="option">12</div>
-                            <div class="option selected">14</div>
-                            <div class="option">16</div>
-                            <div class="option">18</div>
-                            <div class="option">20</div>
-                            <div class="option">22</div>
+                        <div class="option subSelect">Font size <i class="fa fa-chevron-right" aria-hidden="true"></i>
+                            <div class="toDisplaySub displayFontSize languageJS">
+                                <div class="option">12</div>
+                                <div class="option selected">14</div>
+                                <div class="option">16</div>
+                                <div class="option">18</div>
+                                <div class="option">20</div>
+                                <div class="option">22</div>
+                            </div>
                         </div>
                         </div>
-                    </div>
-                    <div class="option noSubSelect" id="safemodeToggle1280">Safe mode
-                        <i class="fa fa-square" aria-hidden="true"></i>
-                    </div>
-                    <div class="option checked noSubSelect" id="editorButton1280">Editor
-                        <i class="fa fa-check-square" aria-hidden="true"></i>
-                    </div>
-                    <div class="option noSubSelect" id="fullscreenButton1280">Fullscreen</div>
-                    <div class="option noSubSelect" id="editorFullscreenButton1280">Editor Fullscreen</div>
-                    <div class="option noSubSelect" id="formatButton1280">Format code</div>
-                    <div class="option noSubSelect" id="minimapToggle1280">Minimap
-                        <i class="fa fa-square" aria-hidden="true"></i>
-                    </div>
-                    <div class="option subSelect" id="qrCodeHover1280">QR Code Link <i class="fa fa-chevron-right"
-                            aria-hidden="true"></i>
-                        <div class="toDisplaySub qrCodeImage">
-                            <div class="option" id="qrCodeImage1280">[QR Code Image]</div>
+                        <div class="option noSubSelect" id="safemodeToggle1280">Safe mode
+                            <i class="fa fa-square" aria-hidden="true"></i>
                         </div>
                         </div>
+                        <div class="option checked noSubSelect" id="editorButton1280">Editor
+                            <i class="fa fa-check-square" aria-hidden="true"></i>
+                        </div>
+                        <div class="option noSubSelect" id="fullscreenButton1280">Fullscreen</div>
+                        <div class="option noSubSelect" id="editorFullscreenButton1280">Editor Fullscreen</div>
+                        <div class="option noSubSelect" id="formatButton1280">Format code</div>
+                        <div class="option noSubSelect" id="minimapToggle1280">Minimap
+                            <i class="fa fa-square" aria-hidden="true"></i>
+                        </div>
+                        <div class="option subSelect" id="qrCodeHover1280">QR Code Link <i class="fa fa-chevron-right"
+                                aria-hidden="true"></i>
+                            <div class="toDisplaySub qrCodeImage">
+                                <div class="option" id="qrCodeImage1280">[QR Code Image]</div>
+                            </div>
+                        </div>
+                        <div class="option uncheck noSubSelect" id="debugButton1280">Inspector</div>
+                        <div class="option nosubselect" id="metadataButton1280">Metadata</div>
                     </div>
                     </div>
-                    <div class="option uncheck noSubSelect" id="debugButton1280">Inspector</div>
-                    <div class="option nosubselect" id="metadataButton1280">Metadata</div>
                 </div>
                 </div>
             </div>
             </div>
-        </div>
 
 
-        <div class="category right">
-            <div class="button select">
-                <span id="currentVersion1280"></span>
-                <div class="toDisplay currentVersionDisplay" style="display: none"></div>
+            <div class="category right">
+                <div class="button select">
+                    <span id="currentVersion1280"></span>
+                    <div class="toDisplay currentVersionDisplay" style="display: none"></div>
+                </div>
+                <div class="button select"><img class="examplesButton" src="/css/img/examplesButton.svg"></div>
             </div>
             </div>
-            <div class="button select"><img class="examplesButton" src="css/img/examplesButton.svg"></div>
         </div>
         </div>
-    </div>
 
 
-    <!-- Mid-size screens -->
-    <div class="navbar navBar1024 languageJS">
-        <div class="categoryTitle">
-            <img class="logo" src="css/img/logo_v4.svg">
-            <div class="version"><span class="versionSub" id="mainTitle1024"></span></div>
-        </div>
+        <!-- Mid-size screens -->
+        <div class="navbar navBar1024 languageJS">
+            <div class="categoryTitle">
+                <img class="logo" src="/css/img/logo_v4.svg">
+                <div class="version"><span class="versionSub" id="mainTitle1024"></span></div>
+            </div>
 
 
-        <div class="category languageJS" id="JStoTSbar">
-            <div class="buttonJStoTS languageTS" id="toTSbutton1024" title="Switch to TypeScript">TS</div>
-            <div class="buttonJStoTS languageJS" id="toJSbutton1024" title="Switch to JavaScript">JS</div>
-            <div class="buttonSpaceKiller"></div>
-            <div class="buttonPG run removeOnDiff" id="runButton1024" title="Run&#10;(Alt+Enter)"><img src="css/img/playButton.svg"></div>
-            <div class="buttonPG removeOnDiff" id="saveButton1024" title="Save&#10;(Ctrl+S)"><img src="css/img/saveButton.svg"></div>
-            <div class="buttonPG removeOnPhone removeOnDiff" id="zipButton1024" title="Download ZIP&#10;(Ctrl+Shift+S)"><img src="css/img/downloadButton.svg"></div>
-            <div class="buttonPG removeOnDiff" id="newButton1024" title="Create new"><img src="css/img/newButton.svg"></div>
-            <div class="buttonPG removeOnPhone removeOnDiff" id="clearButton1024" title="Clear"><img src="css/img/clearButton.svg"></div>
-            <div class="buttonPG removeOnPhone removeOnDiff" id="diffButton1024" title="Compare"><img src="css/img/diffButton.svg"></div>
-            <div class="buttonPG removeOnPhone displayOnDiff" id="previousButton1024"><img src="css/img/previousButton.svg"></div>
-            <div class="buttonPG removeOnPhone displayOnDiff" id="nextButton1024"><img src="css/img/nextButton.svg"></div>
-            <div class="buttonPG removeOnPhone displayOnDiff" id="exitButton1024"><img src="css/img/exitButton.svg"></div>
-
-            <div class="buttonPG select removeOnDiff" id="menuButton1024" title="Options"><img src="css/img/optionsButton.svg">
-                <div class="toDisplay">
-                    <div class="option subSelect">Theme <i class="fa fa-chevron-right" aria-hidden="true"></i>
-
-                        <div class="toDisplaySub">
-                            <div class="option selected" id="darkTheme1024">Dark</div>
-                            <div class="option" id="lightTheme1024">Light</div>
+            <div class="category languageJS" id="JStoTSbar">
+                <div class="buttonJStoTS languageTS" id="toTSbutton1024" title="Switch to TypeScript">TS</div>
+                <div class="buttonJStoTS languageJS" id="toJSbutton1024" title="Switch to JavaScript">JS</div>
+                <div class="buttonSpaceKiller"></div>
+                <div class="buttonPG run removeOnDiff" id="runButton1024" title="Run&#10;(Alt+Enter)"><img
+                        src="/css/img/playButton.svg"></div>
+                <div class="buttonPG removeOnDiff" id="saveButton1024" title="Save&#10;(Ctrl+S)"><img
+                        src="/css/img/saveButton.svg"></div>
+                <div class="buttonPG removeOnPhone removeOnDiff" id="zipButton1024"
+                    title="Download ZIP&#10;(Ctrl+Shift+S)"><img src="/css/img/downloadButton.svg"></div>
+                <div class="buttonPG removeOnDiff" id="newButton1024" title="Create new"><img
+                        src="/css/img/newButton.svg"></div>
+                <div class="buttonPG removeOnPhone removeOnDiff" id="clearButton1024" title="Clear"><img
+                        src="/css/img/clearButton.svg"></div>
+                <div class="buttonPG removeOnPhone removeOnDiff" id="diffButton1024" title="Compare"><img
+                        src="/css/img/diffButton.svg"></div>
+                <div class="buttonPG removeOnPhone displayOnDiff" id="previousButton1024"><img
+                        src="/css/img/previousButton.svg"></div>
+                <div class="buttonPG removeOnPhone displayOnDiff" id="nextButton1024"><img
+                        src="/css/img/nextButton.svg"></div>
+                <div class="buttonPG removeOnPhone displayOnDiff" id="exitButton1024"><img
+                        src="/css/img/exitButton.svg"></div>
+
+                <div class="buttonPG select removeOnDiff" id="menuButton1024" title="Options"><img
+                        src="/css/img/optionsButton.svg">
+                    <div class="toDisplay">
+                        <div class="option subSelect">Theme <i class="fa fa-chevron-right" aria-hidden="true"></i>
+
+                            <div class="toDisplaySub">
+                                <div class="option selected" id="darkTheme1024">Dark</div>
+                                <div class="option" id="lightTheme1024">Light</div>
+                            </div>
                         </div>
                         </div>
-                    </div>
-                    <div class="option subSelect">Font size <i class="fa fa-chevron-right" aria-hidden="true"></i>
-                        <div class="toDisplaySub displayFontSize">
-                            <div class="option">12</div>
-                            <div class="option selected">14</div>
-                            <div class="option">16</div>
-                            <div class="option">18</div>
-                            <div class="option">20</div>
-                            <div class="option">22</div>
+                        <div class="option subSelect">Font size <i class="fa fa-chevron-right" aria-hidden="true"></i>
+                            <div class="toDisplaySub displayFontSize">
+                                <div class="option">12</div>
+                                <div class="option selected">14</div>
+                                <div class="option">16</div>
+                                <div class="option">18</div>
+                                <div class="option">20</div>
+                                <div class="option">22</div>
+                            </div>
                         </div>
                         </div>
-                    </div>
-                    <div class="option noSubSelect" id="safemodeToggle1024">Safe mode
-                        <i class="fa fa-square" aria-hidden="true"></i>
-                    </div>
-                    <div class="option checked noSubSelect" id="editorButton1024">Editor
-                        <i class="fa fa-check-square" aria-hidden="true"></i>
-                    </div>
-                    <div class="option noSubSelect" id="fullscreenButton1024">Fullscreen</div>
-                    <div class="option noSubSelect" id="editorFullscreenButton1024">Editor Fullscreen</div>
-                    <div class="option noSubSelect" id="formatButton1024">Format code</div>
-                    <div class="option noSubSelect" id="minimapToggle1024">Minimap
-                        <i class="fa fa-square" aria-hidden="true"></i>
-                    </div>
-                    <div class="option subSelect" id="qrCodeHover1024">QR Code Link <i class="fa fa-chevron-right"
-                            aria-hidden="true"></i>
-                        <div class="toDisplaySub qrCodeImage">
-                            <div class="option" id="qrCodeImage1024">[QR Code Image]</div>
+                        <div class="option noSubSelect" id="safemodeToggle1024">Safe mode
+                            <i class="fa fa-square" aria-hidden="true"></i>
+                        </div>
+                        <div class="option checked noSubSelect" id="editorButton1024">Editor
+                            <i class="fa fa-check-square" aria-hidden="true"></i>
+                        </div>
+                        <div class="option noSubSelect" id="fullscreenButton1024">Fullscreen</div>
+                        <div class="option noSubSelect" id="editorFullscreenButton1024">Editor Fullscreen</div>
+                        <div class="option noSubSelect" id="formatButton1024">Format code</div>
+                        <div class="option noSubSelect" id="minimapToggle1024">Minimap
+                            <i class="fa fa-square" aria-hidden="true"></i>
+                        </div>
+                        <div class="option subSelect" id="qrCodeHover1024">QR Code Link <i class="fa fa-chevron-right"
+                                aria-hidden="true"></i>
+                            <div class="toDisplaySub qrCodeImage">
+                                <div class="option" id="qrCodeImage1024">[QR Code Image]</div>
+                            </div>
                         </div>
                         </div>
+                        <div class="option uncheck noSubSelect" id="debugButton1024">Inspector</div>
+                        <div class="option noSubSelect" id="metadataButton1024">Metadata</div>
                     </div>
                     </div>
-                    <div class="option uncheck noSubSelect" id="debugButton1024">Inspector</div>
-                    <div class="option noSubSelect" id="metadataButton1024">Metadata</div>
                 </div>
                 </div>
             </div>
             </div>
-        </div>
 
 
-        <div class="category right">
-            <div class="button select">
-                <span id="currentVersion1024"></span>
-                <div class="toDisplay currentVersionDisplay" style="display: none">
+            <div class="category right">
+                <div class="button select">
+                    <span id="currentVersion1024"></span>
+                    <div class="toDisplay currentVersionDisplay" style="display: none">
+                    </div>
                 </div>
                 </div>
+                <div class="button select"><img class="examplesButton" src="/css/img/examplesButton.svg"></div>
             </div>
             </div>
-            <div class="button select"><img class="examplesButton" src="css/img/examplesButton.svg"></div>
         </div>
         </div>
-    </div>
-
-    <!-- Mobile -->
-    <div class="navbar navBarMobile languageJS">
-        <div class="category languageJS" id="JStoTSbar">
-            <div class="button select" id="menuButtonMobile"><img src="css/img/hamburgerButton.svg">
-                <div class="toDisplay">
-                    <div class="option noSubSelect languageTS" id="toTSbuttonMobile">TypeScript</div>
-                    <div class="option noSubSelect languageJS" id="toJSbuttonMobile">JavaScript</div>
-                    <div class="option noSubSelect run" id="runButtonMobile"><img src="css/img/playButton.svg">Run</div>
-                    <div class="option noSubSelect" id="saveButtonMobile"><img src="css/img/saveButton.svg">Save</div>
-                    <div class="option noSubSelect" id="zipButtonMobile"><img src="css/img/downloadButton.svg">Download
-                    </div>
-                    <div class="option noSubSelect" id="newButtonMobile"><img src="css/img/newButton.svg">New</div>
-                    <div class="option noSubSelect" id="clearButtonMobile"><img src="css/img/clearButton.svg">Clear
-                    </div>
-                    <div class="option noSubSelect" id="debugButtonMobile"><img
-                            src="css/img/inspectorButton.svg">Inspector</div>
-                    <div class="option subSelect">
-                        <img src="css/img/optionsButton.svg">
-                        Version<div id="currentVersionMobile"></div>
-                        <div class="toDisplaySub currentVersionDisplay">
+
+        <!-- Mobile -->
+        <div class="navbar navBarMobile languageJS">
+            <div class="category languageJS" id="JStoTSbar">
+                <div class="button select" id="menuButtonMobile"><img src="/css/img/hamburgerButton.svg">
+                    <div class="toDisplay">
+                        <div class="option noSubSelect languageTS" id="toTSbuttonMobile">TypeScript</div>
+                        <div class="option noSubSelect languageJS" id="toJSbuttonMobile">JavaScript</div>
+                        <div class="option noSubSelect run" id="runButtonMobile"><img src="/css/img/playButton.svg">Run
                         </div>
                         </div>
-                    </div>
-                    <div class="option subSelect"><img src="css/img/optionsButton.svg">Theme
-                        <div class="toDisplaySub">
-                            <div class="option selected" id="darkThemeMobile">Dark</div>
-                            <div class="option" id="lightThemeMobile">Light</div>
+                        <div class="option noSubSelect" id="saveButtonMobile"><img src="/css/img/saveButton.svg">Save
                         </div>
                         </div>
-                    </div>
-                    <div class="option subSelect"><img src="css/img/optionsButton.svg">Font size
-                        <div class="toDisplaySub displayFontSize">
-                            <div class="option">8</div>
-                            <div class="option">10</div>
-                            <div class="option selected">12</div>
-                            <div class="option">14</div>
-                            <div class="option">16</div>
-                            <div class="option">18</div>
-                            <div class="option">20</div>
-                            <div class="option">22</div>
+                        <div class="option noSubSelect" id="zipButtonMobile"><img
+                                src="/css/img/downloadButton.svg">Download
                         </div>
                         </div>
-                    </div>
-                    <div style="display: none;" class="option noSubSelect" id="safemodeToggleMobile">Safe mode
-                        <i class="fa fa-square" aria-hidden="true"></i>
-                    </div>
-                    <div style="display: none;" class="option checked noSubSelect" id="editorButtonMobile">Editor
-                        <i class="fa fa-check-square" aria-hidden="true"></i>
-                    </div>
-                    <div style="display: none;" class="option nosubselect" id="fullscreenButtonMobile"
-                        style="display: none">Fullscreen</div>
-                    <div style="display: none;" class="option nosubselect" id="editorFullscreenButtonMobile"
-                        style="display: none">Editor
-                        Fullscreen</div>
-                    <div class="option nosubselect" id="formatButtonMobile"><img src="css/img/optionsButton.svg">Format
-                        code</div>
-                    <div style="display: none;" class="option nosubselect" id="minimapToggleMobile">Minimap
-                        <i class="fa fa-square" aria-hidden="true"></i>
-                    </div>
-                    <!-- <div class="option subSelect" id="qrCodeHoverMobile"><img src="css/img/optionsButton.svg">QR Code Link
-                        <div class="toDisplaySub qrCodeImage">
-                            <div class="option" id="qrCodeImageMobile">[QR Code Image]</div>
+                        <div class="option noSubSelect" id="newButtonMobile"><img src="/css/img/newButton.svg">New</div>
+                        <div class="option noSubSelect" id="clearButtonMobile"><img src="/css/img/clearButton.svg">Clear
                         </div>
                         </div>
-                    </div> -->
-                    <div class="option nosubselect" id="metadataButtonMobile"><img
-                            src="css/img/metadataButton.svg">Metadata</div>
-                    <div class="option nosubselect"><img class="examplesButton"
-                            src="css/img/examplesButton.svg">Examples</div>
-                    <div class="option subSelect"><img src="css/img/examplesButton.svg">Links / Tools
-                        <div class="toDisplaySub displayFooterLinks">
-                            <div class="option link">
-                                <a target='_new' href="https://www.netlify.com/">Deployed by Netlify</a>
-                            </div>
-                            <div class="option link">
-                                <a target='_new' href="https://forum.babylonjs.com/">Forum</a>
+                        <div class="option noSubSelect" id="debugButtonMobile"><img
+                                src="/css/img/inspectorButton.svg">Inspector</div>
+                        <div class="option subSelect">
+                            <img src="/css/img/optionsButton.svg">
+                            Version<div id="currentVersionMobile"></div>
+                            <div class="toDisplaySub currentVersionDisplay">
                             </div>
                             </div>
-                            <div class="option link">
-                                <a target='_new' href="https://www.babylonjs.com/sandbox">Sandbox</a>
+                        </div>
+                        <div class="option subSelect"><img src="/css/img/optionsButton.svg">Theme
+                            <div class="toDisplaySub">
+                                <div class="option selected" id="darkThemeMobile">Dark</div>
+                                <div class="option" id="lightThemeMobile">Light</div>
                             </div>
                             </div>
-                            <div class="option link">
-                                <a target='_new' href="https://doc.babylonjs.com">Documentation</a>
+                        </div>
+                        <div class="option subSelect"><img src="/css/img/optionsButton.svg">Font size
+                            <div class="toDisplaySub displayFontSize">
+                                <div class="option">8</div>
+                                <div class="option">10</div>
+                                <div class="option selected">12</div>
+                                <div class="option">14</div>
+                                <div class="option">16</div>
+                                <div class="option">18</div>
+                                <div class="option">20</div>
+                                <div class="option">22</div>
                             </div>
                             </div>
-                            <div class="option link">
-                                <a target='_new' href="https://doc.babylonjs.com/playground">Search</a>
+                        </div>
+                        <div style="display: none;" class="option noSubSelect" id="safemodeToggleMobile">Safe mode
+                            <i class="fa fa-square" aria-hidden="true"></i>
+                        </div>
+                        <div style="display: none;" class="option checked noSubSelect" id="editorButtonMobile">Editor
+                            <i class="fa fa-check-square" aria-hidden="true"></i>
+                        </div>
+                        <div style="display: none;" class="option nosubselect" id="fullscreenButtonMobile"
+                            style="display: none">Fullscreen</div>
+                        <div style="display: none;" class="option nosubselect" id="editorFullscreenButtonMobile"
+                            style="display: none">Editor
+                            Fullscreen</div>
+                        <div class="option nosubselect" id="formatButtonMobile"><img
+                                src="/css/img/optionsButton.svg">Format
+                            code</div>
+                        <div style="display: none;" class="option nosubselect" id="minimapToggleMobile">Minimap
+                            <i class="fa fa-square" aria-hidden="true"></i>
+                        </div>
+                        <!-- <div class="option subSelect" id="qrCodeHoverMobile"><img src="/css/img/optionsButton.svg">QR Code Link
+                        <div class="toDisplaySub qrCodeImage">
+                            <div class="option" id="qrCodeImageMobile">[QR Code Image]</div>
+                        </div>
+                    </div> -->
+                        <div class="option nosubselect" id="metadataButtonMobile"><img
+                                src="/css/img/metadataButton.svg">Metadata</div>
+                        <div class="option nosubselect"><img class="examplesButton"
+                                src="/css/img/examplesButton.svg">Examples</div>
+                        <div class="option subSelect"><img src="/css/img/examplesButton.svg">Links / Tools
+                            <div class="toDisplaySub displayFooterLinks">
+                                <div class="option link">
+                                    <a target='_new' href="https://www.netlify.com/">Deployed by Netlify</a>
+                                </div>
+                                <div class="option link">
+                                    <a target='_new' href="https://forum.babylonjs.com/">Forum</a>
+                                </div>
+                                <div class="option link">
+                                    <a target='_new' href="https://www.babylonjs.com/sandbox">Sandbox</a>
+                                </div>
+                                <div class="option link">
+                                    <a target='_new' href="https://doc.babylonjs.com">Documentation</a>
+                                </div>
+                                <div class="option link">
+                                    <a target='_new' href="https://doc.babylonjs.com/playground">Search</a>
+                                </div>
                             </div>
                             </div>
                         </div>
                         </div>
                     </div>
                     </div>
                 </div>
                 </div>
+                <div class="categoryTitle">
+                    <img class="logo" src="/css/img/logo_v4.svg">
+                    <div class="version"><span class="versionSub" id="mainTitleMobile"></span></div>
+                </div>
             </div>
             </div>
-            <div class="categoryTitle">
-                <img class="logo" src="css/img/logo_v4.svg">
-                <div class="version"><span class="versionSub" id="mainTitleMobile"></span></div>
+
+            <div id="switchWrapper" class="languageJS">
+                <img id="switchWrapperCode" src="/css/img/codeButton.svg">
+                <img id="switchWrapperCanvas" src="/css/img/canvas3Dbutton.svg">
             </div>
             </div>
         </div>
         </div>
 
 
-        <div id="switchWrapper" class="languageJS">
-            <img id="switchWrapperCode" src="css/img/codeButton.svg">
-            <img id="switchWrapperCanvas" src="css/img/canvas3Dbutton.svg">
+        <!-- Common things -->
+
+        <div class="wrapper">
+            <div id="jsEditor"></div>
+            <div id="canvasZone">
+                <canvas touch-action="none" id="renderCanvas"></canvas>
+            </div>
+        </div>
+        <div id="exampleList" class="javascript">
+            <div id="exampleBanner" class="languageJS">
+                <h1>Examples<img id="examplesButtonClose" src="/css/img/clearButton.svg"></h1>
+            </div>
+            <div class="horizontalSeparator"></div>
+            <input id="filterBar" type="text" placeholder="Filter examples...">
+            <img id="filterBarClear"
+                src="https://d33wubrfki0l68.cloudfront.net/17ca450bae302631f4857cd8c3992234ec5dd9a7/057f9/img/ui/clear_button.png">
         </div>
         </div>
-    </div>
 
 
-    <!-- Common things -->
+        <div class="fpsLabel languageJS" id="fpsLabel"></div>
 
 
-    <div class="wrapper">
-        <div id="jsEditor"></div>
-        <div id="canvasZone">
-            <canvas touch-action="none" id="renderCanvas"></canvas>
-        </div>
-    </div>
-    <div id="exampleList" class="javascript">
-        <div id="exampleBanner" class="languageJS">
-            <h1>Examples<img id="examplesButtonClose" src="css/img/clearButton.svg"></h1>
+        <div id="errorZone">
         </div>
         </div>
-        <div class="horizontalSeparator"></div>
-        <input id="filterBar" type="text" placeholder="Filter examples...">
-        <img id="filterBarClear"
-            src="https://d33wubrfki0l68.cloudfront.net/17ca450bae302631f4857cd8c3992234ec5dd9a7/057f9/img/ui/clear_button.png">
-    </div>
-
-    <div class="fpsLabel languageJS" id="fpsLabel"></div>
-
-    <div id="errorZone">
-    </div>
-
-    <div class="navbarBottom">
-        <div id="statusBar"></div>
-        <div class="links">
-            <div class='link'>
-                <a target='_new' href="https://www.netlify.com/">Deployed by Netlify</a>
-            </div>
-            <div class='link'>
-                <a target='_new' href="https://forum.babylonjs.com/">Forum</a>
-            </div>
-            <div class='link'>
-                <a target='_new' href="https://www.babylonjs.com/sandbox">Sandbox</a>
-            </div>
-            <div class='link'>
-                <a target='_new' href="https://doc.babylonjs.com">Documentation</a>
-            </div>
-            <div class='link'>
-                <a target='_new' href="https://doc.babylonjs.com/playground">Search</a>
+
+        <div class="navbarBottom">
+            <div id="statusBar"></div>
+            <div class="links">
+                <div class='link'>
+                    <a target='_new' href="https://www.netlify.com/">Deployed by Netlify</a>
+                </div>
+                <div class='link'>
+                    <a target='_new' href="https://forum.babylonjs.com/">Forum</a>
+                </div>
+                <div class='link'>
+                    <a target='_new' href="https://www.babylonjs.com/sandbox">Sandbox</a>
+                </div>
+                <div class='link'>
+                    <a target='_new' href="https://doc.babylonjs.com">Documentation</a>
+                </div>
+                <div class='link'>
+                    <a target='_new' href="https://doc.babylonjs.com/playground">Search</a>
+                </div>
             </div>
             </div>
         </div>
         </div>
-    </div>
-
-    <div id="saveLayer" class="save-layer">
-        <div class="save-form languageJS ">
-            <img id="saveFormButtonClose" src="css/img/clearButton.svg">
-            <label for="saveFormTitle">TITLE</label>
-            <div class="separator"></div>
-            <input type="text" maxlength="120" id="saveFormTitle" class="save-form-title">
-
-            <label for="saveFormDescription">DESCRIPTION</label>
-            <div class="separator"></div>
-            <textarea id="saveFormDescription" rows="4" cols="10"></textarea>
-
-            <label for="saveFormTags">TAGS (separated by comma)</label>
-            <div class="separator"></div>
-            <textarea id="saveFormTags" rows="4" cols="10"></textarea>
-
-            <div class="save-form-buttons" id="saveFormButtons">
-                <div id="saveFormButtonOk">OK</div>
-                <div id="saveFormButtonCancel">Cancel</div>
+
+        <div id="saveLayer" class="save-layer">
+            <div class="save-form languageJS ">
+                <img id="saveFormButtonClose" src="/css/img/clearButton.svg">
+                <label for="saveFormTitle">TITLE</label>
+                <div class="separator"></div>
+                <input type="text" maxlength="120" id="saveFormTitle" class="save-form-title">
+
+                <label for="saveFormDescription">DESCRIPTION</label>
+                <div class="separator"></div>
+                <textarea id="saveFormDescription" rows="4" cols="10"></textarea>
+
+                <label for="saveFormTags">TAGS (separated by comma)</label>
+                <div class="separator"></div>
+                <textarea id="saveFormTags" rows="4" cols="10"></textarea>
+
+                <div class="save-form-buttons" id="saveFormButtons">
+                    <div id="saveFormButtonOk">OK</div>
+                    <div id="saveFormButtonCancel">Cancel</div>
+                </div>
             </div>
             </div>
         </div>
         </div>
-    </div>
 
 
-    <div id="waitDiv">
-        <div id="logo-part">
-            <img src="css/img/v4.svg" id="waitLogo" />
-            <img src="css/img/spinner.svg" id="waitSpinner" />
+        <div id="waitDiv">
+            <div id="logo-part">
+                <img src="/css/img/v4.svg" id="waitLogo" />
+                <img src="/css/img/spinner.svg" id="waitSpinner" />
+            </div>
         </div>
         </div>
-    </div>
-
-    <!-- jQuery -->
-    <script src="https://code.jquery.com/jquery.js"></script>
-    <script src="js/jquery.qrcode.js"></script>
-    <script src="js/qrcode.js"></script>
-
-    <!-- TO DO - Why is this a split here ? It's already in the JS code (index.js) -->
-    <script>
-        Split(['#jsEditor', '#canvasZone']);
-    </script>
-
-    <!-- Main scripts -->
-    <script src="js/config_versions.js"></script>
-    <script src="js/pbt.js"></script>
-    <script src="js/libs/typescript.js"></script>
-    <script src="js/examples.js"></script>
-    <script src="js/main.js"></script>
-    <script src="js/menuPG.js"></script>
-    <script src="js/monacoCreator.js"></script>
-    <script src="js/settingsPG.js"></script>
-    <script src="js/utils.js"></script>
-    <script src="js/zipTool.js"></script>
-    <script src="js/index.js"></script>
-</body>
-
-</html>
+
+        <!-- Pep -->
+        <script src="https://code.jquery.com/pep/0.4.2/pep.min.js"></script>
+        <!--For canvas/code separator-->
+        <script src="/js/libs/split.js"></script>
+
+        <!-- DatGUI -->
+        <script src="https://cdnjs.cloudflare.com/ajax/libs/dat-gui/0.6.2/dat.gui.min.js"></script>
+        <!-- jszip -->
+        <script src="/js/libs/jszip.min.js"></script>
+        <script src="/js/libs/fileSaver.js"></script>
+
+        <!-- Dependencies -->
+        <script src="https://cdn.babylonjs.com/ammo.js"></script>
+        <script src="https://cdn.babylonjs.com/cannon.js"></script>
+        <script src="https://cdn.babylonjs.com/Oimo.js"></script>
+        <script src="https://cdn.babylonjs.com/gltf_validator.js"></script>
+        <script src="https://cdn.babylonjs.com/earcut.min.js"></script>
+        <!-- Babylon.js -->
+        <script src="https://cdn.babylonjs.com/babylon.js"></script>
+        <script src="https://cdn.babylonjs.com/gui/babylon.gui.min.js"></script>
+        <script src="https://cdn.babylonjs.com/inspector/babylon.inspector.bundle.js"></script>
+        <script src="https://cdn.babylonjs.com/materialsLibrary/babylonjs.materials.min.js"></script>
+        <script src="https://cdn.babylonjs.com/proceduralTexturesLibrary/babylonjs.proceduralTextures.min.js"></script>
+        <script src="https://cdn.babylonjs.com/postProcessesLibrary/babylonjs.postProcess.min.js"></script>
+        <script src="https://cdn.babylonjs.com/loaders/babylonjs.loaders.js"></script>
+        <script src="https://cdn.babylonjs.com/serializers/babylonjs.serializers.min.js"></script>
+
+        <!-- Monaco -->
+        <script src="/node_modules/monaco-editor/dev/vs/loader.js"></script>
+
+        <!-- Extensions -->
+        <script
+            src="https://rawcdn.githack.com/BabylonJS/Extensions/f43ab677b4bca0a6ab77132d3f785be300382760/ClonerSystem/src/babylonx.cloner.js"
+            async>
+        </script>
+        <script
+            src="https://rawcdn.githack.com/BabylonJS/Extensions/785013ec55b210d12263c91f3f0a2ae70cf0bc8a/CompoundShader/src/babylonx.CompoundShader.js"
+            async></script>
+
+        <!-- Scene Manager -->
+        <script
+            src="https://rawcdn.githack.com/MackeyK24/MackeyK24.github.io/14fda491c50cfca6d3e2f6cbc5e6afe22cc455d6/toolkit/babylon.manager.js">
+        </script>
+        <script
+            src="https://rawcdn.githack.com/MackeyK24/MackeyK24.github.io/14fda491c50cfca6d3e2f6cbc5e6afe22cc455d6/toolkit/babylon.navmesh.js">
+        </script>
+
+        <!-- jQuery -->
+        <script src="https://code.jquery.com/jquery.min.js"></script>
+        <script src="/js/jquery.qrcode.js"></script>
+        <script src="/js/qrcode.js"></script>
+
+        <!-- TO DO - Why is this a split here ? It's already in the JS code (index.js) -->
+        <script>
+            Split(['#jsEditor', '#canvasZone']);
+        </script>
+
+        <!-- Main scripts -->
+        <script src="/js/config_versions.js"></script>
+        <script src="/js/pbt.js"></script>
+        <script src="/js/examples.js"></script>
+        <script src="/js/main.js"></script>
+        <script src="/js/menuPG.js"></script>
+        <script src="/js/monacoCreator.js"></script>
+        <script src="/js/settingsPG.js"></script>
+        <script src="/js/utils.js"></script>
+        <script src="/js/zipTool.js"></script>
+        <script src="/js/index.js"></script>
+    </body>
+
+</html>

+ 70 - 70
Playground/indexWebGPU.html

@@ -8,19 +8,19 @@
     <link rel="shortcut icon" href="https://www.babylonjs.com/favicon.ico">
     <link rel="shortcut icon" href="https://www.babylonjs.com/favicon.ico">
 
 
     <link rel="stylesheet" href="https://use.typekit.net/cta4xsb.css" />
     <link rel="stylesheet" href="https://use.typekit.net/cta4xsb.css" />
-    <link rel="stylesheet" href="css/index.css" />
-    <link rel="stylesheet" href="css/index_mobile.css" />
+    <link rel="stylesheet" href="/css/index.css" />
+    <link rel="stylesheet" href="/css/index_mobile.css" />
 
 
     <!-- Pep -->
     <!-- Pep -->
-    <script src="js/libs/pep.min.js"></script>
+    <script src="/js/libs/pep.min.js"></script>
     <!-- For canvas/code separator -->
     <!-- For canvas/code separator -->
-    <script src="js/libs/split.js"></script>
+    <script src="/js/libs/split.js"></script>
 
 
     <!-- DatGUI -->
     <!-- DatGUI -->
-    <script src="js/libs/dat.gui.min.js"></script>
+    <script src="/js/libs/dat.gui.min.js"></script>
     <!-- jszip -->
     <!-- jszip -->
-    <script src="js/libs/jszip.min.js"></script>
-    <script src="js/libs/fileSaver.js"></script>
+    <script src="/js/libs/jszip.min.js"></script>
+    <script src="/js/libs/fileSaver.js"></script>
 
 
     <!-- Dependencies -->
     <!-- Dependencies -->
     <script src="https://preview.babylonjs.com/ammo.js"></script>
     <script src="https://preview.babylonjs.com/ammo.js"></script>
@@ -30,7 +30,7 @@
     <script src="https://preview.babylonjs.com/earcut.min.js"></script>
     <script src="https://preview.babylonjs.com/earcut.min.js"></script>
     <!-- Babylon.js -->
     <!-- Babylon.js -->
     <script src="https://preview.babylonjs.com/glslang/glslang.js"></script>
     <script src="https://preview.babylonjs.com/glslang/glslang.js"></script>
-    <script src="js/babylonWebGpu.max.js"></script>
+    <script src="/js/babylonWebGpu.max.js"></script>
     <!-- <script src="https://preview.babylonjs.com/gui/babylon.gui.min.js"></script> -->
     <!-- <script src="https://preview.babylonjs.com/gui/babylon.gui.min.js"></script> -->
     <script src="https://preview.babylonjs.com/inspector/babylon.inspector.bundle.js"></script>
     <script src="https://preview.babylonjs.com/inspector/babylon.inspector.bundle.js"></script>
     <script src="https://preview.babylonjs.com/nodeEditor/babylon.nodeEditor.js"></script>
     <script src="https://preview.babylonjs.com/nodeEditor/babylon.nodeEditor.js"></script>
@@ -41,7 +41,7 @@
     <script src="https://preview.babylonjs.com/serializers/babylonjs.serializers.min.js"></script>
     <script src="https://preview.babylonjs.com/serializers/babylonjs.serializers.min.js"></script>
 
 
     <!-- Monaco -->
     <!-- Monaco -->
-    <script src="node_modules/monaco-editor/dev/vs/loader.js"></script>
+    <script src="/node_modules/monaco-editor/dev/vs/loader.js"></script>
 
 
     <!-- Extensions -->
     <!-- Extensions -->
     <script src="https://rawgit.com/BabylonJS/Extensions/master/ClonerSystem/src/babylonx.cloner.js" async></script>
     <script src="https://rawgit.com/BabylonJS/Extensions/master/ClonerSystem/src/babylonx.cloner.js" async></script>
@@ -57,23 +57,23 @@
     <!-- Big screens -->
     <!-- Big screens -->
     <div class="navbar navBar1280 languageJS">
     <div class="navbar navBar1280 languageJS">
         <div class="categoryTitle">
         <div class="categoryTitle">
-            <img class="logo" src="css/img/logo_v4.svg">
+            <img class="logo" src="/css/img/logo_v4.svg">
             <div class="version">Playground <span class="versionSub" id="mainTitle1280"></span></div>
             <div class="version">Playground <span class="versionSub" id="mainTitle1280"></span></div>
         </div>
         </div>
 
 
         <div class="category languageJS" id="JStoTSbar">
         <div class="category languageJS" id="JStoTSbar">
             <div class="buttonJStoTS languageTS" id="toTSbutton1280" title="Switch to TypeScript">Typescript</div>
             <div class="buttonJStoTS languageTS" id="toTSbutton1280" title="Switch to TypeScript">Typescript</div>
             <div class="buttonJStoTS languageJS" id="toJSbutton1280" title="Switch to JavaScript">Javascript</div>
             <div class="buttonJStoTS languageJS" id="toJSbutton1280" title="Switch to JavaScript">Javascript</div>
-            <div class="buttonPG run removeOnDiff" id="runButton1280" title="Run&#10;(Alt+Enter)"><img src="css/img/playButton.svg"></div>
-            <div class="buttonPG removeOnDiff" id="saveButton1280" title="Save&#10;(Ctrl+S)"><img src="css/img/saveButton.svg"></div>
-            <div class="buttonPG removeOnPhone removeOnDiff" id="zipButton1280" title="Download ZIP&#10;(Ctrl+Shift+S)"><img src="css/img/downloadButton.svg"></div>
-            <div class="buttonPG removeOnDiff" id="newButton1280" title="Create new"><img src="css/img/newButton.svg"></div>
-            <div class="buttonPG removeOnPhone removeOnDiff" id="clearButton1280" title="Clear"><img src="css/img/clearButton.svg"></div>
-            <div class="buttonPG removeOnPhone removeOnDiff" id="diffButton1280" title="Compare"><img src="css/img/diffButton.svg"></div>
-            <div class="buttonPG removeOnPhone displayOnDiff" id="previousButton1280" title="Previous difference&#10;(Shift+Alt+F5)"><img src="css/img/previousButton.svg"></div>
-            <div class="buttonPG removeOnPhone displayOnDiff" id="nextButton1280" title="Next difference&#10;(Alt+F5)"><img src="css/img/nextButton.svg"></div>
-            <div class="buttonPG removeOnPhone displayOnDiff" id="exitButton1280" title="Exit&#10;(Esc)"><img src="css/img/exitButton.svg"></div>
-            <div class="buttonPG select removeOnDiff" id="menuButton1280" title="Options"><img src="css/img/optionsButton.svg">
+            <div class="buttonPG run removeOnDiff" id="runButton1280" title="Run&#10;(Alt+Enter)"><img src="/css/img/playButton.svg"></div>
+            <div class="buttonPG removeOnDiff" id="saveButton1280" title="Save&#10;(Ctrl+S)"><img src="/css/img/saveButton.svg"></div>
+            <div class="buttonPG removeOnPhone removeOnDiff" id="zipButton1280" title="Download ZIP&#10;(Ctrl+Shift+S)"><img src="/css/img/downloadButton.svg"></div>
+            <div class="buttonPG removeOnDiff" id="newButton1280" title="Create new"><img src="/css/img/newButton.svg"></div>
+            <div class="buttonPG removeOnPhone removeOnDiff" id="clearButton1280" title="Clear"><img src="/css/img/clearButton.svg"></div>
+            <div class="buttonPG removeOnPhone removeOnDiff" id="diffButton1280" title="Compare"><img src="/css/img/diffButton.svg"></div>
+            <div class="buttonPG removeOnPhone displayOnDiff" id="previousButton1280" title="Previous difference&#10;(Shift+Alt+F5)"><img src="/css/img/previousButton.svg"></div>
+            <div class="buttonPG removeOnPhone displayOnDiff" id="nextButton1280" title="Next difference&#10;(Alt+F5)"><img src="/css/img/nextButton.svg"></div>
+            <div class="buttonPG removeOnPhone displayOnDiff" id="exitButton1280" title="Exit&#10;(Esc)"><img src="/css/img/exitButton.svg"></div>
+            <div class="buttonPG select removeOnDiff" id="menuButton1280" title="Options"><img src="/css/img/optionsButton.svg">
                 <div class="toDisplay languageJS">
                 <div class="toDisplay languageJS">
                     <div class="option subSelect">Theme <i class="fa fa-chevron-right" aria-hidden="true"></i>
                     <div class="option subSelect">Theme <i class="fa fa-chevron-right" aria-hidden="true"></i>
                         <div class="toDisplaySub languageJS">
                         <div class="toDisplaySub languageJS">
@@ -120,14 +120,14 @@
                 <span id="currentVersion1280"></span>
                 <span id="currentVersion1280"></span>
                 <div class="toDisplay currentVersionDisplay" style="display: none"></div>
                 <div class="toDisplay currentVersionDisplay" style="display: none"></div>
             </div>
             </div>
-            <div class="buttonPG select removeOnDiff" title="Examples"><img class="examplesButton" src="css/img/examplesButton.svg"></div>
+            <div class="buttonPG select removeOnDiff" title="Examples"><img class="examplesButton" src="/css/img/examplesButton.svg"></div>
         </div>
         </div>
     </div>
     </div>
 
 
     <!-- Mid-size screens -->
     <!-- Mid-size screens -->
     <div class="navbar navBar1024 languageJS">
     <div class="navbar navBar1024 languageJS">
         <div class="categoryTitle">
         <div class="categoryTitle">
-            <img class="logo" src="css/img/logo_v4.svg">
+            <img class="logo" src="/css/img/logo_v4.svg">
             <div class="version"><span class="versionSub" id="mainTitle1024"></span></div>
             <div class="version"><span class="versionSub" id="mainTitle1024"></span></div>
         </div>
         </div>
 
 
@@ -135,17 +135,17 @@
             <div class="buttonJStoTS languageTS" id="toTSbutton1024" title="Switch to TypeScript">TS</div>
             <div class="buttonJStoTS languageTS" id="toTSbutton1024" title="Switch to TypeScript">TS</div>
             <div class="buttonJStoTS languageJS" id="toJSbutton1024" title="Switch to JavaScript">JS</div>
             <div class="buttonJStoTS languageJS" id="toJSbutton1024" title="Switch to JavaScript">JS</div>
             <div class="buttonSpaceKiller"></div>
             <div class="buttonSpaceKiller"></div>
-            <div class="buttonPG run removeOnDiff" id="runButton1024" title="Run&#10;(Alt+Enter)"><img src="css/img/playButton.svg"></div>
-            <div class="buttonPG removeOnDiff" id="saveButton1024" title="Save&#10;(Ctrl+S)"><img src="css/img/saveButton.svg"></div>
-            <div class="buttonPG removeOnPhone removeOnDiff" id="zipButton1024" title="Download ZIP&#10;(Ctrl+Shift+S)"><img src="css/img/downloadButton.svg"></div>
-            <div class="buttonPG removeOnDiff" id="newButton1024" title="Create new"><img src="css/img/newButton.svg"></div>
-            <div class="buttonPG removeOnPhone removeOnDiff" id="clearButton1024" title="Clear"><img src="css/img/clearButton.svg"></div>
-            <div class="buttonPG removeOnPhone removeOnDiff" id="diffButton1024" title="Compare"><img src="css/img/diffButton.svg"></div>
-            <div class="buttonPG removeOnPhone displayOnDiff" id="previousButton1024"><img src="css/img/previousButton.svg"></div>
-            <div class="buttonPG removeOnPhone displayOnDiff" id="nextButton1024"><img src="css/img/nextButton.svg"></div>
-            <div class="buttonPG removeOnPhone displayOnDiff" id="exitButton1024"><img src="css/img/exitButton.svg"></div>
+            <div class="buttonPG run removeOnDiff" id="runButton1024" title="Run&#10;(Alt+Enter)"><img src="/css/img/playButton.svg"></div>
+            <div class="buttonPG removeOnDiff" id="saveButton1024" title="Save&#10;(Ctrl+S)"><img src="/css/img/saveButton.svg"></div>
+            <div class="buttonPG removeOnPhone removeOnDiff" id="zipButton1024" title="Download ZIP&#10;(Ctrl+Shift+S)"><img src="/css/img/downloadButton.svg"></div>
+            <div class="buttonPG removeOnDiff" id="newButton1024" title="Create new"><img src="/css/img/newButton.svg"></div>
+            <div class="buttonPG removeOnPhone removeOnDiff" id="clearButton1024" title="Clear"><img src="/css/img/clearButton.svg"></div>
+            <div class="buttonPG removeOnPhone removeOnDiff" id="diffButton1024" title="Compare"><img src="/css/img/diffButton.svg"></div>
+            <div class="buttonPG removeOnPhone displayOnDiff" id="previousButton1024"><img src="/css/img/previousButton.svg"></div>
+            <div class="buttonPG removeOnPhone displayOnDiff" id="nextButton1024"><img src="/css/img/nextButton.svg"></div>
+            <div class="buttonPG removeOnPhone displayOnDiff" id="exitButton1024"><img src="/css/img/exitButton.svg"></div>
 
 
-            <div class="buttonPG select removeOnDiff" id="menuButton1024" title="Options"><img src="css/img/optionsButton.svg">
+            <div class="buttonPG select removeOnDiff" id="menuButton1024" title="Options"><img src="/css/img/optionsButton.svg">
                 <div class="toDisplay">
                 <div class="toDisplay">
                     <div class="option subSelect">Theme <i class="fa fa-chevron-right" aria-hidden="true"></i>
                     <div class="option subSelect">Theme <i class="fa fa-chevron-right" aria-hidden="true"></i>
 
 
@@ -194,39 +194,39 @@
                 <div class="toDisplay currentVersionDisplay" style="display: none">
                 <div class="toDisplay currentVersionDisplay" style="display: none">
                 </div>
                 </div>
             </div>
             </div>
-            <div class="buttonPG select"><img class="examplesButton" src="css/img/examplesButton.svg"></div>
+            <div class="buttonPG select"><img class="examplesButton" src="/css/img/examplesButton.svg"></div>
         </div>
         </div>
     </div>
     </div>
 
 
     <!-- Mobile -->
     <!-- Mobile -->
     <div class="navbar navBarMobile languageJS">
     <div class="navbar navBarMobile languageJS">
         <div class="category languageJS" id="JStoTSbar">
         <div class="category languageJS" id="JStoTSbar">
-            <div class="buttonPG select" id="menuButtonMobile"><img src="css/img/hamburgerButton.svg">
+            <div class="buttonPG select" id="menuButtonMobile"><img src="/css/img/hamburgerButton.svg">
                 <div class="toDisplay">
                 <div class="toDisplay">
                     <div class="option noSubSelect languageTS" id="toTSbuttonMobile">TypeScript</div>
                     <div class="option noSubSelect languageTS" id="toTSbuttonMobile">TypeScript</div>
                     <div class="option noSubSelect languageJS" id="toJSbuttonMobile">JavaScript</div>
                     <div class="option noSubSelect languageJS" id="toJSbuttonMobile">JavaScript</div>
-                    <div class="option noSubSelect run" id="runButtonMobile"><img src="css/img/playButton.svg">Run</div>
-                    <div class="option noSubSelect" id="saveButtonMobile"><img src="css/img/saveButton.svg">Save</div>
-                    <div class="option noSubSelect" id="zipButtonMobile"><img src="css/img/downloadButton.svg">Download
+                    <div class="option noSubSelect run" id="runButtonMobile"><img src="/css/img/playButton.svg">Run</div>
+                    <div class="option noSubSelect" id="saveButtonMobile"><img src="/css/img/saveButton.svg">Save</div>
+                    <div class="option noSubSelect" id="zipButtonMobile"><img src="/css/img/downloadButton.svg">Download
                     </div>
                     </div>
-                    <div class="option noSubSelect" id="newButtonMobile"><img src="css/img/newButton.svg">New</div>
-                    <div class="option noSubSelect" id="clearButtonMobile"><img src="css/img/clearButton.svg">Clear
+                    <div class="option noSubSelect" id="newButtonMobile"><img src="/css/img/newButton.svg">New</div>
+                    <div class="option noSubSelect" id="clearButtonMobile"><img src="/css/img/clearButton.svg">Clear
                     </div>
                     </div>
                     <div class="option noSubSelect" id="debugButtonMobile"><img
                     <div class="option noSubSelect" id="debugButtonMobile"><img
-                            src="css/img/inspectorButton.svg">Inspector</div>
+                            src="/css/img/inspectorButton.svg">Inspector</div>
                     <div class="option subSelect">
                     <div class="option subSelect">
-                        <img src="css/img/optionsButton.svg">
+                        <img src="/css/img/optionsButton.svg">
                         <div id="currentVersionMobile"></div>
                         <div id="currentVersionMobile"></div>
                         <div class="toDisplaySub currentVersionDisplay">
                         <div class="toDisplaySub currentVersionDisplay">
                         </div>
                         </div>
                     </div>
                     </div>
-                    <div class="option subSelect"><img src="css/img/optionsButton.svg">Theme
+                    <div class="option subSelect"><img src="/css/img/optionsButton.svg">Theme
                         <div class="toDisplaySub">
                         <div class="toDisplaySub">
                             <div class="option selected" id="darkThemeMobile">Dark</div>
                             <div class="option selected" id="darkThemeMobile">Dark</div>
                             <div class="option" id="lightThemeMobile">Light</div>
                             <div class="option" id="lightThemeMobile">Light</div>
                         </div>
                         </div>
                     </div>
                     </div>
-                    <div class="option subSelect"><img src="css/img/optionsButton.svg">Font size
+                    <div class="option subSelect"><img src="/css/img/optionsButton.svg">Font size
                         <div class="toDisplaySub displayFontSize">
                         <div class="toDisplaySub displayFontSize">
                             <div class="option">8</div>
                             <div class="option">8</div>
                             <div class="option">10</div>
                             <div class="option">10</div>
@@ -249,21 +249,21 @@
                     <div style="display: none;" class="option nosubselect" id="editorFullscreenButtonMobile"
                     <div style="display: none;" class="option nosubselect" id="editorFullscreenButtonMobile"
                         style="display: none">Editor
                         style="display: none">Editor
                         Fullscreen</div>
                         Fullscreen</div>
-                    <div class="option nosubselect" id="formatButtonMobile"><img src="css/img/optionsButton.svg">Format
+                    <div class="option nosubselect" id="formatButtonMobile"><img src="/css/img/optionsButton.svg">Format
                         code</div>
                         code</div>
                     <div style="display: none;" class="option nosubselect" id="minimapToggleMobile">Minimap
                     <div style="display: none;" class="option nosubselect" id="minimapToggleMobile">Minimap
                         <i class="fa fa-square" aria-hidden="true"></i>
                         <i class="fa fa-square" aria-hidden="true"></i>
                     </div>
                     </div>
-                    <!-- <div class="option subSelect" id="qrCodeHoverMobile"><img src="css/img/optionsButton.svg">QR Code Link
+                    <!-- <div class="option subSelect" id="qrCodeHoverMobile"><img src="/css/img/optionsButton.svg">QR Code Link
                         <div class="toDisplaySub qrCodeImage">
                         <div class="toDisplaySub qrCodeImage">
                             <div class="option" id="qrCodeImageMobile">[QR Code Image]</div>
                             <div class="option" id="qrCodeImageMobile">[QR Code Image]</div>
                         </div>
                         </div>
                     </div> -->
                     </div> -->
                     <div class="option nosubselect" id="metadataButtonMobile"><img
                     <div class="option nosubselect" id="metadataButtonMobile"><img
-                            src="css/img/metadataButton.svg">Metadata</div>
+                            src="/css/img/metadataButton.svg">Metadata</div>
                     <div class="option nosubselect"><img class="examplesButton"
                     <div class="option nosubselect"><img class="examplesButton"
-                            src="css/img/examplesButton.svg">Examples</div>
-                    <div class="option subSelect"><img src="css/img/examplesButton.svg">Links / Tools
+                            src="/css/img/examplesButton.svg">Examples</div>
+                    <div class="option subSelect"><img src="/css/img/examplesButton.svg">Links / Tools
                         <div class="toDisplaySub displayFooterLinks">
                         <div class="toDisplaySub displayFooterLinks">
                             <div class="option link">
                             <div class="option link">
                                 <a target='_new' href="https://www.netlify.com/">Deployed by Netlify</a>
                                 <a target='_new' href="https://www.netlify.com/">Deployed by Netlify</a>
@@ -285,14 +285,14 @@
                 </div>
                 </div>
             </div>
             </div>
             <div class="categoryTitle">
             <div class="categoryTitle">
-                <img class="logo" src="css/img/logo_v4.svg">
+                <img class="logo" src="/css/img/logo_v4.svg">
                 <div class="version"><span class="versionSub" id="mainTitleMobile"></span></div>
                 <div class="version"><span class="versionSub" id="mainTitleMobile"></span></div>
             </div>
             </div>
         </div>
         </div>
 
 
         <div id="switchWrapper" class="languageJS">
         <div id="switchWrapper" class="languageJS">
-            <img id="switchWrapperCode" src="css/img/codeButton.svg">
-            <img id="switchWrapperCanvas" src="css/img/canvas3Dbutton.svg">
+            <img id="switchWrapperCode" src="/css/img/codeButton.svg">
+            <img id="switchWrapperCanvas" src="/css/img/canvas3Dbutton.svg">
         </div>
         </div>
     </div>
     </div>
 
 
@@ -306,7 +306,7 @@
     </div>
     </div>
     <div id="exampleList" class="javascript">
     <div id="exampleList" class="javascript">
         <div id="exampleBanner" class="languageJS">
         <div id="exampleBanner" class="languageJS">
-            <h1>Examples<img id="examplesButtonClose" src="css/img/clearButton.svg"></h1>
+            <h1>Examples<img id="examplesButtonClose" src="/css/img/clearButton.svg"></h1>
         </div>
         </div>
         <div class="horizontalSeparator"></div>
         <div class="horizontalSeparator"></div>
         <input id="filterBar" type="text" placeholder="Filter examples...">
         <input id="filterBar" type="text" placeholder="Filter examples...">
@@ -342,7 +342,7 @@
 
 
     <div id="saveLayer" class="save-layer">
     <div id="saveLayer" class="save-layer">
         <div class="save-form languageJS ">
         <div class="save-form languageJS ">
-            <img id="saveFormButtonClose" src="css/img/clearButton.svg">
+            <img id="saveFormButtonClose" src="/css/img/clearButton.svg">
             <label for="saveFormTitle">TITLE</label>
             <label for="saveFormTitle">TITLE</label>
             <div class="separator"></div>
             <div class="separator"></div>
             <input type="text" maxlength="120" id="saveFormTitle" class="save-form-title">
             <input type="text" maxlength="120" id="saveFormTitle" class="save-form-title">
@@ -364,29 +364,29 @@
 
 
     <div id="waitDiv">
     <div id="waitDiv">
         <div id="logo-part">
         <div id="logo-part">
-            <img src="css/img/v4.svg" id="waitLogo" />
-            <img src="css/img/spinner.svg" id="waitSpinner" />
+            <img src="/css/img/v4.svg" id="waitLogo" />
+            <img src="/css/img/spinner.svg" id="waitSpinner" />
         </div>
         </div>
     </div>
     </div>
 
 
     <!-- jQuery -->
     <!-- jQuery -->
-    <script src="js/libs/jquery.min.js"></script>
-    <script src="js/jquery.qrcode.js"></script>
-    <script src="js/qrcode.js"></script>
+    <script src="/js/libs/jquery.min.js"></script>
+    <script src="/js/jquery.qrcode.js"></script>
+    <script src="/js/qrcode.js"></script>
 
 
     <!-- Main scripts -->
     <!-- Main scripts -->
-    <script src="js/config_versions.js"></script>
-    <script src="js/pbt.js"></script>
-    <script src="js/libs/typescript.js"></script>
-    <script src="js/examples.js"></script>
-    <!-- <script src="js/main.js"></script> -->
-    <script src="js/mainWebGPU.js"></script>
-    <script src="js/menuPG.js"></script>
-    <script src="js/monacoCreator.js"></script>
-    <script src="js/settingsPG.js"></script>
-    <script src="js/utils.js"></script>
-    <script src="js/zipTool.js"></script>
-    <script src="js/index.js"></script>
+    <script src="/js/config_versions.js"></script>
+    <script src="/js/pbt.js"></script>
+    <script src="/js/libs/typescript.js"></script>
+    <script src="/js/examples.js"></script>
+    <!-- <script src="/js/main.js"></script> -->
+    <script src="/js/mainWebGPU.js"></script>
+    <script src="/js/menuPG.js"></script>
+    <script src="/js/monacoCreator.js"></script>
+    <script src="/js/settingsPG.js"></script>
+    <script src="/js/utils.js"></script>
+    <script src="/js/zipTool.js"></script>
+    <script src="/js/index.js"></script>
 </body>
 </body>
 
 
 </html>
 </html>

+ 16 - 14
Playground/js/frame.js

@@ -1,9 +1,8 @@
-
-var engine = null;
+var engine = null;
 var canvas = null;
 var canvas = null;
 var scene = null;
 var scene = null;
 
 
-fastEval = function(code) {
+fastEval = function (code) {
     var head = document.getElementsByTagName('head')[0];
     var head = document.getElementsByTagName('head')[0];
     var script = document.createElement('script');
     var script = document.createElement('script');
     script.setAttribute('type', 'text/javascript');
     script.setAttribute('type', 'text/javascript');
@@ -16,11 +15,11 @@ fastEval = function(code) {
     head.appendChild(script);
     head.appendChild(script);
 }
 }
 
 
-handleException = function(e) {
+handleException = function (e) {
     console.error(e);
     console.error(e);
 }
 }
 
 
-run = function() {
+run = function () {
     var snippetUrl = "https://snippet.babylonjs.com";
     var snippetUrl = "https://snippet.babylonjs.com";
     var fpsLabel = document.getElementById("fpsLabel");
     var fpsLabel = document.getElementById("fpsLabel");
     var refreshAnchor = document.getElementById("refresh");
     var refreshAnchor = document.getElementById("refresh");
@@ -40,7 +39,7 @@ run = function() {
 
 
     BABYLON.Engine.ShadersRepository = "/src/Shaders/";
     BABYLON.Engine.ShadersRepository = "/src/Shaders/";
 
 
-    compileAndRun = function(code) {
+    compileAndRun = function (code) {
         try {
         try {
 
 
             if (!BABYLON.Engine.isSupported()) {
             if (!BABYLON.Engine.isSupported()) {
@@ -56,7 +55,10 @@ run = function() {
             canvas = document.getElementById("renderCanvas");
             canvas = document.getElementById("renderCanvas");
 
 
             createDefaultEngine = function () {
             createDefaultEngine = function () {
-                return new BABYLON.Engine(canvas, true, { preserveDrawingBuffer: true, stencil: true });
+                return new BABYLON.Engine(canvas, true, {
+                    preserveDrawingBuffer: true,
+                    stencil: true
+                });
             }
             }
 
 
             if (code.indexOf("createEngine") !== -1) {
             if (code.indexOf("createEngine") !== -1) {
@@ -118,20 +120,20 @@ run = function() {
                 }
                 }
 
 
                 fpsLabel.innerHTML = engine.getFps().toFixed() + " fps";
                 fpsLabel.innerHTML = engine.getFps().toFixed() + " fps";
-            }.bind(this));         
+            }.bind(this));
 
 
         } catch (e) {
         } catch (e) {
             // showError(e.message);
             // showError(e.message);
         }
         }
     };
     };
-    window.addEventListener("resize", function() {
+    window.addEventListener("resize", function () {
         if (engine) {
         if (engine) {
             engine.resize();
             engine.resize();
         }
         }
     });
     });
 
 
     // UI
     // UI
-    var cleanHash = function() {
+    var cleanHash = function () {
         var splits = decodeURIComponent(location.hash.substr(1)).split("#");
         var splits = decodeURIComponent(location.hash.substr(1)).split("#");
 
 
         if (splits.length > 2) {
         if (splits.length > 2) {
@@ -141,13 +143,13 @@ run = function() {
         location.hash = splits.join("#");
         location.hash = splits.join("#");
     };
     };
 
 
-    var checkHash = function() {
+    var checkHash = function () {
         if (location.hash) {
         if (location.hash) {
             cleanHash();
             cleanHash();
 
 
             try {
             try {
                 var xmlHttp = new XMLHttpRequest();
                 var xmlHttp = new XMLHttpRequest();
-                xmlHttp.onreadystatechange = function() {
+                xmlHttp.onreadystatechange = function () {
                     if (xmlHttp.readyState === 4) {
                     if (xmlHttp.readyState === 4) {
                         if (xmlHttp.status === 200) {
                         if (xmlHttp.status === 200) {
                             var snippetCode = JSON.parse(JSON.parse(xmlHttp.responseText).jsonPayload).code;
                             var snippetCode = JSON.parse(JSON.parse(xmlHttp.responseText).jsonPayload).code;
@@ -156,7 +158,7 @@ run = function() {
                             var refresh = document.getElementById("refresh");
                             var refresh = document.getElementById("refresh");
 
 
                             if (refresh) {
                             if (refresh) {
-                                refresh.addEventListener("click", function() {
+                                refresh.addEventListener("click", function () {
                                     compileAndRun(snippetCode);
                                     compileAndRun(snippetCode);
                                 });
                                 });
                             }
                             }
@@ -186,4 +188,4 @@ run = function() {
 
 
 }
 }
 
 
-run();
+run();

+ 20 - 11
Playground/js/main.js

@@ -728,10 +728,10 @@ class Main {
                                 window.location.href = location.protocol + "//" + location.host + location.pathname + "#" + newPG;
                                 window.location.href = location.protocol + "//" + location.host + location.pathname + "#" + newPG;
                             } else if (query.indexOf("=") === -1) {
                             } else if (query.indexOf("=") === -1) {
                                 this.loadScript("scripts/" + query + ".js", query);
                                 this.loadScript("scripts/" + query + ".js", query);
-                            } else if (query.indexOf('pg=') === -1) {
+                            } else if (query.indexOf('pg=') === -1 && !location.pathname.match(/\/pg\//)) {
                                 this.loadScript(this.parent.settingsPG.DefaultScene, "Basic scene");
                                 this.loadScript(this.parent.settingsPG.DefaultScene, "Basic scene");
                             }
                             }
-                        } else {
+                        } else if (!location.pathname.match(/\/pg\//)) {
                             this.loadScript(this.parent.settingsPG.DefaultScene, "Basic scene");
                             this.loadScript(this.parent.settingsPG.DefaultScene, "Basic scene");
                         }
                         }
                     }
                     }
@@ -1032,22 +1032,31 @@ class Main {
         location.hash = splits.join("#");
         location.hash = splits.join("#");
     };
     };
     checkHash() {
     checkHash() {
+        let pgHash = "";
         if (location.search) {
         if (location.search) {
             var query = this.parseQuery(location.search);
             var query = this.parseQuery(location.search);
-            this.previousHash = "#" + query.pg + "#" + (query.revision || "0")
             if (query.pg) {
             if (query.pg) {
-                this.loadPlayground(query.pg + "#" + (query.revision || "0"));
+                pgHash = "#" + query.pg + "#" + (query.revision || "0")
             }
             }
 
 
-        }
-        if (location.hash) {
+        } else if (location.hash) {
             if (this.previousHash !== location.hash) {
             if (this.previousHash !== location.hash) {
-                this.cleanHash();
-
-                this.previousHash = location.hash;
-
-                this.loadPlayground(location.hash.substr(1))
+                pgHash = location.hash;
             }
             }
+        } else if (location.pathname) {
+            const pgMatch = location.pathname.match(/\/pg\/(.*)/);
+            const withRevision = location.pathname.match(/\/pg\/(.*)\/revision\/(\d*)/);
+            if (pgMatch || withRevision) {
+                if (withRevision) {
+                    pgHash = "#" + withRevision[1] + "#" + withRevision[2];
+                } else {
+                    pgHash = "#" + pgMatch[1] + "#0";
+                }
+            }
+        }
+        if (pgHash) {
+            this.previousHash = pgHash;
+            this.loadPlayground(pgHash.substr(1))
         }
         }
         window.addEventListener("hashchange", this.checkHash.bind(this));
         window.addEventListener("hashchange", this.checkHash.bind(this));
     };
     };

+ 2 - 2
Playground/js/monacoCreator.js

@@ -71,7 +71,7 @@ class MonacoCreator {
 
 
         this.setupDefinitionWorker(libContent);
         this.setupDefinitionWorker(libContent);
 
 
-        require.config({ paths: { 'vs': 'node_modules/monaco-editor/dev/vs' } });
+        require.config({ paths: { 'vs': '/node_modules/monaco-editor/dev/vs' } });
 
 
         require(['vs/editor/editor.main'], () => {
         require(['vs/editor/editor.main'], () => {
             this.setupMonacoCompilationPipeline(libContent);
             this.setupMonacoCompilationPipeline(libContent);
@@ -89,7 +89,7 @@ class MonacoCreator {
 
 
         // This worker can be initialized differently.
         // This worker can be initialized differently.
         // Its main job is to analyze the code and return an array of deprecated functions
         // Its main job is to analyze the code and return an array of deprecated functions
-        this.definitionWorker = new Worker('js/definitionWorker.js');
+        this.definitionWorker = new Worker('/js/definitionWorker.js');
         this.definitionWorker.addEventListener('message', ({ data }) => {
         this.definitionWorker.addEventListener('message', ({ data }) => {
             this.deprecatedCandidates = data.result;
             this.deprecatedCandidates = data.result;
             this.analyzeCode();
             this.analyzeCode();

+ 0 - 3
Playground/package.json

@@ -13,8 +13,5 @@
   },
   },
   "scripts": {
   "scripts": {
     "test": "browser-sync start --server --files **/* --no-inject-changes --startPath index.html"
     "test": "browser-sync start --server --files **/* --no-inject-changes --startPath index.html"
-  },
-  "dependencies": {
-    "npm": "^6.13.0"
   }
   }
 }
 }

+ 30 - 4
Tools/Gulp/tasks/gulpTasks-localRun.js

@@ -19,14 +19,41 @@ var skipExtensions = [".js", ".glb", ".gltf", ".bin", ".html", ".gif", ".jpg", "
 /**
 /**
  * Embedded webserver for test convenience.
  * Embedded webserver for test convenience.
  */
  */
-gulp.task("webserver", function() {
+gulp.task("webserver", function () {
     var rootRelativePath = "../../";
     var rootRelativePath = "../../";
     var options = {
     var options = {
         root: rootRelativePath,
         root: rootRelativePath,
         port: 1338,
         port: 1338,
         livereload: false,
         livereload: false,
-        middleware: function(connect, opt) {
+        middleware: function (connect, opt) {
             return [function (req, res, next) {
             return [function (req, res, next) {
+                const baseUrl =  (req.url.indexOf('dist') !== -1 || req.url.indexOf('Tools') !== -1  || req.url.indexOf('temp/') !== -1);
+                if (!baseUrl && req.headers['referer'] && req.headers['referer'].indexOf('/Playground/') && req.url.indexOf('/Playground/') === -1) {
+                    req.url = "/Playground/" + req.url;
+                    res.writeHead(301, {
+                        'Location': req.url
+                    });
+                    return res.end();
+                }
+                const pgMath = req.url.match(/\/Playground\/pg\/(.*)/);
+                if (pgMath) {
+                    const isAFile = req.url.indexOf('.') !== -1;
+                    const withRevision = req.url.match(/\/pg\/(.*)\/revision\/(\d*)/);
+                    if (withRevision) {
+                        revision = withRevision[2];
+                        if (isAFile) {
+                            req.url = req.url.replace(/\/pg\/(.*)\/revision\//gi, "/")
+                        } else {
+                            req.url = req.url.replace(/\/pg\/(.*)\/revision\/(\d*)/gi, "/?pg=$1&revision=$2")
+                        }
+                    } else {
+                        if (isAFile) {
+                            req.url = req.url.replace(/\/pg\//gi, "/")
+                        } else {
+                            req.url = req.url.replace(/\/pg\/(.*)/gi, "/?pg=$1")
+                        }
+                    }
+                }
                 var extension = path.extname(decodeURIComponent(req.originalUrl));
                 var extension = path.extname(decodeURIComponent(req.originalUrl));
                 if (req.originalUrl.indexOf(config.build.localDevES6FolderName) > -1 && skipExtensions.indexOf(extension) === -1) {
                 if (req.originalUrl.indexOf(config.build.localDevES6FolderName) > -1 && skipExtensions.indexOf(extension) === -1) {
                     // Append .js for es6 modules.
                     // Append .js for es6 modules.
@@ -35,8 +62,7 @@ gulp.task("webserver", function() {
                     }
                     }
                 }
                 }
                 next();
                 next();
-              }
-            ]
+            }]
         }
         }
     };
     };
 
 

+ 1 - 0
dist/preview release/what's new.md

@@ -320,6 +320,7 @@
 - Fixed bug in the `Image` GUI class where some properties were lost after a rotation by n x 90° ([Popov72](https://github.com/Popov72))
 - Fixed bug in the `Image` GUI class where some properties were lost after a rotation by n x 90° ([Popov72](https://github.com/Popov72))
 - Fixed bug in the `Image` GUI class when rotating a SVG picture ([Popov72](https://github.com/Popov72))
 - Fixed bug in the `Image` GUI class when rotating a SVG picture ([Popov72](https://github.com/Popov72))
 - Fix for bug where NME would crash if frames did not have comments ([Kyle Belfort](https://github.com/belfortk))
 - Fix for bug where NME would crash if frames did not have comments ([Kyle Belfort](https://github.com/belfortk))
+- Fix wrong import of _TimeToken ([Sebavan](https://github.com/sebavan/)
 
 
 ## Breaking changes
 ## Breaking changes
 
 

+ 0 - 1
src/Engines/Extensions/engine.rawTexture.ts

@@ -1,5 +1,4 @@
 import { Nullable } from "../../types";
 import { Nullable } from "../../types";
-import { _TimeToken } from "../../Instrumentation/timeToken";
 import { InternalTexture, InternalTextureSource } from '../../Materials/Textures/internalTexture';
 import { InternalTexture, InternalTextureSource } from '../../Materials/Textures/internalTexture';
 import { Logger } from '../../Misc/logger';
 import { Logger } from '../../Misc/logger';
 import { Tools } from '../../Misc/tools';
 import { Tools } from '../../Misc/tools';

+ 0 - 1
src/Engines/Extensions/engine.transformFeedback.ts

@@ -1,6 +1,5 @@
 import { Nullable } from "../../types";
 import { Nullable } from "../../types";
 import { Engine } from "../../Engines/engine";
 import { Engine } from "../../Engines/engine";
-import { _TimeToken } from "../../Instrumentation/timeToken";
 import { DataBuffer } from '../../Meshes/dataBuffer';
 import { DataBuffer } from '../../Meshes/dataBuffer';
 
 
 /** @hidden */
 /** @hidden */

+ 0 - 1
src/Engines/Extensions/engine.webVR.ts

@@ -1,6 +1,5 @@
 import { Nullable } from "../../types";
 import { Nullable } from "../../types";
 import { Engine, IDisplayChangedEventArgs } from "../../Engines/engine";
 import { Engine, IDisplayChangedEventArgs } from "../../Engines/engine";
-import { _TimeToken } from "../../Instrumentation/timeToken";
 import { Size } from '../../Maths/math.size';
 import { Size } from '../../Maths/math.size';
 import { Observable } from '../../Misc/observable';
 import { Observable } from '../../Misc/observable';
 import { Tools } from '../../Misc/tools';
 import { Tools } from '../../Misc/tools';

+ 0 - 1
src/Engines/engine.ts

@@ -2,7 +2,6 @@ import { Observable } from "../Misc/observable";
 import { Nullable, IndicesArray, DataArray } from "../types";
 import { Nullable, IndicesArray, DataArray } from "../types";
 import { Scene } from "../scene";
 import { Scene } from "../scene";
 import { InternalTexture } from "../Materials/Textures/internalTexture";
 import { InternalTexture } from "../Materials/Textures/internalTexture";
-import { _TimeToken } from "../Instrumentation/timeToken";
 import { IAudioEngine } from "../Audio/audioEngine";
 import { IAudioEngine } from "../Audio/audioEngine";
 import { IOfflineProvider } from "../Offline/IOfflineProvider";
 import { IOfflineProvider } from "../Offline/IOfflineProvider";
 import { ILoadingScreen } from "../Loading/loadingScreen";
 import { ILoadingScreen } from "../Loading/loadingScreen";

+ 0 - 1
src/Engines/nullEngine.ts

@@ -6,7 +6,6 @@ import { RenderTargetCreationOptions } from "../Materials/Textures/renderTargetC
 import { VertexBuffer } from "../Meshes/buffer";
 import { VertexBuffer } from "../Meshes/buffer";
 import { InternalTexture, InternalTextureSource } from "../Materials/Textures/internalTexture";
 import { InternalTexture, InternalTextureSource } from "../Materials/Textures/internalTexture";
 import { Effect } from "../Materials/effect";
 import { Effect } from "../Materials/effect";
-import { _TimeToken } from "../Instrumentation/timeToken";
 import { Constants } from "./constants";
 import { Constants } from "./constants";
 import { IPipelineContext } from './IPipelineContext';
 import { IPipelineContext } from './IPipelineContext';
 import { DataBuffer } from '../Meshes/dataBuffer';
 import { DataBuffer } from '../Meshes/dataBuffer';

+ 0 - 1
src/Events/pointerEvents.ts

@@ -1,7 +1,6 @@
 import { Nullable } from "../types";
 import { Nullable } from "../types";
 import { Vector2 } from "../Maths/math.vector";
 import { Vector2 } from "../Maths/math.vector";
 import { PickingInfo } from "../Collisions/pickingInfo";
 import { PickingInfo } from "../Collisions/pickingInfo";
-import { _TimeToken } from "../Instrumentation/timeToken";
 
 
 declare type Ray = import("../Culling/ray").Ray;
 declare type Ray = import("../Culling/ray").Ray;
 
 

+ 0 - 1
src/Gamepads/Controllers/daydreamController.ts

@@ -1,7 +1,6 @@
 import { Logger } from "../../Misc/logger";
 import { Logger } from "../../Misc/logger";
 import { Scene } from "../../scene";
 import { Scene } from "../../scene";
 import { AbstractMesh } from "../../Meshes/abstractMesh";
 import { AbstractMesh } from "../../Meshes/abstractMesh";
-import { _TimeToken } from "../../Instrumentation/timeToken";
 import { SceneLoader } from "../../Loading/sceneLoader";
 import { SceneLoader } from "../../Loading/sceneLoader";
 
 
 import { GamepadButtonChanges } from "../../Gamepads/gamepad";
 import { GamepadButtonChanges } from "../../Gamepads/gamepad";

+ 0 - 1
src/Gamepads/Controllers/gearVRController.ts

@@ -2,7 +2,6 @@ import { Scene } from "../../scene";
 import { Vector3 } from "../../Maths/math.vector";
 import { Vector3 } from "../../Maths/math.vector";
 import { AbstractMesh } from "../../Meshes/abstractMesh";
 import { AbstractMesh } from "../../Meshes/abstractMesh";
 import { Mesh } from "../../Meshes/mesh";
 import { Mesh } from "../../Meshes/mesh";
-import { _TimeToken } from "../../Instrumentation/timeToken";
 import { SceneLoader } from "../../Loading/sceneLoader";
 import { SceneLoader } from "../../Loading/sceneLoader";
 import { GamepadButtonChanges } from "../../Gamepads/gamepad";
 import { GamepadButtonChanges } from "../../Gamepads/gamepad";
 import { WebVRController } from "./webVRController";
 import { WebVRController } from "./webVRController";

+ 0 - 1
src/Gamepads/Controllers/genericController.ts

@@ -1,6 +1,5 @@
 import { Scene } from "../../scene";
 import { Scene } from "../../scene";
 import { AbstractMesh } from "../../Meshes/abstractMesh";
 import { AbstractMesh } from "../../Meshes/abstractMesh";
-import { _TimeToken } from "../../Instrumentation/timeToken";
 import { SceneLoader } from "../../Loading/sceneLoader";
 import { SceneLoader } from "../../Loading/sceneLoader";
 
 
 import { WebVRController } from "./webVRController";
 import { WebVRController } from "./webVRController";

+ 0 - 1
src/Gamepads/Controllers/oculusTouchController.ts

@@ -1,7 +1,6 @@
 import { Observable } from "../../Misc/observable";
 import { Observable } from "../../Misc/observable";
 import { Scene } from "../../scene";
 import { Scene } from "../../scene";
 import { AbstractMesh } from "../../Meshes/abstractMesh";
 import { AbstractMesh } from "../../Meshes/abstractMesh";
-import { _TimeToken } from "../../Instrumentation/timeToken";
 import { SceneLoader } from "../../Loading/sceneLoader";
 import { SceneLoader } from "../../Loading/sceneLoader";
 import { WebVRController } from "./webVRController";
 import { WebVRController } from "./webVRController";
 import { PoseEnabledControllerType, ExtendedGamepadButton, PoseEnabledControllerHelper } from "./poseEnabledController";
 import { PoseEnabledControllerType, ExtendedGamepadButton, PoseEnabledControllerHelper } from "./poseEnabledController";

+ 0 - 1
src/Gamepads/Controllers/poseEnabledController.ts

@@ -5,7 +5,6 @@ import { Node } from "../../node";
 import { TransformNode } from "../../Meshes/transformNode";
 import { TransformNode } from "../../Meshes/transformNode";
 import { AbstractMesh } from "../../Meshes/abstractMesh";
 import { AbstractMesh } from "../../Meshes/abstractMesh";
 import { Ray } from "../../Culling/ray";
 import { Ray } from "../../Culling/ray";
-import { _TimeToken } from "../../Instrumentation/timeToken";
 import { EngineStore } from "../../Engines/engineStore";
 import { EngineStore } from "../../Engines/engineStore";
 
 
 import { Gamepad } from "../../Gamepads/gamepad";
 import { Gamepad } from "../../Gamepads/gamepad";

+ 0 - 1
src/Gamepads/Controllers/viveController.ts

@@ -1,6 +1,5 @@
 import { Scene } from "../../scene";
 import { Scene } from "../../scene";
 import { AbstractMesh } from "../../Meshes/abstractMesh";
 import { AbstractMesh } from "../../Meshes/abstractMesh";
-import { _TimeToken } from "../../Instrumentation/timeToken";
 import { SceneLoader } from "../../Loading/sceneLoader";
 import { SceneLoader } from "../../Loading/sceneLoader";
 import { WebVRController } from "./webVRController";
 import { WebVRController } from "./webVRController";
 import { PoseEnabledControllerType, ExtendedGamepadButton, PoseEnabledControllerHelper } from "./poseEnabledController";
 import { PoseEnabledControllerType, ExtendedGamepadButton, PoseEnabledControllerHelper } from "./poseEnabledController";

+ 0 - 1
src/Gamepads/Controllers/webVRController.ts

@@ -1,7 +1,6 @@
 import { Observable } from "../../Misc/observable";
 import { Observable } from "../../Misc/observable";
 import { Scene } from "../../scene";
 import { Scene } from "../../scene";
 import { AbstractMesh } from "../../Meshes/abstractMesh";
 import { AbstractMesh } from "../../Meshes/abstractMesh";
-import { _TimeToken } from "../../Instrumentation/timeToken";
 import { PoseEnabledController, ExtendedGamepadButton, MutableGamepadButton } from "./poseEnabledController";
 import { PoseEnabledController, ExtendedGamepadButton, MutableGamepadButton } from "./poseEnabledController";
 import { StickValues, GamepadButtonChanges } from "../../Gamepads/gamepad";
 import { StickValues, GamepadButtonChanges } from "../../Gamepads/gamepad";
 import { Nullable } from '../../types';
 import { Nullable } from '../../types';

+ 0 - 1
src/Gamepads/Controllers/windowsMotionController.ts

@@ -8,7 +8,6 @@ import { Mesh } from "../../Meshes/mesh";
 import { AbstractMesh } from "../../Meshes/abstractMesh";
 import { AbstractMesh } from "../../Meshes/abstractMesh";
 import { TransformNode } from "../../Meshes/transformNode";
 import { TransformNode } from "../../Meshes/transformNode";
 import { Ray } from "../../Culling/ray";
 import { Ray } from "../../Culling/ray";
-import { _TimeToken } from "../../Instrumentation/timeToken";
 import { SceneLoader } from "../../Loading/sceneLoader";
 import { SceneLoader } from "../../Loading/sceneLoader";
 import { WebVRController } from "./webVRController";
 import { WebVRController } from "./webVRController";
 import { GenericController } from "./genericController";
 import { GenericController } from "./genericController";

+ 0 - 1
src/Gamepads/dualShockGamepad.ts

@@ -1,6 +1,5 @@
 import { Observable } from "../Misc/observable";
 import { Observable } from "../Misc/observable";
 import { Gamepad } from "./gamepad";
 import { Gamepad } from "./gamepad";
-import { _TimeToken } from "../Instrumentation/timeToken";
 
 
 /**
 /**
  * Defines supported buttons for DualShock compatible gamepads
  * Defines supported buttons for DualShock compatible gamepads

+ 1 - 1
src/Gamepads/gamepad.ts

@@ -1,5 +1,5 @@
 import { Observable } from "../Misc/observable";
 import { Observable } from "../Misc/observable";
-import { _TimeToken } from "../Instrumentation/timeToken";
+
 /**
 /**
  * Represents a gamepad control stick position
  * Represents a gamepad control stick position
  */
  */

+ 0 - 1
src/Gamepads/gamepadManager.ts

@@ -2,7 +2,6 @@ import { Observable } from "../Misc/observable";
 import { DomManagement } from "../Misc/domManagement";
 import { DomManagement } from "../Misc/domManagement";
 import { Nullable } from "../types";
 import { Nullable } from "../types";
 import { Scene } from "../scene";
 import { Scene } from "../scene";
-import { _TimeToken } from "../Instrumentation/timeToken";
 import { PoseEnabledControllerHelper } from "../Gamepads/Controllers/poseEnabledController";
 import { PoseEnabledControllerHelper } from "../Gamepads/Controllers/poseEnabledController";
 import { Xbox360Pad } from "./xboxGamepad";
 import { Xbox360Pad } from "./xboxGamepad";
 import { Gamepad, GenericPad } from "./gamepad";
 import { Gamepad, GenericPad } from "./gamepad";

+ 0 - 1
src/Gamepads/gamepadSceneComponent.ts

@@ -1,7 +1,6 @@
 import { Nullable } from "../types";
 import { Nullable } from "../types";
 import { Scene } from "../scene";
 import { Scene } from "../scene";
 import { SceneComponentConstants, ISceneComponent } from "../sceneComponent";
 import { SceneComponentConstants, ISceneComponent } from "../sceneComponent";
-import { _TimeToken } from "../Instrumentation/timeToken";
 import { GamepadManager } from "./gamepadManager";
 import { GamepadManager } from "./gamepadManager";
 
 
 import { FreeCameraInputsManager } from "../Cameras/freeCameraInputsManager";
 import { FreeCameraInputsManager } from "../Cameras/freeCameraInputsManager";

+ 0 - 1
src/Gamepads/xboxGamepad.ts

@@ -1,6 +1,5 @@
 import { Observable } from "../Misc/observable";
 import { Observable } from "../Misc/observable";
 import { Gamepad } from "../Gamepads/gamepad";
 import { Gamepad } from "../Gamepads/gamepad";
-import { _TimeToken } from "../Instrumentation/timeToken";
 /**
 /**
  * Defines supported buttons for XBox360 compatible gamepads
  * Defines supported buttons for XBox360 compatible gamepads
  */
  */

+ 0 - 1
src/Gizmos/axisDragGizmo.ts

@@ -8,7 +8,6 @@ import { Mesh } from "../Meshes/mesh";
 import { LinesMesh } from "../Meshes/linesMesh";
 import { LinesMesh } from "../Meshes/linesMesh";
 import { CylinderBuilder } from "../Meshes/Builders/cylinderBuilder";
 import { CylinderBuilder } from "../Meshes/Builders/cylinderBuilder";
 import { PointerDragBehavior } from "../Behaviors/Meshes/pointerDragBehavior";
 import { PointerDragBehavior } from "../Behaviors/Meshes/pointerDragBehavior";
-import { _TimeToken } from "../Instrumentation/timeToken";
 import { Gizmo } from "./gizmo";
 import { Gizmo } from "./gizmo";
 import { UtilityLayerRenderer } from "../Rendering/utilityLayerRenderer";
 import { UtilityLayerRenderer } from "../Rendering/utilityLayerRenderer";
 import { StandardMaterial } from "../Materials/standardMaterial";
 import { StandardMaterial } from "../Materials/standardMaterial";

+ 0 - 1
src/Gizmos/axisScaleGizmo.ts

@@ -9,7 +9,6 @@ import { BoxBuilder } from "../Meshes/Builders/boxBuilder";
 import { CylinderBuilder } from "../Meshes/Builders/cylinderBuilder";
 import { CylinderBuilder } from "../Meshes/Builders/cylinderBuilder";
 import { StandardMaterial } from "../Materials/standardMaterial";
 import { StandardMaterial } from "../Materials/standardMaterial";
 import { PointerDragBehavior } from "../Behaviors/Meshes/pointerDragBehavior";
 import { PointerDragBehavior } from "../Behaviors/Meshes/pointerDragBehavior";
-import { _TimeToken } from "../Instrumentation/timeToken";
 import { Gizmo } from "./gizmo";
 import { Gizmo } from "./gizmo";
 import { UtilityLayerRenderer } from "../Rendering/utilityLayerRenderer";
 import { UtilityLayerRenderer } from "../Rendering/utilityLayerRenderer";
 import { ScaleGizmo } from "./scaleGizmo";
 import { ScaleGizmo } from "./scaleGizmo";

+ 0 - 1
src/Gizmos/boundingBoxGizmo.ts

@@ -10,7 +10,6 @@ import { SphereBuilder } from "../Meshes/Builders/sphereBuilder";
 import { BoxBuilder } from "../Meshes/Builders/boxBuilder";
 import { BoxBuilder } from "../Meshes/Builders/boxBuilder";
 import { LinesBuilder } from "../Meshes/Builders/linesBuilder";
 import { LinesBuilder } from "../Meshes/Builders/linesBuilder";
 import { PointerDragBehavior } from "../Behaviors/Meshes/pointerDragBehavior";
 import { PointerDragBehavior } from "../Behaviors/Meshes/pointerDragBehavior";
-import { _TimeToken } from "../Instrumentation/timeToken";
 import { Gizmo } from "./gizmo";
 import { Gizmo } from "./gizmo";
 import { UtilityLayerRenderer } from "../Rendering/utilityLayerRenderer";
 import { UtilityLayerRenderer } from "../Rendering/utilityLayerRenderer";
 import { StandardMaterial } from "../Materials/standardMaterial";
 import { StandardMaterial } from "../Materials/standardMaterial";

+ 0 - 1
src/Gizmos/gizmo.ts

@@ -5,7 +5,6 @@ import { Scene, IDisposable } from "../scene";
 import { Quaternion, Vector3 } from "../Maths/math.vector";
 import { Quaternion, Vector3 } from "../Maths/math.vector";
 import { AbstractMesh } from "../Meshes/abstractMesh";
 import { AbstractMesh } from "../Meshes/abstractMesh";
 import { Mesh } from "../Meshes/mesh";
 import { Mesh } from "../Meshes/mesh";
-import { _TimeToken } from "../Instrumentation/timeToken";
 import { UtilityLayerRenderer } from "../Rendering/utilityLayerRenderer";
 import { UtilityLayerRenderer } from "../Rendering/utilityLayerRenderer";
 /**
 /**
  * Renders gizmos on top of an existing scene which provide controls for position, rotation, etc.
  * Renders gizmos on top of an existing scene which provide controls for position, rotation, etc.

+ 0 - 1
src/Gizmos/gizmoManager.ts

@@ -4,7 +4,6 @@ import { PointerInfo, PointerEventTypes } from "../Events/pointerEvents";
 import { Scene, IDisposable } from "../scene";
 import { Scene, IDisposable } from "../scene";
 import { Node } from "../node";
 import { Node } from "../node";
 import { AbstractMesh } from "../Meshes/abstractMesh";
 import { AbstractMesh } from "../Meshes/abstractMesh";
-import { _TimeToken } from "../Instrumentation/timeToken";
 import { UtilityLayerRenderer } from "../Rendering/utilityLayerRenderer";
 import { UtilityLayerRenderer } from "../Rendering/utilityLayerRenderer";
 import { Color3 } from '../Maths/math.color';
 import { Color3 } from '../Maths/math.color';
 import { SixDofDragBehavior } from "../Behaviors/Meshes/sixDofDragBehavior";
 import { SixDofDragBehavior } from "../Behaviors/Meshes/sixDofDragBehavior";

+ 0 - 1
src/Gizmos/planeDragGizmo.ts

@@ -8,7 +8,6 @@ import { AbstractMesh } from "../Meshes/abstractMesh";
 import { Mesh } from "../Meshes/mesh";
 import { Mesh } from "../Meshes/mesh";
 import { PlaneBuilder } from "../Meshes/Builders/planeBuilder";
 import { PlaneBuilder } from "../Meshes/Builders/planeBuilder";
 import { PointerDragBehavior } from "../Behaviors/Meshes/pointerDragBehavior";
 import { PointerDragBehavior } from "../Behaviors/Meshes/pointerDragBehavior";
-import { _TimeToken } from "../Instrumentation/timeToken";
 import { Gizmo } from "./gizmo";
 import { Gizmo } from "./gizmo";
 import { UtilityLayerRenderer } from "../Rendering/utilityLayerRenderer";
 import { UtilityLayerRenderer } from "../Rendering/utilityLayerRenderer";
 import { StandardMaterial } from "../Materials/standardMaterial";
 import { StandardMaterial } from "../Materials/standardMaterial";

+ 0 - 1
src/Gizmos/planeRotationGizmo.ts

@@ -7,7 +7,6 @@ import { AbstractMesh } from "../Meshes/abstractMesh";
 import { Mesh } from "../Meshes/mesh";
 import { Mesh } from "../Meshes/mesh";
 import { LinesMesh } from "../Meshes/linesMesh";
 import { LinesMesh } from "../Meshes/linesMesh";
 import { PointerDragBehavior } from "../Behaviors/Meshes/pointerDragBehavior";
 import { PointerDragBehavior } from "../Behaviors/Meshes/pointerDragBehavior";
-import { _TimeToken } from "../Instrumentation/timeToken";
 import { Gizmo } from "./gizmo";
 import { Gizmo } from "./gizmo";
 import { UtilityLayerRenderer } from "../Rendering/utilityLayerRenderer";
 import { UtilityLayerRenderer } from "../Rendering/utilityLayerRenderer";
 import { StandardMaterial } from "../Materials/standardMaterial";
 import { StandardMaterial } from "../Materials/standardMaterial";

+ 0 - 1
src/Gizmos/positionGizmo.ts

@@ -5,7 +5,6 @@ import { Vector3 } from "../Maths/math.vector";
 import { Color3 } from '../Maths/math.color';
 import { Color3 } from '../Maths/math.color';
 import { AbstractMesh } from "../Meshes/abstractMesh";
 import { AbstractMesh } from "../Meshes/abstractMesh";
 import { Mesh } from "../Meshes/mesh";
 import { Mesh } from "../Meshes/mesh";
-import { _TimeToken } from "../Instrumentation/timeToken";
 import { Gizmo } from "./gizmo";
 import { Gizmo } from "./gizmo";
 import { AxisDragGizmo } from "./axisDragGizmo";
 import { AxisDragGizmo } from "./axisDragGizmo";
 import { PlaneDragGizmo } from "./planeDragGizmo";
 import { PlaneDragGizmo } from "./planeDragGizmo";

+ 0 - 1
src/Gizmos/rotationGizmo.ts

@@ -5,7 +5,6 @@ import { Vector3 } from "../Maths/math.vector";
 import { Color3 } from '../Maths/math.color';
 import { Color3 } from '../Maths/math.color';
 import { AbstractMesh } from "../Meshes/abstractMesh";
 import { AbstractMesh } from "../Meshes/abstractMesh";
 import { Mesh } from "../Meshes/mesh";
 import { Mesh } from "../Meshes/mesh";
-import { _TimeToken } from "../Instrumentation/timeToken";
 import { Gizmo } from "./gizmo";
 import { Gizmo } from "./gizmo";
 import { PlaneRotationGizmo } from "./planeRotationGizmo";
 import { PlaneRotationGizmo } from "./planeRotationGizmo";
 import { UtilityLayerRenderer } from "../Rendering/utilityLayerRenderer";
 import { UtilityLayerRenderer } from "../Rendering/utilityLayerRenderer";

+ 0 - 1
src/Helpers/environmentHelper.ts

@@ -11,7 +11,6 @@ import { Texture } from "../Materials/Textures/texture";
 import { MirrorTexture } from "../Materials/Textures/mirrorTexture";
 import { MirrorTexture } from "../Materials/Textures/mirrorTexture";
 import { CubeTexture } from "../Materials/Textures/cubeTexture";
 import { CubeTexture } from "../Materials/Textures/cubeTexture";
 import { BackgroundMaterial } from "../Materials/Background/backgroundMaterial";
 import { BackgroundMaterial } from "../Materials/Background/backgroundMaterial";
-import { _TimeToken } from "../Instrumentation/timeToken";
 import { Constants } from "../Engines/constants";
 import { Constants } from "../Engines/constants";
 
 
 import "../Meshes/Builders/planeBuilder";
 import "../Meshes/Builders/planeBuilder";

+ 0 - 1
src/Helpers/photoDome.ts

@@ -5,7 +5,6 @@ import { TransformNode } from "../Meshes/transformNode";
 import { Mesh } from "../Meshes/mesh";
 import { Mesh } from "../Meshes/mesh";
 import { Texture } from "../Materials/Textures/texture";
 import { Texture } from "../Materials/Textures/texture";
 import { BackgroundMaterial } from "../Materials/Background/backgroundMaterial";
 import { BackgroundMaterial } from "../Materials/Background/backgroundMaterial";
-import { _TimeToken } from "../Instrumentation/timeToken";
 import "../Meshes/Builders/sphereBuilder";
 import "../Meshes/Builders/sphereBuilder";
 import { Vector3 } from '../Maths/math.vector';
 import { Vector3 } from '../Maths/math.vector';
 import { Camera } from '../Cameras/camera';
 import { Camera } from '../Cameras/camera';

+ 0 - 1
src/Helpers/videoDome.ts

@@ -1,7 +1,6 @@
 import { Scene } from "../scene";
 import { Scene } from "../scene";
 import { TransformNode } from "../Meshes/transformNode";
 import { TransformNode } from "../Meshes/transformNode";
 import { Mesh } from "../Meshes/mesh";
 import { Mesh } from "../Meshes/mesh";
-import { _TimeToken } from "../Instrumentation/timeToken";
 import { Texture } from "../Materials/Textures/texture";
 import { Texture } from "../Materials/Textures/texture";
 import { VideoTexture, VideoTextureSettings } from "../Materials/Textures/videoTexture";
 import { VideoTexture, VideoTextureSettings } from "../Materials/Textures/videoTexture";
 import { BackgroundMaterial } from "../Materials/Background/backgroundMaterial";
 import { BackgroundMaterial } from "../Materials/Background/backgroundMaterial";

+ 0 - 1
src/Instrumentation/sceneInstrumentation.ts

@@ -3,7 +3,6 @@ import { Observer } from "../Misc/observable";
 import { Nullable } from "../types";
 import { Nullable } from "../types";
 import { Camera } from "../Cameras/camera";
 import { Camera } from "../Cameras/camera";
 import { Scene, IDisposable } from "../scene";
 import { Scene, IDisposable } from "../scene";
-import { _TimeToken } from "../Instrumentation/timeToken";
 import { PerfCounter } from '../Misc/perfCounter';
 import { PerfCounter } from '../Misc/perfCounter';
 /**
 /**
  * This class can be used to get instrumentation data from a Babylon engine
  * This class can be used to get instrumentation data from a Babylon engine

+ 0 - 1
src/Layers/effectLayer.ts

@@ -14,7 +14,6 @@ import { SubMesh } from "../Meshes/subMesh";
 import { AbstractMesh } from "../Meshes/abstractMesh";
 import { AbstractMesh } from "../Meshes/abstractMesh";
 import { Mesh } from "../Meshes/mesh";
 import { Mesh } from "../Meshes/mesh";
 import { PostProcess } from "../PostProcesses/postProcess";
 import { PostProcess } from "../PostProcesses/postProcess";
-import { _TimeToken } from "../Instrumentation/timeToken";
 import { BaseTexture } from "../Materials/Textures/baseTexture";
 import { BaseTexture } from "../Materials/Textures/baseTexture";
 import { Texture } from "../Materials/Textures/texture";
 import { Texture } from "../Materials/Textures/texture";
 import { RenderTargetTexture } from "../Materials/Textures/renderTargetTexture";
 import { RenderTargetTexture } from "../Materials/Textures/renderTargetTexture";

+ 0 - 1
src/Layers/effectLayerSceneComponent.ts

@@ -4,7 +4,6 @@ import { Engine } from "../Engines/engine";
 import { AbstractMesh } from "../Meshes/abstractMesh";
 import { AbstractMesh } from "../Meshes/abstractMesh";
 import { RenderTargetTexture } from "../Materials/Textures/renderTargetTexture";
 import { RenderTargetTexture } from "../Materials/Textures/renderTargetTexture";
 import { SceneComponentConstants, ISceneSerializableComponent } from "../sceneComponent";
 import { SceneComponentConstants, ISceneSerializableComponent } from "../sceneComponent";
-import { _TimeToken } from "../Instrumentation/timeToken";
 import { EffectLayer } from "./effectLayer";
 import { EffectLayer } from "./effectLayer";
 import { AbstractScene } from "../abstractScene";
 import { AbstractScene } from "../abstractScene";
 import { AssetContainer } from "../assetContainer";
 import { AssetContainer } from "../assetContainer";

+ 0 - 1
src/Layers/highlightLayer.ts

@@ -16,7 +16,6 @@ import { RenderTargetTexture } from "../Materials/Textures/renderTargetTexture";
 import { PostProcess, PostProcessOptions } from "../PostProcesses/postProcess";
 import { PostProcess, PostProcessOptions } from "../PostProcesses/postProcess";
 import { PassPostProcess } from "../PostProcesses/passPostProcess";
 import { PassPostProcess } from "../PostProcesses/passPostProcess";
 import { BlurPostProcess } from "../PostProcesses/blurPostProcess";
 import { BlurPostProcess } from "../PostProcesses/blurPostProcess";
-import { _TimeToken } from "../Instrumentation/timeToken";
 import { EffectLayer } from "./effectLayer";
 import { EffectLayer } from "./effectLayer";
 import { AbstractScene } from "../abstractScene";
 import { AbstractScene } from "../abstractScene";
 import { Constants } from "../Engines/constants";
 import { Constants } from "../Engines/constants";

+ 0 - 1
src/Layers/layer.ts

@@ -9,7 +9,6 @@ import { Effect } from "../Materials/effect";
 import { Material } from "../Materials/material";
 import { Material } from "../Materials/material";
 import { Texture } from "../Materials/Textures/texture";
 import { Texture } from "../Materials/Textures/texture";
 import { SceneComponentConstants } from "../sceneComponent";
 import { SceneComponentConstants } from "../sceneComponent";
-import { _TimeToken } from "../Instrumentation/timeToken";
 import { LayerSceneComponent } from "./layerSceneComponent";
 import { LayerSceneComponent } from "./layerSceneComponent";
 import { Constants } from "../Engines/constants";
 import { Constants } from "../Engines/constants";
 import { RenderTargetTexture } from "../Materials/Textures/renderTargetTexture";
 import { RenderTargetTexture } from "../Materials/Textures/renderTargetTexture";

+ 0 - 1
src/Layers/layerSceneComponent.ts

@@ -2,7 +2,6 @@ import { Camera } from "../Cameras/camera";
 import { Scene } from "../scene";
 import { Scene } from "../scene";
 import { Engine } from "../Engines/engine";
 import { Engine } from "../Engines/engine";
 import { SceneComponentConstants, ISceneComponent } from "../sceneComponent";
 import { SceneComponentConstants, ISceneComponent } from "../sceneComponent";
-import { _TimeToken } from "../Instrumentation/timeToken";
 import { Layer } from "./layer";
 import { Layer } from "./layer";
 import { RenderTargetTexture } from "../Materials/Textures/renderTargetTexture";
 import { RenderTargetTexture } from "../Materials/Textures/renderTargetTexture";
 import { AbstractScene } from '../abstractScene';
 import { AbstractScene } from '../abstractScene';

+ 0 - 1
src/LensFlares/lensFlare.ts

@@ -1,7 +1,6 @@
 import { Nullable } from "../types";
 import { Nullable } from "../types";
 import { Color3 } from "../Maths/math.color";
 import { Color3 } from "../Maths/math.color";
 import { Texture } from "../Materials/Textures/texture";
 import { Texture } from "../Materials/Textures/texture";
-import { _TimeToken } from "../Instrumentation/timeToken";
 import { LensFlareSystem } from "./lensFlareSystem";
 import { LensFlareSystem } from "./lensFlareSystem";
 import { Constants } from "../Engines/constants";
 import { Constants } from "../Engines/constants";
 /**
 /**

+ 0 - 1
src/LensFlares/lensFlareSystem.ts

@@ -9,7 +9,6 @@ import { VertexBuffer } from "../Meshes/buffer";
 import { Ray } from "../Culling/ray";
 import { Ray } from "../Culling/ray";
 import { Effect } from "../Materials/effect";
 import { Effect } from "../Materials/effect";
 import { Material } from "../Materials/material";
 import { Material } from "../Materials/material";
-import { _TimeToken } from "../Instrumentation/timeToken";
 import { LensFlare } from "./lensFlare";
 import { LensFlare } from "./lensFlare";
 import { Constants } from "../Engines/constants";
 import { Constants } from "../Engines/constants";
 
 

+ 0 - 1
src/LensFlares/lensFlareSystemSceneComponent.ts

@@ -3,7 +3,6 @@ import { Nullable } from "../types";
 import { Camera } from "../Cameras/camera";
 import { Camera } from "../Cameras/camera";
 import { Scene } from "../scene";
 import { Scene } from "../scene";
 import { SceneComponentConstants, ISceneSerializableComponent } from "../sceneComponent";
 import { SceneComponentConstants, ISceneSerializableComponent } from "../sceneComponent";
-import { _TimeToken } from "../Instrumentation/timeToken";
 import { AbstractScene } from "../abstractScene";
 import { AbstractScene } from "../abstractScene";
 import { AssetContainer } from "../assetContainer";
 import { AssetContainer } from "../assetContainer";
 import { LensFlareSystem } from "./lensFlareSystem";
 import { LensFlareSystem } from "./lensFlareSystem";

+ 0 - 1
src/Lights/Shadows/cascadedShadowGenerator.ts

@@ -7,7 +7,6 @@ import { IShadowLight } from "../../Lights/shadowLight";
 import { Effect } from "../../Materials/effect";
 import { Effect } from "../../Materials/effect";
 import { RenderTargetTexture } from "../../Materials/Textures/renderTargetTexture";
 import { RenderTargetTexture } from "../../Materials/Textures/renderTargetTexture";
 
 
-import { _TimeToken } from "../../Instrumentation/timeToken";
 import { Constants } from "../../Engines/constants";
 import { Constants } from "../../Engines/constants";
 
 
 import "../../Shaders/shadowMap.fragment";
 import "../../Shaders/shadowMap.fragment";

+ 0 - 1
src/Lights/Shadows/shadowGenerator.ts

@@ -18,7 +18,6 @@ import { RenderTargetTexture } from "../../Materials/Textures/renderTargetTextur
 
 
 import { PostProcess } from "../../PostProcesses/postProcess";
 import { PostProcess } from "../../PostProcesses/postProcess";
 import { BlurPostProcess } from "../../PostProcesses/blurPostProcess";
 import { BlurPostProcess } from "../../PostProcesses/blurPostProcess";
-import { _TimeToken } from "../../Instrumentation/timeToken";
 import { Constants } from "../../Engines/constants";
 import { Constants } from "../../Engines/constants";
 
 
 import "../../Shaders/shadowMap.fragment";
 import "../../Shaders/shadowMap.fragment";

+ 0 - 1
src/Lights/Shadows/shadowGeneratorSceneComponent.ts

@@ -4,7 +4,6 @@ import { RenderTargetTexture } from "../../Materials/Textures/renderTargetTextur
 import { ShadowGenerator } from "./shadowGenerator";
 import { ShadowGenerator } from "./shadowGenerator";
 import { CascadedShadowGenerator } from "./cascadedShadowGenerator";
 import { CascadedShadowGenerator } from "./cascadedShadowGenerator";
 import { SceneComponentConstants, ISceneSerializableComponent } from "../../sceneComponent";
 import { SceneComponentConstants, ISceneSerializableComponent } from "../../sceneComponent";
-import { _TimeToken } from "../../Instrumentation/timeToken";
 import { AbstractScene } from "../../abstractScene";
 import { AbstractScene } from "../../abstractScene";
 // Adds the parser to the scene parsers.
 // Adds the parser to the scene parsers.
 AbstractScene.AddParser(SceneComponentConstants.NAME_SHADOWGENERATOR, (parsedData: any, scene: Scene) => {
 AbstractScene.AddParser(SceneComponentConstants.NAME_SHADOWGENERATOR, (parsedData: any, scene: Scene) => {

+ 0 - 1
src/Lights/directionalLight.ts

@@ -6,7 +6,6 @@ import { Node } from "../node";
 import { AbstractMesh } from "../Meshes/abstractMesh";
 import { AbstractMesh } from "../Meshes/abstractMesh";
 import { Light } from "./light";
 import { Light } from "./light";
 import { ShadowLight } from "./shadowLight";
 import { ShadowLight } from "./shadowLight";
-import { _TimeToken } from "../Instrumentation/timeToken";
 import { Effect } from "../Materials/effect";
 import { Effect } from "../Materials/effect";
 Node.AddNodeConstructor("Light_Type_1", (name, scene) => {
 Node.AddNodeConstructor("Light_Type_1", (name, scene) => {
     return () => new DirectionalLight(name, Vector3.Zero(), scene);
     return () => new DirectionalLight(name, Vector3.Zero(), scene);

+ 0 - 1
src/Lights/hemisphericLight.ts

@@ -7,7 +7,6 @@ import { Node } from "../node";
 import { Effect } from "../Materials/effect";
 import { Effect } from "../Materials/effect";
 import { Light } from "./light";
 import { Light } from "./light";
 import { IShadowGenerator } from "./Shadows/shadowGenerator";
 import { IShadowGenerator } from "./Shadows/shadowGenerator";
-import { _TimeToken } from "../Instrumentation/timeToken";
 
 
 Node.AddNodeConstructor("Light_Type_3", (name, scene) => {
 Node.AddNodeConstructor("Light_Type_3", (name, scene) => {
     return () => new HemisphericLight(name, Vector3.Zero(), scene);
     return () => new HemisphericLight(name, Vector3.Zero(), scene);

+ 0 - 1
src/Lights/pointLight.ts

@@ -5,7 +5,6 @@ import { Node } from "../node";
 import { AbstractMesh } from "../Meshes/abstractMesh";
 import { AbstractMesh } from "../Meshes/abstractMesh";
 import { Light } from "./light";
 import { Light } from "./light";
 import { ShadowLight } from "./shadowLight";
 import { ShadowLight } from "./shadowLight";
-import { _TimeToken } from "../Instrumentation/timeToken";
 import { Effect } from "../Materials/effect";
 import { Effect } from "../Materials/effect";
 
 
 Node.AddNodeConstructor("Light_Type_0", (name, scene) => {
 Node.AddNodeConstructor("Light_Type_0", (name, scene) => {

+ 0 - 1
src/Lights/shadowLight.ts

@@ -4,7 +4,6 @@ import { Scene } from "../scene";
 import { Matrix, Vector3 } from "../Maths/math.vector";
 import { Matrix, Vector3 } from "../Maths/math.vector";
 import { AbstractMesh } from "../Meshes/abstractMesh";
 import { AbstractMesh } from "../Meshes/abstractMesh";
 import { Light } from "./light";
 import { Light } from "./light";
-import { _TimeToken } from "../Instrumentation/timeToken";
 import { Axis } from '../Maths/math.axis';
 import { Axis } from '../Maths/math.axis';
 /**
 /**
  * Interface describing all the common properties and methods a shadow light needs to implement.
  * Interface describing all the common properties and methods a shadow light needs to implement.

+ 0 - 1
src/Lights/spotLight.ts

@@ -8,7 +8,6 @@ import { Effect } from "../Materials/effect";
 import { BaseTexture } from "../Materials/Textures/baseTexture";
 import { BaseTexture } from "../Materials/Textures/baseTexture";
 import { Light } from "./light";
 import { Light } from "./light";
 import { ShadowLight } from "./shadowLight";
 import { ShadowLight } from "./shadowLight";
-import { _TimeToken } from "../Instrumentation/timeToken";
 import { Texture } from '../Materials/Textures/texture';
 import { Texture } from '../Materials/Textures/texture';
 
 
 Node.AddNodeConstructor("Light_Type_2", (name, scene) => {
 Node.AddNodeConstructor("Light_Type_2", (name, scene) => {

+ 0 - 1
src/Loading/Plugins/babylonFileLoader.ts

@@ -15,7 +15,6 @@ import { HDRCubeTexture } from "../../Materials/Textures/hdrCubeTexture";
 import { AnimationGroup } from "../../Animations/animationGroup";
 import { AnimationGroup } from "../../Animations/animationGroup";
 import { Light } from "../../Lights/light";
 import { Light } from "../../Lights/light";
 import { SceneComponentConstants } from "../../sceneComponent";
 import { SceneComponentConstants } from "../../sceneComponent";
-import { _TimeToken } from "../../Instrumentation/timeToken";
 import { SceneLoader } from "../../Loading/sceneLoader";
 import { SceneLoader } from "../../Loading/sceneLoader";
 import { AbstractScene } from "../../abstractScene";
 import { AbstractScene } from "../../abstractScene";
 import { AssetContainer } from "../../assetContainer";
 import { AssetContainer } from "../../assetContainer";

+ 0 - 1
src/Loading/loadingScreen.ts

@@ -1,5 +1,4 @@
 import { Nullable } from "../types";
 import { Nullable } from "../types";
-import { _TimeToken } from "../Instrumentation/timeToken";
 import { Engine } from "../Engines/engine";
 import { Engine } from "../Engines/engine";
 /**
 /**
  * Interface used to present a loading screen while loading a scene
  * Interface used to present a loading screen while loading a scene

+ 0 - 1
src/Loading/sceneLoader.ts

@@ -7,7 +7,6 @@ import { Engine } from "../Engines/engine";
 import { EngineStore } from "../Engines/engineStore";
 import { EngineStore } from "../Engines/engineStore";
 import { AbstractMesh } from "../Meshes/abstractMesh";
 import { AbstractMesh } from "../Meshes/abstractMesh";
 import { AnimationGroup } from "../Animations/animationGroup";
 import { AnimationGroup } from "../Animations/animationGroup";
-import { _TimeToken } from "../Instrumentation/timeToken";
 import { AssetContainer } from "../assetContainer";
 import { AssetContainer } from "../assetContainer";
 import { IParticleSystem } from "../Particles/IParticleSystem";
 import { IParticleSystem } from "../Particles/IParticleSystem";
 import { Skeleton } from "../Bones/skeleton";
 import { Skeleton } from "../Bones/skeleton";

+ 0 - 1
src/Materials/Background/backgroundMaterial.ts

@@ -19,7 +19,6 @@ import { BaseTexture } from "../../Materials/Textures/baseTexture";
 import { Texture } from "../../Materials/Textures/texture";
 import { Texture } from "../../Materials/Textures/texture";
 import { RenderTargetTexture } from "../../Materials/Textures/renderTargetTexture";
 import { RenderTargetTexture } from "../../Materials/Textures/renderTargetTexture";
 import { IShadowLight } from "../../Lights/shadowLight";
 import { IShadowLight } from "../../Lights/shadowLight";
-import { _TimeToken } from "../../Instrumentation/timeToken";
 import { Constants } from "../../Engines/constants";
 import { Constants } from "../../Engines/constants";
 import { _TypeStore } from "../../Misc/typeStore";
 import { _TypeStore } from "../../Misc/typeStore";
 import { MaterialFlags } from "../materialFlags";
 import { MaterialFlags } from "../materialFlags";

+ 0 - 1
src/Materials/PBR/pbrBaseMaterial.ts

@@ -11,7 +11,6 @@ import { VertexBuffer } from "../../Meshes/buffer";
 import { SubMesh } from "../../Meshes/subMesh";
 import { SubMesh } from "../../Meshes/subMesh";
 import { AbstractMesh } from "../../Meshes/abstractMesh";
 import { AbstractMesh } from "../../Meshes/abstractMesh";
 import { Mesh } from "../../Meshes/mesh";
 import { Mesh } from "../../Meshes/mesh";
-import { _TimeToken } from "../../Instrumentation/timeToken";
 import { IMaterialClearCoatDefines, PBRClearCoatConfiguration } from "./pbrClearCoatConfiguration";
 import { IMaterialClearCoatDefines, PBRClearCoatConfiguration } from "./pbrClearCoatConfiguration";
 import { IMaterialAnisotropicDefines, PBRAnisotropicConfiguration } from "./pbrAnisotropicConfiguration";
 import { IMaterialAnisotropicDefines, PBRAnisotropicConfiguration } from "./pbrAnisotropicConfiguration";
 import { IMaterialBRDFDefines, PBRBRDFConfiguration } from "./pbrBRDFConfiguration";
 import { IMaterialBRDFDefines, PBRBRDFConfiguration } from "./pbrBRDFConfiguration";

+ 0 - 1
src/Materials/PBR/pbrBaseSimpleMaterial.ts

@@ -4,7 +4,6 @@ import { Color3 } from "../../Maths/math.color";
 import { PBRBaseMaterial } from "./pbrBaseMaterial";
 import { PBRBaseMaterial } from "./pbrBaseMaterial";
 import { BaseTexture } from "../../Materials/Textures/baseTexture";
 import { BaseTexture } from "../../Materials/Textures/baseTexture";
 
 
-import { _TimeToken } from "../../Instrumentation/timeToken";
 /**
 /**
  * The Physically based simple base material of BJS.
  * The Physically based simple base material of BJS.
  *
  *

+ 0 - 1
src/Materials/PBR/pbrMaterial.ts

@@ -3,7 +3,6 @@ import { BRDFTextureTools } from "../../Misc/brdfTextureTools";
 import { Nullable } from "../../types";
 import { Nullable } from "../../types";
 import { Scene } from "../../scene";
 import { Scene } from "../../scene";
 import { Color3 } from "../../Maths/math.color";
 import { Color3 } from "../../Maths/math.color";
-import { _TimeToken } from "../../Instrumentation/timeToken";
 import { ImageProcessingConfiguration } from "../../Materials/imageProcessingConfiguration";
 import { ImageProcessingConfiguration } from "../../Materials/imageProcessingConfiguration";
 import { ColorCurves } from "../../Materials/colorCurves";
 import { ColorCurves } from "../../Materials/colorCurves";
 import { BaseTexture } from "../../Materials/Textures/baseTexture";
 import { BaseTexture } from "../../Materials/Textures/baseTexture";

+ 0 - 1
src/Materials/PBR/pbrMetallicRoughnessMaterial.ts

@@ -1,7 +1,6 @@
 import { serialize, SerializationHelper, serializeAsColor3, expandToProperty, serializeAsTexture } from "../../Misc/decorators";
 import { serialize, SerializationHelper, serializeAsColor3, expandToProperty, serializeAsTexture } from "../../Misc/decorators";
 import { Scene } from "../../scene";
 import { Scene } from "../../scene";
 import { Color3 } from "../../Maths/math.color";
 import { Color3 } from "../../Maths/math.color";
-import { _TimeToken } from "../../Instrumentation/timeToken";
 import { BaseTexture } from "../../Materials/Textures/baseTexture";
 import { BaseTexture } from "../../Materials/Textures/baseTexture";
 import { PBRBaseSimpleMaterial } from "./pbrBaseSimpleMaterial";
 import { PBRBaseSimpleMaterial } from "./pbrBaseSimpleMaterial";
 import { _TypeStore } from '../../Misc/typeStore';
 import { _TypeStore } from '../../Misc/typeStore';

+ 0 - 1
src/Materials/PBR/pbrSpecularGlossinessMaterial.ts

@@ -1,7 +1,6 @@
 import { serialize, SerializationHelper, serializeAsColor3, expandToProperty, serializeAsTexture } from "../../Misc/decorators";
 import { serialize, SerializationHelper, serializeAsColor3, expandToProperty, serializeAsTexture } from "../../Misc/decorators";
 import { Scene } from "../../scene";
 import { Scene } from "../../scene";
 import { Color3 } from "../../Maths/math.color";
 import { Color3 } from "../../Maths/math.color";
-import { _TimeToken } from "../../Instrumentation/timeToken";
 import { BaseTexture } from "../../Materials/Textures/baseTexture";
 import { BaseTexture } from "../../Materials/Textures/baseTexture";
 import { PBRBaseSimpleMaterial } from "./pbrBaseSimpleMaterial";
 import { PBRBaseSimpleMaterial } from "./pbrBaseSimpleMaterial";
 import { _TypeStore } from '../../Misc/typeStore';
 import { _TypeStore } from '../../Misc/typeStore';

+ 0 - 1
src/Materials/Textures/Loaders/basisTextureLoader.ts

@@ -2,7 +2,6 @@ import { Nullable } from "../../../types";
 import { Engine } from "../../../Engines/engine";
 import { Engine } from "../../../Engines/engine";
 import { InternalTexture } from "../../../Materials/Textures/internalTexture";
 import { InternalTexture } from "../../../Materials/Textures/internalTexture";
 import { IInternalTextureLoader } from "../../../Materials/Textures/internalTextureLoader";
 import { IInternalTextureLoader } from "../../../Materials/Textures/internalTextureLoader";
-import { _TimeToken } from "../../../Instrumentation/timeToken";
 import { BasisTools } from "../../../Misc/basis";
 import { BasisTools } from "../../../Misc/basis";
 import { Tools } from '../../../Misc/tools';
 import { Tools } from '../../../Misc/tools';
 
 

+ 0 - 1
src/Materials/Textures/Loaders/ddsTextureLoader.ts

@@ -3,7 +3,6 @@ import { SphericalPolynomial } from "../../../Maths/sphericalPolynomial";
 import { Engine } from "../../../Engines/engine";
 import { Engine } from "../../../Engines/engine";
 import { InternalTexture } from "../../../Materials/Textures/internalTexture";
 import { InternalTexture } from "../../../Materials/Textures/internalTexture";
 import { IInternalTextureLoader } from "../../../Materials/Textures/internalTextureLoader";
 import { IInternalTextureLoader } from "../../../Materials/Textures/internalTextureLoader";
-import { _TimeToken } from "../../../Instrumentation/timeToken";
 import { DDSTools, DDSInfo } from "../../../Misc/dds";
 import { DDSTools, DDSInfo } from "../../../Misc/dds";
 /**
 /**
  * Implementation of the DDS Texture Loader.
  * Implementation of the DDS Texture Loader.

+ 1 - 1
src/Materials/Textures/Loaders/envTextureLoader.ts

@@ -3,7 +3,7 @@ import { Nullable } from "../../../types";
 import { Engine } from "../../../Engines/engine";
 import { Engine } from "../../../Engines/engine";
 import { InternalTexture } from "../../../Materials/Textures/internalTexture";
 import { InternalTexture } from "../../../Materials/Textures/internalTexture";
 import { IInternalTextureLoader } from "../../../Materials/Textures/internalTextureLoader";
 import { IInternalTextureLoader } from "../../../Materials/Textures/internalTextureLoader";
-import { _TimeToken } from "../../../Instrumentation/timeToken";
+
 /**
 /**
  * Implementation of the ENV Texture Loader.
  * Implementation of the ENV Texture Loader.
  * @hidden
  * @hidden

+ 1 - 1
src/Materials/Textures/Loaders/ktxTextureLoader.ts

@@ -3,7 +3,7 @@ import { Nullable } from "../../../types";
 import { Engine } from "../../../Engines/engine";
 import { Engine } from "../../../Engines/engine";
 import { InternalTexture } from "../../../Materials/Textures/internalTexture";
 import { InternalTexture } from "../../../Materials/Textures/internalTexture";
 import { IInternalTextureLoader } from "../../../Materials/Textures/internalTextureLoader";
 import { IInternalTextureLoader } from "../../../Materials/Textures/internalTextureLoader";
-import { _TimeToken } from "../../../Instrumentation/timeToken";
+
 /**
 /**
  * Implementation of the KTX Texture Loader.
  * Implementation of the KTX Texture Loader.
  * @hidden
  * @hidden

+ 1 - 1
src/Materials/Textures/Loaders/tgaTextureLoader.ts

@@ -3,7 +3,7 @@ import { Nullable } from "../../../types";
 import { Engine } from "../../../Engines/engine";
 import { Engine } from "../../../Engines/engine";
 import { InternalTexture } from "../../../Materials/Textures/internalTexture";
 import { InternalTexture } from "../../../Materials/Textures/internalTexture";
 import { IInternalTextureLoader } from "../../../Materials/Textures/internalTextureLoader";
 import { IInternalTextureLoader } from "../../../Materials/Textures/internalTextureLoader";
-import { _TimeToken } from "../../../Instrumentation/timeToken";
+
 /**
 /**
  * Implementation of the TGA Texture Loader.
  * Implementation of the TGA Texture Loader.
  * @hidden
  * @hidden

+ 0 - 1
src/Materials/Textures/Procedurals/customProceduralTexture.ts

@@ -2,7 +2,6 @@ import { Logger } from "../../../Misc/logger";
 import { Scene } from "../../../scene";
 import { Scene } from "../../../scene";
 import { Vector3, Vector2 } from "../../../Maths/math.vector";
 import { Vector3, Vector2 } from "../../../Maths/math.vector";
 import { Color4, Color3 } from '../../../Maths/math.color';
 import { Color4, Color3 } from '../../../Maths/math.color';
-import { _TimeToken } from "../../../Instrumentation/timeToken";
 import { Texture } from "../../../Materials/Textures/texture";
 import { Texture } from "../../../Materials/Textures/texture";
 import { ProceduralTexture } from "./proceduralTexture";
 import { ProceduralTexture } from "./proceduralTexture";
 import { WebRequest } from '../../../Misc/webRequest';
 import { WebRequest } from '../../../Misc/webRequest';

+ 0 - 1
src/Materials/Textures/Procedurals/noiseProceduralTexture.ts

@@ -1,7 +1,6 @@
 import { Nullable } from "../../../types";
 import { Nullable } from "../../../types";
 import { Scene } from "../../../scene";
 import { Scene } from "../../../scene";
 import { EngineStore } from "../../../Engines/engineStore";
 import { EngineStore } from "../../../Engines/engineStore";
-import { _TimeToken } from "../../../Instrumentation/timeToken";
 import { Texture } from "../../../Materials/Textures/texture";
 import { Texture } from "../../../Materials/Textures/texture";
 import { ProceduralTexture } from "./proceduralTexture";
 import { ProceduralTexture } from "./proceduralTexture";
 import { _TypeStore } from '../../../Misc/typeStore';
 import { _TypeStore } from '../../../Misc/typeStore';

+ 0 - 1
src/Materials/Textures/Procedurals/proceduralTexture.ts

@@ -7,7 +7,6 @@ import { Color4, Color3 } from '../../../Maths/math.color';
 import { Engine } from "../../../Engines/engine";
 import { Engine } from "../../../Engines/engine";
 import { VertexBuffer } from "../../../Meshes/buffer";
 import { VertexBuffer } from "../../../Meshes/buffer";
 import { SceneComponentConstants } from "../../../sceneComponent";
 import { SceneComponentConstants } from "../../../sceneComponent";
-import { _TimeToken } from "../../../Instrumentation/timeToken";
 
 
 import { Material } from "../../../Materials/material";
 import { Material } from "../../../Materials/material";
 import { Effect } from "../../../Materials/effect";
 import { Effect } from "../../../Materials/effect";

+ 0 - 1
src/Materials/Textures/Procedurals/proceduralTextureSceneComponent.ts

@@ -1,7 +1,6 @@
 import { Tools } from "../../../Misc/tools";
 import { Tools } from "../../../Misc/tools";
 import { Scene } from "../../../scene";
 import { Scene } from "../../../scene";
 import { SceneComponentConstants, ISceneComponent } from "../../../sceneComponent";
 import { SceneComponentConstants, ISceneComponent } from "../../../sceneComponent";
-import { _TimeToken } from "../../../Instrumentation/timeToken";
 
 
 import { ProceduralTexture } from "./proceduralTexture";
 import { ProceduralTexture } from "./proceduralTexture";
 
 

+ 0 - 1
src/Materials/Textures/baseTexture.polynomial.ts

@@ -1,7 +1,6 @@
 import { Nullable } from "../../types";
 import { Nullable } from "../../types";
 import { CubeMapToSphericalPolynomialTools } from "../../Misc/HighDynamicRange/cubemapToSphericalPolynomial";
 import { CubeMapToSphericalPolynomialTools } from "../../Misc/HighDynamicRange/cubemapToSphericalPolynomial";
 import { SphericalPolynomial } from "../../Maths/sphericalPolynomial";
 import { SphericalPolynomial } from "../../Maths/sphericalPolynomial";
-import { _TimeToken } from "../../Instrumentation/timeToken";
 import { BaseTexture } from "./baseTexture";
 import { BaseTexture } from "./baseTexture";
 
 
 declare module "./baseTexture" {
 declare module "./baseTexture" {

+ 0 - 1
src/Materials/Textures/baseTexture.ts

@@ -5,7 +5,6 @@ import { Scene } from "../../scene";
 import { Matrix } from "../../Maths/math.vector";
 import { Matrix } from "../../Maths/math.vector";
 import { EngineStore } from "../../Engines/engineStore";
 import { EngineStore } from "../../Engines/engineStore";
 import { InternalTexture } from "../../Materials/Textures/internalTexture";
 import { InternalTexture } from "../../Materials/Textures/internalTexture";
-import { _TimeToken } from "../../Instrumentation/timeToken";
 import { Constants } from "../../Engines/constants";
 import { Constants } from "../../Engines/constants";
 import { IAnimatable } from '../../Animations/animatable.interface';
 import { IAnimatable } from '../../Animations/animatable.interface';
 import { GUID } from '../../Misc/guid';
 import { GUID } from '../../Misc/guid';

+ 0 - 1
src/Materials/Textures/colorGradingTexture.ts

@@ -4,7 +4,6 @@ import { Matrix } from "../../Maths/math.vector";
 import { Engine } from "../../Engines/engine";
 import { Engine } from "../../Engines/engine";
 import { InternalTexture } from "../../Materials/Textures/internalTexture";
 import { InternalTexture } from "../../Materials/Textures/internalTexture";
 import { BaseTexture } from "../../Materials/Textures/baseTexture";
 import { BaseTexture } from "../../Materials/Textures/baseTexture";
-import { _TimeToken } from "../../Instrumentation/timeToken";
 import { Constants } from "../../Engines/constants";
 import { Constants } from "../../Engines/constants";
 import { _TypeStore } from '../../Misc/typeStore';
 import { _TypeStore } from '../../Misc/typeStore';
 
 

+ 0 - 1
src/Materials/Textures/cubeTexture.ts

@@ -5,7 +5,6 @@ import { Scene } from "../../scene";
 import { Matrix, Vector3 } from "../../Maths/math.vector";
 import { Matrix, Vector3 } from "../../Maths/math.vector";
 import { BaseTexture } from "../../Materials/Textures/baseTexture";
 import { BaseTexture } from "../../Materials/Textures/baseTexture";
 import { Texture } from "../../Materials/Textures/texture";
 import { Texture } from "../../Materials/Textures/texture";
-import { _TimeToken } from "../../Instrumentation/timeToken";
 import { Constants } from "../../Engines/constants";
 import { Constants } from "../../Engines/constants";
 import { _TypeStore } from '../../Misc/typeStore';
 import { _TypeStore } from '../../Misc/typeStore';
 
 

+ 0 - 1
src/Materials/Textures/dynamicTexture.ts

@@ -4,7 +4,6 @@ import { Scene } from "../../scene";
 import { ISize } from "../../Maths/math.size";
 import { ISize } from "../../Maths/math.size";
 import { Engine } from "../../Engines/engine";
 import { Engine } from "../../Engines/engine";
 import { Texture } from "../../Materials/Textures/texture";
 import { Texture } from "../../Materials/Textures/texture";
-import { _TimeToken } from "../../Instrumentation/timeToken";
 import { Constants } from "../../Engines/constants";
 import { Constants } from "../../Engines/constants";
 import "../../Engines/Extensions/engine.dynamicTexture";
 import "../../Engines/Extensions/engine.dynamicTexture";
 import { CanvasGenerator } from '../../Misc/canvasGenerator';
 import { CanvasGenerator } from '../../Misc/canvasGenerator';

+ 0 - 1
src/Materials/Textures/hdrCubeTexture.ts

@@ -4,7 +4,6 @@ import { Matrix, Vector3 } from "../../Maths/math.vector";
 import { BaseTexture } from "../../Materials/Textures/baseTexture";
 import { BaseTexture } from "../../Materials/Textures/baseTexture";
 import { Texture } from "../../Materials/Textures/texture";
 import { Texture } from "../../Materials/Textures/texture";
 import { Constants } from "../../Engines/constants";
 import { Constants } from "../../Engines/constants";
-import { _TimeToken } from "../../Instrumentation/timeToken";
 import { HDRTools } from "../../Misc/HighDynamicRange/hdr";
 import { HDRTools } from "../../Misc/HighDynamicRange/hdr";
 import { CubeMapToSphericalPolynomialTools } from "../../Misc/HighDynamicRange/cubemapToSphericalPolynomial";
 import { CubeMapToSphericalPolynomialTools } from "../../Misc/HighDynamicRange/cubemapToSphericalPolynomial";
 import { _TypeStore } from '../../Misc/typeStore';
 import { _TypeStore } from '../../Misc/typeStore';

+ 0 - 1
src/Materials/Textures/internalTexture.ts

@@ -1,7 +1,6 @@
 import { Observable } from "../../Misc/observable";
 import { Observable } from "../../Misc/observable";
 import { Nullable, int } from "../../types";
 import { Nullable, int } from "../../types";
 import { RenderTargetCreationOptions } from "../../Materials/Textures/renderTargetCreationOptions";
 import { RenderTargetCreationOptions } from "../../Materials/Textures/renderTargetCreationOptions";
-import { _TimeToken } from "../../Instrumentation/timeToken";
 import { Constants } from "../../Engines/constants";
 import { Constants } from "../../Engines/constants";
 import { _DevTools } from '../../Misc/devTools';
 import { _DevTools } from '../../Misc/devTools';
 import { Engine } from '../../Engines/engine';
 import { Engine } from '../../Engines/engine';

+ 1 - 1
src/Materials/Textures/internalTextureLoader.ts

@@ -1,6 +1,6 @@
 import { Nullable } from "../../types";
 import { Nullable } from "../../types";
 import { InternalTexture } from "../../Materials/Textures/internalTexture";
 import { InternalTexture } from "../../Materials/Textures/internalTexture";
-import { _TimeToken } from "../../Instrumentation/timeToken";
+
 /**
 /**
  * This represents the required contract to create a new type of texture loader.
  * This represents the required contract to create a new type of texture loader.
  */
  */