What do you want to see from Cesium in 2019?

Hi everyone!

2018 was a big year for the Cesium team. We saw the addition of some long awaited CesiumJS features and improvements, as well as the release of our Cesium ion platform with support for 3D tiling. We want to make 2019 just as productive!

Let us know what is important to you for Cesium,****3D Tiles, glTF, or beyond. Some topics already on our radar include:

  • Improving 3D Tiles streaming performance

  • Terrain and imagery streaming improvements, #7061, leading up to terrain on by default

  • Polylines, #7437, and textured ground primitives, #7434, on 3D Tiles

  • Interoperability with other WebGL engines

  • Improved label quality, #5022

  • Subsurface/undersea visualization, #6047

  • TypeScript definitions, #4434

  • ES6 modules
    Feedback on****the Cesium ion SaaS platform,3D Tiling Pipeline, or 3D analytics SDK is more than welcome as well. For 2019, we’re looking at:

  • Improved BIM/CAD support

  • Vector data support

  • More GPU-accelerated analytics

We want to hear from you! Any and all feedback is valuable. Is there something else you want to see? Are any of the above features applicable to you? Even a +1 for a specific feature will help. We’ll keep this thread open all year, but we’re hoping to get the majority of your input in by the end of January.

Thanks and happy New Year!


The biggest thing for us would be better performance for dynamic map features. We pretty much can't use the Entity system because its too slow. There are also issues with polylines and other shapes flickering when updating.

Need to be able to update lots of polylines (add, remove, move points) as well as other shapes.

Our software currently has several workarounds using undocumented private variables / functions to try and fix performance issues, especially related to updating polylines. I've noticed when looking at the performance tab in Chrome, Cesium appears to be re-creating geometry and allocating buffers all the time instead of re-using them.

Not sure if it would be possible to take advantage of the new OffscreenCanvas support to move all the Cesium rendering code into a web worker?

This is super valuable feedback Scott, thanks for sharing this.

I’m aware of a few flickering issues (here, and here). I don’t think we have a lot of documented cases of performance issues. If you have the time it’d be awesome to get more details in a GitHub issue. Especially hearing about your application requirements would be very useful (is it just a small subset of polylines that needs to dynamically move at any given time? Is it all of them? Are they all in view?) as well as what you had to do to make it faster I’m sure would be very helpful to the community.

I wish html support on labels :slight_smile:

+1 for Typescript definitions and ES6 modules.

It would also be great if we could have detailed documentation on the use of https://api.cesium.com/ API (related issue on Github https://github.com/AnalyticalGraphicsInc/cesium-ion-community/issues/29)

Thanks and happy new year!

Thanks Scott, ihsanergun, and Aristeidis!

So far we have some CesiumJS suggestions for improving entity performance and HTML support in labels.

The api.cesium.com API is open, and we already have some integrations using it. We’d love to see more and adding documentation would definitely support that!

Great suggestions so far. Keep the ideas coming!

Something I ‘was’ planning on working on till I grabbed onto a new project, was the ability to add stream lines into CesiumJS overlaying data> The intent was for use with weather, climate, and migration data but I can imagine it could be extended to a great many other arears.

I wish html support on labels :slight_smile:

I wish html support on labels :slight_smile:

Let us know what is important to you for Cesium, 3D Tiles, glTF, or beyond. Some topics already on our radar include:

Hi Gaby & Omar;

+1 on your radar.

Some ideas:

On the classification topic :

Capacity to classify an entity in a similar manner we can do with terrain and 3D Tiles: ex : Cesium.ClassificationType.ENTITY

  • if an entity is placed (statically or dynamically) into an classification volume, classification is applied also on the entity.
  • classificationType could becomes a list in such case [Cesium.ClassificationType.ENTITY,Cesium.ClassificationType.TERRAIN]

Capacity to combine properties from both classification features & the classified feature and apply styling on the combined set of properties on the classified feature.

  • The classified feature properties are extended by the classification feature(s) it belongs to (inside).
  • REPLACE,EXTEND,IGNORE option to help to drive what to do

