Cesium Exposure
Last weekend I discovered Cesium, a sophisticated WebGL virtual globe engine developed as an open source project by AGI. Among other things, it can be used to interactively display satellite orbits in 3D in a web browser…
…which is exactly what I’ve been building in SatStatus, my summer “coffee shop programming project”. So, I admit I felt discouraged to discover I was not the first to develop the concept. However, it also feels good to realize that I, operating as a hobbyist and enthusiast only, identified the same niche and was able to build a visualization tool with comparable core capabilities (see screenshot at right).
SatStatus exists as pretty rough proof-of-concept code (I’m learning Javascript as I go), whereas Cesium appears to be put together with an admirably rigorous testing and review process. Cesium also has many more features than SatStatus. Some, like support for surface terrain and arbitrary feature markup, are beyond the scope of what I had planned; others, like ready-made reference time controls and multiple camera modes, were on my to-do list.
One difference is that SatStatus was designed from the start to be able to propagate satellite locations in real-time using a set of recent TLEs and Shashwat Kandadai’s Javascript implementation of the SGP4/SDP4 algorithm. If my cursory reading of the documentation is correct, this is possible in Cesium as well, but only by streaming satellite positions as CZML markup from another source. (To be clear, this is reasonable, given that Cesium is a general purpose display engine, whereas real-time satellite tracking is just one specific application.)
Now I must decide how to proceed. It is certainly satisfying to build something from scratch, but now that I know something very similar is already available, it would make sense to fast-forward my effort to focus on the web site I eventually planned to build around the 3D viewer.
Besides the goal of powering a new public real-time satellite tracking site, SatStatus was also intended as a “portfolio project” to learn about Javascript development, graphics programming, and the varied interest many Earthlings have in monitoring our space-based assets. That goal can still be met, with the added benefit of a good example to study, by participating in the Cesium project.
Posted on Saturday, September 21st, 2013. Tags: code, satellites.