Since seems like WebAssembly is giving quite a boost into 3D ( some test showing up to 15 Times performance improvements )
I wondered if there is a chance to see it soon in WebAssembly form ?
and is there some work for integration with Blazor technology, which seems like to be one of the main things in the future.
WebAssembly isn’t going to do much for 3D, since it is not running on the graphics card and can’t run anything natively in parallel until SIMD is approved. Things like matrix math will only see a speed up when you are past 256x256 matrices.
I am just looking for a way to make cesium much more powerful and productive.
Blazor offer ginormous productivity for a single page applications like most of cesium usage scenarios, and aside the flexibility it is strongly typed, which is another level into the enterprise development of applications.
About webassembly performance - here some test results variating from 1.2 to 16 times performance difference on a different platforms. https://medium.com/@torch2424/webassembly-is-fast-a-real-world-benchmark-of-webassembly-vs-es6-d85a23f8e193
Additionally most of the companies believe that the blootware called JavaScript is time to go, and be replaced by something much faster and enterprise grade. Current bets in on ASP.NET 5, Blazor and WebAssembly which is promising all the dreams of the enterprises and large scale single codebase RIA web/mobile/desktop apps.
That’s why I am made this point about Blazor and WebAsembly, since they will probably be the tech of the future high class and high performance apps.
It’s more likely that parts of the engine that are computationally intensive would get written in WebAssembly, which is already the case for decoding Draco compressed models in CesiumJS for example. If the goal is to speed up rendering I’m not sure WASM is going to help, but you’re welcome to put together some benchmarks to contribute!
We’ve done already a few internal tests trying to switch from Flash based map to Cesium, but still JS lack from 20 to 150 times behind the Flash as pure performance.
We have a lot of on-the-fly generations, multiple types of interaction and hundreds of simulated polylines which have to be redrawn each second or two while there is not visible flickering or interaction change.
Since Cesium so far is the closest thing to our needs, and I am really looking forward to it, and since the project going to be rewritten totally - I just wondered if using a tech which is probably the next big thing would not be great to have soon in cesium as well.
And yep - definitely liked the demo you have show, yet there is a lot of things which would go even better with WebAsm and probably Blazor. This was my point initially, and I really believe from the test I’ve seen that the 3D is getting much more fps switching to WebAsm.
Here - a keynote, explanation and real performance demo of why Autodesk ditched JS in favor of WebAssembly, and finally they have everything they have dreamed for.
Can you give me any tips on where I need to uproot Cesium’s engine and place in custom written webAssembly? I am a JavaScript Developer by trade but a trying to learn C++ and graphics programming (I know some webGL). Are you handling the the data preparation in C++, then handing the prepared data back to Cesium’s engine?
Did you use AssemblyScript?
Any high level advice would be greatly appreciated. Very impressive product you’ve created!!
The best way to do it is put all the heavy processing into WebAssembly, and then push the data back over when it’s ready. Think of the WebAssembly code as the code you usually write to create a geometry or other Cesium feature using the API.