Ideas for Cesium code sprint

Hi all,

The Cesium team at AGI is having our code sprint soon. It is a focused three days where we scope projects so we can finish them and have a lot of fun doing it.

Please let us know if there is anything you would like to see us work on or if you want to +1 any of the items we are considering:

  • glTF 1.0
  • WebGL 2
  • Fog
  • Review/merge outstanding pull requests
  • Tutorials on KML, GeoJSON, and time-dynamic Entity API
  • Improve contributor guides, e.g., code, doc, test guidelines
  • Port Cesium build process to Node/Gulp

Let us know your thoughts by Tuesday.

Thanks,

Patrick

Also, as part of the code sprint, we are going to rethink the Cesium mission statement:

Our mission is to create the leading web-based globe and map for visualizing dynamic data. We strive for the best possible performance, precision, visual quality, ease of use, platform support, and content.

Cesium has clearly grown way beyond “for visualizing dynamic data.”

Join us 5pm - 5:30pm EST on Tuesday, October 13, for the discussion. I will start a forum thread “Cesium’s mission” for live discussion then.

Thanks,

Patrick

Patrick,

Terrain exaggeration would be a nice feature.

Jerrold Stoy

Good idea! I’ll add it to the list (no promises that someone will do it though).

Patrick

I would love to see the following referenced in another post I had:

https://groups.google.com/forum/#!topic/cesium-dev/sIVLqOhv3oQ

Boils down to the beautiful ability to have a “Glowing Particle Line/Point Effect”.

There appears to be other competing product that exist that do support this kind of material? visualization? that appear to be “more advanced” than Cesium.

I really hope Cesium considers including this feature (if it is possible under the Cesium framework) as I do not think there are any other visual benefits of the that product.

Patrick,

Not sure how much more work is needed to complete the Compass Navigation Widget, I remember showing the Summer of Code link (https://github.com/AnalyticalGraphicsInc/cesium/wiki/Google-Summer-of-Code-Ideas-2015) too a couple of people and they thought it was pretty neat!!!

Jerrold Stoy

Hi Patrick,

Some features that would be nice to have (no idea how much work they are):

And a +1 for the Compass Navigation Widget.

Thanks, Willem

Thanks all, great ideas!

@Willem although there’s still more work to be done throughout Cesium for z-ordering, have you seen the new GroundPrimitive in Cesium 1.13 that supports z-order: http://cesiumjs.org/2015/09/01/Cesium-version-1.13-released/

Patrick

Hi Patrick,

Thanks. The GroundPrimitive looks very nice, but I meant a z-order for entities.

So I can specify a line (path or polyline) with a label (LabelGraphics) and billboard (BillboardGraphics), where the label and billboard are on top of the line. Currently this can only be done by using the eyeOffset of the label and billboard.

Willem

Hi Patrick,

we would like to see progress in the 3D-Tiles branch, and especially unloading for the B3DM Tiles. We also started to write some unloading code which you can find in our cesium fork. https://github.com/virtualcitySYSTEMS/cesium/tree/3d-tiles

But its a really rudimentary approach.

Also we would like to see an addon for the 3d-Tiles tiles.json specification and the code. We had some problems with really large areas, where the tiles.json file reached 60mb and more. So some kind of branching or streaming to load only parts of the tiles.json file would be nice.

Thanks,

Jannes

Hi Patrick

as you were informed by Eric Lemoine, camptocamp and swisstopo are working on

adding 3D capabilities to the swiss geoportal [1] using cesium. Work is progressing

fine…and it simply looks amazing!

There are a couple of things related to cesium that is of some concern to us because

it has a huge impact on the cost of operations (mainly volume of data transferred);

which would lead to the unfortunate effect to heavily reduce the 3D appeal to our clients.

A quick analysis has shown that, depending on intial view LOD and state, 50-80% of

actual data loaded is not used for the final view. The analysis was done with terrain and

one draped layer onto the terrain.

We are currently investigating our options to influence cesium loading strategy, especially

in our use case where views are typically limited to a small part on the earth.

We would also be interested in current possibilities to tweak Cesium to:

  • influence current loading strategy of cesium

  • apply fog in distance

  • dynamic maximumScreenSpaceError (based on distance, LOD, etc)

  • generally reduce tiles/terrain loaded

Are there near term plans to address those kind of issues?

Best wishes

Gilbert Jeiziner

swisstopo

[1] https://map.geo.admin.ch

Would love the CZML-Writer updated if possible.

Thanks for all the great ideas!

@Jannes

we would like to see progress in the 3D-Tiles branch, and especially unloading for the B3DM Tiles.

Good idea, but the scope for this is too large for the code sprint. Cache replacement will actually be one of the last things we implement before we merge this branch since we want to finalize the loading strategy first so we don’t have to rework the cache replacement multiple times.

Also we would like to see an addon for the 3d-Tiles tiles.json specification and the code. We had some problems with really large areas, where the tiles.json file reached 60mb and more. So some kind of branching or streaming to load only parts of the tiles.json file would be nice.

This is on the roadmap, but, again, is not scoped for the code sprint. See the 3D Tiles FAQ.

@Gilbert

Make sure you are using the latest version of Cesium as we added some terrain bounding volume optimizations in Cesium 1.11.

apply fog in distance

No promises, but this is on our short list for the code sprint. I expect it will provide a huge improvement to both the number of tiles downloaded and rendered.

dynamic maximumScreenSpaceError (based on distance, LOD, etc)

With WebGL 2 occlusion queries, we may use VMSEE - Virtual Multiresolution SEE, which basically says that the more occluded a tile is, the lower the LOD can be. This is part of the plan for 3D Tiles.

@Brian

I don’t know that we’ll get to the CZML-Writer project at this code sprint, but several new CZML examples are coming out in Cesium 1.15 (#3050 and #3072).

Patrick

The top of my whish list would be an orthometric terrain provider and the ability to work with othometric elevations rather than ellipsoid.

currently to get things to render properly with terrain I’m hitting the bing maps api to get a geoid to apply to my orthometric elevations

Hi everyone,

Thanks for all of your feedback! If you're interested in a summary of what happened during our Cesium code sprint and links to what everyone worked on, please check out the post I wrote for the Cesium Blog.

Thanks,
Gabby Getz

@Gilbert - after the code sprint, we added fog to Cesium to cull tiles completely in fog and increase the SSE for tiles partially in fog. This will be in Cesium 1.16 on December 1. Here are the details:

http://cesiumjs.org/2015/11/12/Fog/

Patrick

Hi Patrick

yes, we already succesfully integrated fog into our application. Very
nice features and it reduces amount of data loaded considerably.

Thanks alot for keeping me in the loop and the efforts for the fog.

Gilbert

Wow, you guys are fast; we just merged it to master a few days ago. Are you using the default fog parameters or did you tweak them for your use case?

Patrick

We tweaked them to 0.0001 for density and 25! for sse. So it's probably not the final setting.

See https://github.com/geoadmin/mf-geoadmin3/pull/2860

(Please note that test links in PR above should not be distributed
widely)

Gilbert

Wow, 67% fewer data transferred with fog - that is great news!

Patrick