Is there plan for Cesium to switch to WebAssembly technology and Blazor?

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.

3 Likes

My 2 cents:

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.

Blazor is … strange.

1 Like

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

1 Like

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!

If you want to see an example check out celestrak.com. Click on the banner to see a Cesium project using wasm for position updates.

Cesium is plenty fast right now, you just have to use it correctly.

If you’re looking for a fast UI framework, check out Svelte.

2 Likes

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.

1 Like

https://blogs.autodesk.com/autocad/autocad-web-app-google-io-2018/

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.

1 Like

https://www.smashingmagazine.com/2019/04/webassembly-speed-web-app/

Here another .

Yup, that article won me over. I’m going to convert Cesium to web assembly, I’ll post here when I’m done.

Not sarcastic, I’ve already started. I’ll be using a subset of TypeScript that is convertible to WASM.

1 Like

Good lords ! I am feeling a bit bad right now. Please accept my apology ! And THANK YOU ! :slight_smile:
I am absolutely excited now ! <3 <3 <3 !!!

I am excited too, but it is going to take a long time (probably 6 months) before the first demo.

We have implemented wasm with 100% performance improvement.

1 Like

We have implemented wasm with 100% performance improvement

1 Like

Good lords ! Where I can see the result ? Is there some demo, or SDK ?!

Hey did you ever make progress on this?

Absolutely did! It powers our next product:

We will be publishing a demo & API docs soon.

Oh my goodness it’s beautiful! Hats off to you!

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!!

1 Like

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.

2 Likes