Happy New Year;


Hi, if the MaterialAppearance is supported as a attribute for GroundPrimitive would be a cool thing.

在 2019年1月3日星期四 UTC+8上午12:51:36,Gabby Getz写道:

Something I ‘was’ planning on working on till I grabbed onto a new project, was the ability to add stream lines into CesiumJS overlaying data> The intent was for use with weather, climate, and migration data but I can imagine it could be extended to a great many other arears.

Tim Dunn

That sounds like it could definitely be pretty useful, especially since I know a lot of people use Cesium for that kind of data. Do you have any links that show what this sort of effect should look like? And were you thinking of implementing it as a shader/material/post process or as dynamic geometry/entities? It might be cool to document it in a GitHub issue and see if anyone wants to implement it.

also like it html will be great help


I’m not sure what you mean, can you elaborate a bit on that?

Do you mean being able to set textured materials on polygons clamped to ground? If so, this was just added!


It should be available with the next CesiumJS release.

Hi Omar
Thanks, some addon on classification

Those are definitely very interesting ideas! I’m learning that the classification system can be incredibly powerful, and we’re getting support textured materials classifying 3D Tiles soon (https://github.com/AnalyticalGraphicsInc/cesium/pull/7434). Can you share a few examples of what kind of applications you’re using classifications for? Or what those proposed features would allow you to do?

One typical use of a classification tileset is to add information over a point cloud tileset (poor in semantic) or the terrain. Hereafter an example (vctr over pnts).


But for example if the classified tileset has some properties (like buildings below) it could be interesting to :

  • temporary combine properties from a building feature & the active classification feature it belongs to.

  • apply a dedicated style on the buildings to show a particular rule based on a mixed of both building properties and the active classification feature properties it belongs to, but keeping green terrain,vegetation and buildings which don’t follow the styling rule.

Perhaps there are some way to already do it with the OOTB, but I didn’t investigate as of now.



If there will be an option to switch shading on/off for 3D tiles buildings, it would be awesome.

Add new one ,the GroundPrimitive should be support more geometry ,such as custom geometry(Cesium.PrimitiveType.TRIANGLES).By then, meteorological and environmental data which saved as grid could be add in Cesium.

在 2019年1月3日星期四 UTC+8上午12:51:36,Gabby Getz写道:

I know a few people have requested custom geometry before, and you can do this right now in Cesium if I’m not mistaken, it’s just not documented very well.

Do you have any links or references of what this kind of data looks like? Or are there any standard formats for it?

Just like this grid picture , the river boundary divided into many triangles or rectangles(a rectangle consist of two trangles),each vertice in trangle has a value which represents water temperature.

Now,I want to draw water temperature by custom geometry and GroundPrimitive on terrian ground,but It seems current version doesn’t support custom geometry for GroundPrimitive .

DeveloperError: Not all of the geometry instances have GroundPrimitive support.

Another example for weather data:


在 2019年1月16日星期三 UTC+8上午4:01:06,Omar Shehata写道:

I would love to see a couple things:

1) Improved performance for paths. When I have dozens of paths each with hundreds of points, performance takes a really bad hit. I think this issue may address it: #2310.

2) Support for partial ellipsoids (pull request #5995). I think it is almost ready for prime-time, but if the team could help get it past the finish line, that would be great!


Thanks for the feedback Steven! For the path performance, I see there’s some technical discussions on the issue about it (https://github.com/AnalyticalGraphicsInc/cesium/issues/2310). One thing I try to learn from the forum is the context for all these features. Can you share a bit about how you use these paths in your application(s)? Do they tend to span hundreds of kilometers or more local areas? Are they dynamic/changing from frame to frame?

Would love to finally see dynamic billboard update handling / texture reuse (refs: https://github.com/AnalyticalGraphicsInc/cesium/issues/2094 , https://github.com/AnalyticalGraphicsInc/cesium/issues/2319 ).