Status of CZML in Cesium

I was just wondering what the long term plan for CZML was within Cesium. Someone else has also posted that the wiki page for CZML Content isn't working. The wiki pages aren't updated very often either. Is CZML going to continue to be maintained? It just doesn't seem to get as much love/attention as many of the other things.

The reason the wiki page for CZML content isn’t working is because GitHub either made a policy change regarding the size of wiki pages or have introduced a bug causing it to fail. There are other wiki pages in other projects that have the same problem. As far as I’m aware, this just happened within the past 24 hours. Since the documentation page is auto-generated, it requires code changes to generate the doc as separate pages.

To address your larger concern, CZML isn’t going anywhere and is a key part of Cesium’s long term plan.

You are correct in that the documentation needs a major update, but that doesn’t mean CZML itself hasn’t been evolving or being maintained. If there is a feature in the Entity API that you know of that isn’t exposed via CZML, please let us know. Better yet, we are happy to merge a pull request (which actually just happened today:

We also recently added a brand new category to Sandcastle to help people learn CZML by example:

It’s true that the czml-writer project has languished quite a bit, but Scott Hunter, who is one of the Cesium committers, is actually in the process of a major update and just merged the first of many pull requests:

This effort will address many feature people have wanted for a while:

  1. Today’s PR added support for model articulations and transformations in CZML

  2. It also laid some groundwork for the ability to specify arbitrary properties in CZML files, as discussed in

  3. We also plan to make sure we have total parity between the Entity API and CZML.

  4. We will be upgrading the JSON schema definition of CZML to the latest version which should also help us greatly improve the generated documentation (and fix the pesky new GitHub timeout).

Finally, in any large project like Cesium you need to carefully evaluate where you spend your time and CZML isn’t the answer to every problem. Many of us are hard at work on 3D Tiles, which will provide a major upgrade to Cesium’s rendering capabilities for massive geospatial data sets. These are the types of datasets that CZML (or KML/GeoJSON/TopoJSON for that matter) will never be equipped to handle on the web. However, CZML in some form will most likely play a role in styling these datasets in the future. It’s true that this has taken some time away from CZML, but rendering massive data is so important to many people that the decision here was pretty easy. That being said, once the 3D tiles specification has stabilized and shipped with Cesium (hopefully sometime in the Spring), I expect new CZML features to have fallen out of it as a result. For example, work on vector data on terrain that will be done as part of 3D tiles will go a long way to help use expose that feature via the Entity API (and from there to CZML).

Hopefully I addressed any concerns you have, but if not I would love to hear more about what you would like to see happening. CZML’s primary goal is to expose the features of Cesium in easy to use declarative styling and as long as Cesium is around, I expect CZML to be here too.



Thanks for the info Matt. Wow, I wasn't quite expecting that much :slight_smile: It wasn't a complaint or anything of that sort. I apologize if it seemed like it was. It was more of an observation that it isn't updated as frequently as some of the other items and I was wondering if it was penciled in to be a long term thing because I use its pretty heavily right now. I didn't want to continue down my current path if I should be focusing my efforts elsewhere.

That being the said, do you recommend something else? I use the entity API a lot as well just for rendering items on the globe and working with them. I use the animation capabilities a lot to though and it was simpler at the time that I started to use CZML to gen up the data and start it playing. I ask because some of the things I do are quite a good bit of data as well.

Thanks again

No worries (I hope I didn’t come off as defensive). I try to answer questions like this thoroughly because it helps others searching the forum for information or provides something for us to link back to if the topic comes up again anytime soon.

As for your question, while I don’t know the exact details of your usage, if you’re sending data to cesium from a web service, especially time-dynamic data, or you are generating data offline for loading in Cesium later, then CZML is certainly the way to go. If you are generating a lot of static vector data, then CZML is still currently your best option, but that’s an area where you’ll want to migrate to 3D tiles in the future when hey are available. If you already have a bunch of data in another standard or proprietary format, then writing a CustomDataSource that loads it via the Entity API may be a better route than conversion, but the file needs to be friendly enough to be parseable client-side.

Hope that helps.

good news regarding the future of CZML and updating the CZML documentation.
I am developing a prototype CZML library in scala at:

I rely totally on the documentation, as I am not a user of cesium, just writing the library.
I came across a few frustrating elements of the specs, such as (my understanding) cramming a lot of info into a single field, that eventually can be a double or a string or an array of things
depending on other fields.

Having the examples is a great source of information. I look forward to some more czml files that can exercise a number of typical and more exotic features of the specs.

@ringowathelet it’s great to see your project on GitHub now. Let us know when it is ready and we’ll help spread the word on the Cesium website, social media, etc.

  1. Today’s PR added support for model articulations and transformations in CZML

@Greg/Scott - do you want to write a short tech blog post on CZML/glTF interop? It would be of interest to the Cesium and glTF communities.