Cesium in 2015 - Kickoff


Following up from 2014 review, let’s talk about what is on the roadmap for 2015. The AGI team is looking at these broad areas:

  • High-level Entity API
  • KML
  • Polygon, polylines, billboards, and labels clamped to terrain
  • Streaming 3D buildings
  • Streaming point clouds
  • Streaming vector tiles
  • WebGL 2
  • More tutorials and demos. More outreach in general. Google Summer of Code.
    Of these, what do you need most? Besides these, what else is important to you?



In order of importance, I would say:
- Polygon, polylines, billboards, and labels clamped to terrain
- Streaming vector tiles
- Streaming 3D buildings


Based on the deprecation of GE and the various discussions on here, I’d say KML support and clamp-to-terrain ought to be top priorities.

I'd really like...
- Better CZML documentation
- A built-in split view in Cesium

3D buildings would be fantastic. I hope to pair Cesium with Google Streetview splitscreen style like I did with Google Earth and Google Streetview

Without 3D buildings it becomes difficult to navigate this way. Would the buildings be manually created, or through automated methods such as photogrammetry?

Height above terrain would be nice, for proper movement scaling. I’ve tried scene.globe.getHeight with no luck so far.

+1 for Better CZML Documentation


KML support and terrain clamping are probably at the top of my list of needs.

Between better tutorials and high level entity api/implicit properties, I'd say that implicit properties is probably higher priority, since it would invalidate a lot of older demos anyway.

I'll echo the calls for Clamped to Ground (and add models to the list) and outreach and add WebGL 2. Regardless, I'll continue to enjoy the solutions the Cesium community develops here. Best New Year to all... Erik

KML support and Clamped to Ground are as well the most important for me.
KML support will make things easier and faster to quickly display content on the cesium globe.


Hi Patrick,

of these, in order of importance :

* KML,
* Streaming 3D buildings
* Streaming point clouds
* Streaming vector tiles
* Polygon, polylines, billboards, and labels clamped to terrain



Clamp-to-terrain and KML support are the priorities, for me.


Wow, thanks for all the feedback. Keep it coming!

I’m glad to see the interest in KML and terrain clamping as I think these will be the first major new features we see in Cesium in 2015! We’ll start separate threads for the details.

@HyperSonic: awesome video, would love to see that in Cesium. AGI is talking to partners about supplying 3D building data so the details of the data acquisition method are TBA.

More feedback is welcome!


Hi Patrick,

The important areas for me are ordered as:

Streaming 3D buildings (or large number of 3D objects?)

Polygon, polylines, billboards, and labels clamped to terrain

More tutorials and demos. (Personally found converting collada to gltf are tricky)

Just wanna ask, sorry if wrong place, if it’s possible to streaming large number of 3D buildings, like a city, in Cesium now? Possible to use quantized-mesh terrain? (like to stream 3D buidling meshes instead of terrian)

Thank you.



a Cesium newbie.

I'd like to add:

- Reduced library footprint
- Reduced initial startup time

Note: I'm just a newbie.


Out of curiosity, do you have specific concerns regarding footprint and start up time? For example, in my opinion, the deployed Viewer reference app is pretty compact and starts up instantly, even, with an empty cache: http://cesiumjs.org/Cesium/Build/Apps/CesiumViewer/index.html

Also, are you using the AMD modules? While using the combined Cesium.js file is the easiest thing to do, using Cesium as a set of AMD modules via requireJS or browserify will reduce the footprint to only the features you actually use. This, combined with minification works really well most of the time.

Obviously there’s always room for improvement, which is why I was curious as to the specifics.


Hi Matthew,

I also have some feedback about this.

Maybe Helge is speaking about resources footprint?
Cesium default main loop renders also when there is nothing to do,
leading to high CPU/GPU consumption. Especially for smartphones, it
would lead to a better user experience if only necessary renderings
where done. I recently talked with Patrick about this and it is not easy

Loading time may feel 'long' when the camera starts positioned closed to
the terrain: Cesium loads all the imageries and terrain tiles above.
It may be very long if you have many layers.
I wrote a small patch to use a local, transparent, image for smaller
zoom levels. It significantly speeds up loading with several slow layers.
See https://github.com/gberaudo/cesium/tree/transparent_low_zoom

In ol3-cesium, there is code to 'warmup' Cesium when the ol3 map shows
up. Then when the user switches to 3D, the transition is much shorter.


Thanks Patrick! I do plan to do this for Cesium, for now without 3D buildings I could instead rise the camera many meters over the street and look at the imagery of the street side buildings with a 45deg tilt. All I have to do is a 45deg offset between the 2 view tilts. I’ll do a mockup video in GE for now to see how it works in practice.

One cool thing about Google Streetview is the ability to dynamically change FOV_zoom. You can’t dynamically change FOV_zoom in GE, but you can in Cesium. So once Cesium gets 3Dbuildings this splitscreen setup will be even better than it is now! (I say FOV_zoom since ‘zoom’ has become ambiguous: longitudinal translation or FOV camera zoom.)

I suppose using methods such as photogrammetry and LIDAR one is basically obtaining high resolution terrain data. One could view buildings simply as boxy mountains with very steep slopes! I suppose 3Dbuildings is a misnomer if that is their source. Everything is captured this way, be it trees, hills, vehicles, ships, bridges.

Streaming 3D Buildings.....

KML support would allow us to swap out Google Earth for Cesium.

Thanks everyone! I just want to make one last call for feedback if anyone else wants to chime in with their support for features already mentioned or new ones.


if it’s possible to streaming large number of 3D buildings, like a city, in Cesium now?

Not without coding something custom, which some folks have done. I don’t think it will take us long to get an initial version out in core Cesium.