2020 was another great and busy year for us at Cesium. Among other things, we added CesiumJS underground support, released Cesium OSM Buildings and Cesium Stories on Cesium ion, and improved the cesium.com technical documentation. Of course, we also announced our work on Cesium for Unreal, to release on March 30 - open source and free.
The Cesium for Unreal release will be amazing, but we’re just as excited about what comes next. We’re especially focused on CesiumJS, but also looking at the tilers, curated data, and other Cesium ion features available to your apps.
Please help us prioritize the areas that matter most to you from Cesium in 2021. Even a simple for a particular feature is valuable to us.
Here’s a short list of what we’re considering. Which are most important to you? What’s missing?
Visual quality improvements for CesiumJS - What specifically?
CesiumJS camera improvements - How would you like to see if improve?
Increased CesiumJS support for glTF - Compressions, optimization, PBR, other?
CesiumJS support for upcoming 3D Tiles features (Issues)
More terrain data and related improvements (like terrain as 3D Tiles, bathymetric 3D data for your apps)
A revamp of the Sandcastle app, and new/improved Sandcastles - Please share ideas and suggestions?
Learning Content - New tutorials, reference guides, and sample apps - Any volunteers?
Commercial Cesium ion tiling improvements (tiler enhancements, additional data formats, additional error handling and insight)
Developer tools - What specifically?
We’re also planning a CesiumJS bug bash to clean up our backlog, so tell us which open issues to prioritize.
Quick feedback, detailed responses - we want it all. We also pay attention to the 's on GitHub issues, so take a look there for inspiration. We’ll keep this thread open all year, but we’re hoping to get the majority of your input in by the end of March .
As always, thank you for your help. This is the 10-year anniversary of CesiumJS, and, as in the beginning, your work continues to be what motivates us.
Shehzan Mohammed and the Cesium Team
First off thanks so much for all the work on Cesium. It’s been really great to use and nice seeing it evolve over the years. Happy 10 years!
Some things that stand out for us that would take cesium to the next level:
Some sort of post-processing for raster data sources would open up a lot of really cool uses
Consider post processing for imagery layers to enable analysis · Issue #8110 · CesiumGS/cesium · GitHub
Perhaps related to this issue is support for loading in GeoTiffs and in particular Cloud-Optimized GeoTiffs into Cesium
Better functionality and/or more examples/documentation for handling display of non-Earth cases (lunar, mars, etc). Some functionality like clamped to terrain features don’t seem to work as well in those cases.
Using Cesium for exploring Polar data. I’m not sure if this is a feature request or possible in the current Cesium, but it would be nice if there were a way to load high-resolution datasets in a polar-friendly projection/tilegrid
I’m looking forward to the bug bash. I’ve got a bunch of bugs on the backlog (you can search GH issues for
author:my_github_name, or even
commenter:my_github_name) and it’ll be good to close out a few of them. I’m going through the list now to add to the ones that are still relevant. ETA: unfortunately I don’t think that reactions are going to be very helpful for prioritizing. The most 'd “type - bug” issue has 4 of them.
I don’t want that to sound like a slight – the project is very stable and performant overall! – I’m just already happy with the feature set and can’t think of anything new I “need” to see added.
Hi Shehzan and team, firstly, it has been a pleasure using CesiumJS, thanks for all the work that has been put in.
A few things we would love to see come out of Cesium in the future:
- Depth plane causing clipping artefact - issues/7879
- Camera.changed event not fired when camera.roll = 0 - issues/9403
Cesium ION Tiler & On Premise ION Engine:
- Coordinate reprojection & Tiler improvements when far from origin
- Currently tiled models when far from their origin produce unexpected results
- Heading/pitch/roll properties are assigned when not passed as arguments to the tiler
- Lat/Long position not accurate
- Geometry is faceted and reduced quality when their type is of BIM/CAD
- Workaround is to get the centroid of the model and save these coordinates
- Move the model to 0,0,0 about the centroid
- Convert saved coordinates to EPSG:4326
- Tile the model with input converted coordinates
- Expanding on tileset.json and Cesium3dTiles properties, auto set the tile type when tiling; If the type is PHOTOGRAMMETRY or BIM, enable a way of getting this type when querying a Cesium3DTileset in CesiumJS.
- Vector tiles (I see this is already on the roadmap – looking forward to this)
- Additional formats for BIM models: IFC
- Per-feature selection for tiled BIM/CAD models – would it be possible to get any properties assigned to individual elements in the original file (e.g. IFC)? And to change the visibility of these elements also? Similar to the cesium/Bentley sandcastle: Cesium Sandcastle.
- There is also an interesting article on this where the author creates b3dm files from decomposing IFC files: IFC - 3DTiles. This allows for individual IFC components to be queried, exposing the properties assigned to the component. This is where we want to be.
- ION engine tiler: conversions persist in temp: Conversions persist in temp
- Vector Data
- Improve performance of GeoJSON, kml etc.: Assuming this will be addressed in issues/25
- GeoJSON standards don’t include anything for styling. In Cesium, we can add styles at runtime, but not compile time. Several other providers such as OSM and MapBox have implemented their custom styling spec for GeoJSON. Would it be possible to include a style spec for GeoJSON within CesiumJS? Not sure how this would affect the vector tile roadmap.
- Support for WMS vector formats – ArcGIS/MapBox… vector maps
- Render layer always on top when height is defined
- We have created a simple widget, but this is obscured by other geometry in the scene
- Billboards always on top option
- BoundingBox property, as opposed to just BoundingSphere
- Scene Ray methods
- Make methods such as scene.getpickray public
- The camera can sometimes lose its reference and take the user to a position far from the last position, this normally only happens when navigating underground
Thanks, and sorry for the long post!
Setting transparency of specific nodes of models! It’s been asked about a lot but no progress has been made on it.
It does not work on 80% of the computers here. I would like to see it working on more computers even if it means to cut some of it’s extras.
I would love to see integration with Node Red - maybe directly in the Node Red Worldmap as it currently has a MapboxGL implementation that is struggling with 1000 objects >_< node-red-contrib-web-worldmap (node) - Node-RED
It is already possible to see objects under the surface, it would be interesting to be able to extend the terrain, to see the bottom of the sea, even locally
There are public data freely available for Denmark with much better accuracy than the default terrain. Please consider incorporating it. I’d be happy to point you in the right direction.
Better Navigation, desktop.
Zoom by scroll sometimes behaves eratically. I believe this is caused by the speed being scaled to the distance to where the mouse is hovering.
When approaching an object, progression is increasingly slow, but immediately once you pass the object progression is lightning fast. Please improve
Better Navigation, js, mobile.
Trying for a few minutes, I found it to be nearly unusable.
Hello all Happy 10 anniversary to Cesium
A revamp of the Sandcastle app, and new/improved Sandcastles
I would like to see a more modern design and the ability to install 3rd party libraries
Learning Content - New tutorials, reference guides, and sample apps
A new section in the documentation with Community open source related stuff (such as tools, integrations, libraries, etc) would be beneficial.
IMO creating an entity on a map (polygon, polyline…) is very common use-case. cesium should have a basic entity creation viewModel.
Happy birthday We (TerriaJS) couldn’t do what we do without you.
The most valuable improvements to Cesium for us would be:
- Visual quality improvements, particularly to vector rendering. Cesium’s lines and polygons are often very aliased. People I talk to often unfavourably compare Cesium’s rendering to Mapbox’s, and while Cesium is much more sophisticated and therefore has to solve rendering issues that Mapbox doesn’t, aesthetics are important! Our end users don’t understand why their data doesn’t look as good in Cesium as it does in Mapbox.
- Vector rendering performance. We commonly work with large GeoJSON files (and other large vector datasets) that perform poorly in Cesium. We often have to resort to using GeoServer or similar to rasterize these datasets, which doesn’t look as good.
- Updates on the future of the 3d-tiles vector specification. Vector 3d-tiles would be very valuable to us, for aforementioned large vector datasets. We’re not sure if we should be planning on supporting vector 3d tiles or whether we should be looking at figuring out how to make Mapbox Vector Tiles work instead.
- Better documentation for Cesium Ion so that we can more easily prepare our datasets and understand why something fails to tile.
Keep up the awesome work!
I represent MEZA, a French non-profit organization, which develops the basis of a free and decentralized 3D Web,
As far as we are concerned, we would like to find a tool that easily allows to generate 3D terrains and extruded buildings in different collada files, to import them in Web3D, to then put realistic models of real human constructions, etc
Here is an example of simplicity : http://terrain.party/
but adapted for the needs of dimension, transformation of elevations for the scales of 1 to 1/1000, etc
This 3D Web, is not only a virtual reality to walk around in a set.
It includes avatars, a toolbox of internal content development:
- Interaction scripts including interfaced with external data
and all this for multiple collaborative uses accessible to the greatest number of people because a computer, even a low-end one, can be connected to it, use it, etc.
What do you think about it?
Are you ready to discuss it?
Who knows! See you soon maybe
I am new to Cesium, but it looks very impressive for visualisation of terrain and geology.
It would be useful to be able to easily add local patches of geological surfaces, mostly below ground level, but also above. i.e. x,y,x as a grid preferably. Currently this can be done with polygons but it takes some re-formatting before loading into Cesium.
I have to admit I found the data loading (of what I thought were very simple files) quite confusing, (promise, await etc.) although it is explained in the tutorials.
An account on Sandcastle to save our own examples.
Sprucing up of entity relationships. So far they are quite basic in that they can’t be related to each other (parent-child only controls visibility). I’d like to see a set of entities being controlled by a parent entity in position, name, deleting the parent deletes the children, etc.
Currently the Cesium Ion Asset “Cesium World Terrain” is providing ellipsoid elevations
It would be really nice to have a Cesium Ion orthometric terrain Asset such as:
“Cesium World Terrain EGM96”
allowing viewer.terrainProvider = Cesium.createWorldTerrainEGM96
providing the existing terrain data with the EGM96 Geoid offsets applied, so ocean shorelines are at an elevation of 0
perhaps “Cesium World Terrain EGM2008” but at least EGM96 to help assist in displaying and generating kml on the fly
the terrain example Cesium Sandcastle using Cesium.ArcGISTiledElevationTerrainProvider , returns orthometric elevations, but doesn’t have the performace of the Ion Assets, and the performance in picking detailed elevation information