Hey @mcmuffin6o
The application you are trying to build sounds interesting!
Should I make it web-based, or browser-based? If I go with a desktop-based approach, is Electron a good choice? Is it possible to make use of the GPU either way? (I dislike how my laptop’s fans spool up like an F119 every time I open a webpage with a CesiumJS viewer in it.)
I think that since you want multiple windows and file I/O, you should go with one of the following options:
- Electron
- Progressive Web Apps (PWA)
I would prefer the former but PWAs have also advanced dramatically during the last years. Google is currently developing Project Fugu that enables even more desktop capabilities for PWAs.
Do I need to use a framework such as Angular/React/Vue, etc.? There’s a page on the Cesium website about webpack, but it warns that the information contained within may be outdated.
The choice of the framework should not be very important. I would say that use a JavaScript framework that suits you best and is more convenient for you. For example, as an Angular expert, I would probably build it with Angular At the end of the day, all JavaScript frameworks do pretty much the same job. The page that you mentioned about Webpack contains also a link to the accompanying GitHub repository where you can find more up to date information.
Is TypeScript a good idea for CesiumJS applications?
I think that TypeScript is generally a good idea for newcomers to the web ecosystem that come from other languages such as C# or C++. It gives you many OOP techniques that you find in other languages as well.
Should I simply use Rust to generate webassembly for an Electron app? Would such a three-element approach be sufficient for my goal of being able to open new windows that are capable of IPC and file I/O?
Since you are already familiar with Rust, you should definitely consider it as an option. WebAssembly is very performant and a popular choice. Even Blazor has the option to build web apps with it.
Should I be using CesiumJS at all? I can’t even find the documentation on what type(s) entity.orientation can be assigned to, and The state of the CZML documentation is worrying, to say the least.
I guess so since you want a Cesium viewer
I hope my answers will help you. Let me know if you have any additional questions