Satellite-centric viewer

The CesiumViewer and the CesiumViewerWidget are Earth-centric.
I need to examine things like collision avoidance, so I need my lookAt to be a satellite and the spindle/rotate functions to operate accordingly.

Is anyone already working on this? Did I miss an example of this?

If not, it looks like I need to copy Apps/CesiumViewer/* and Source/Widgets/Dojo/CesiumViewerWidget.* and learn JavaScript by modifying my copies to focus on my satellite of interest.
An aside: ECF paths are imperative for me, as big ECI ellipses hide the relative position information I need to examine.

Information and suggestions both welcome.

Hi Sheldon,

Space and other non-earth based views are very important to us. Most of the core Cesium developers actually work for an aerospace company, AGI (, so it’s something we’re very familiar with.

While the camera is an area of heavy development, we do have some examples of tracking an object as it moves about. The most far along of these is the DynamicObjectView class in the DynamicScene directory. It allows you to track an object across multiple and keep the camera centered around it so that rotating and movement is all related to the object. If you’re using CZML, then that may be all you need. For example, load up the CesiumViewer (for example simple.czml) and double click on a satellite icon. You’ll now be tracking and rotating around it.

If you’re not using CZML, you can still use that code as a reference to do the same thing at a lower level (working with primitives and not DynamicObject instances). That being said, Dan (dbagnell) has an in-progress camera branch that will make manipulating the camera programatically even easier. So we’ll continue to see a lot of improvement in this area in the short term.

As for ECF/ECI. Currently most of our uses involve ECF, so you should be good to go there. The same example I linked to above is using ECF paths. We plan to ultimately support arbitrary reference frames. We also recently added an Ellipsoid primitive and CZML Ellipsoid support.

Hopefully that can get you started, but please don’t hesitate to ask if you have more questions. We are hoping to improve our examples and documentation based on feedback like yours. Also, if you do something you think is generally useful, we would be thrilled to have you contribute it back into the code base.



  1. Thanks.

  2. I previously tried the double-click and failed. I tried again and was able to attach to a satellite. Good.

  3. Toggling content is necessary, so I don’t think I can go with a pure CZML approach. Is anyone worrying about content selection, perhaps from a pop-up panel? There won’t be a single solution for everyone, but a template with a couple of controls would be nice.

  4. I will look into DynamicScene. I will need to go to some specific views, e.g. from SatA to SatB, nadir from above SatA, etc. I also hope to get away from the virtual trackball. A virtual trackball stinks because “up” doesn’t stay up. It did when I first saw it in about 1980 and it still does. It is easy to implement and explain in texts, so it is popular. Just like a bubble sort. Oops. Sorry about the ranting.

  5. Ellipsoids (translucent) will be useful for positional uncertainty of debris. You knew that, I suppose.

Thanks again,