3D Tiles: the next big step for Cesium and 3D geospatial

Folks,

We’re happy to announce the next big initiative from the Cesium team: 3D Tiles.

3D Tiles are an open specification for streaming massive heterogeneous 3D geospatial datasets. They are the foundation for the streaming 3D buildings demos we developed, and will be the foundation for streaming point clouds, trees, vector data, and other massive geospatial datasets. We already have significant progress towards the spec and Cesium’s implementation, and expect things to stabilize in spring 2016.

What can you do to help? We appreciate you showing your support by spreading the word on twitter and staring the spec’s repo. If you are feeling adventurous, start looking at Cesium’s 3d-tiles branch. Soon, we’ll have publicly available sample data to use from our friends at CyberCity 3D.

For more info, see Introducing 3D Tiles on the Cesium blog.

I believe 3D Tiles will be at least as impactful to the geospatial field as Cesium itself. Looking forward to your feedback!

Patrick

Hi Patrick, all,

We're happy to announce the next big initiative from the Cesium
team: 3D Tiles.

First of all, thanks for publishing this most interesting work !

3D Tiles are an open specification for streaming massive
heterogeneous 3D geospatial datasets. They are the foundation for
the streaming 3D buildings demos we developed, and will be the
foundation for streaming point clouds, trees, vector data, and other
massive geospatial datasets. We already have significant progress
towards the spec and Cesium's implementation, and expect things to
stabilize in spring 2016.

If I understand well the process, you published a first state of the
specification, with some parts almost finished, others as prototype, and
some which are only drafts and ideas.
From now on, the design and redaction of the specification will take
place on GitHub through Pull request, from AGI and whoever wants to
contribute. Is it right ?

Do you have intentions of porting this work towards the OGC ? Are some
members of OGC SWGs participating to, or at least aware of the 3D Tiles
specs ? The 3D Portrayal SWG could probably be interested.

Another project which may be interesting to associate is the
PointDown initiative, working (outside of OGC) on PointCloud formats and
protocols, especially in a web context.

Other question, do you plan to release server-side tools for
implementing the specification as opensource at some point ? Or will AGI
keep the same position as for terrain data ( Open Spec, freemium
streaming service) ?

Looking forward to see this whole plan growing !

Vincent

I hope that however the 3D tiles spec turns out, that there is a good interoperability story around being able to leverage existing 2D spatial datasets that can be extruded into the third dimension via some elevation attribute.

  • Jackie

Potree is a free open-source WebGL based point cloud renderer for large point clouds. Similar to map software like Google Maps or OpenStreeMap, only data inside the visible area and up to a certain level of detail are loaded.

General infos, downloads, showcase, etc. at potree.org

Github: https://github.com/potree/potree

在 2015年8月11日星期二 UTC+8上午12:52:23,Patrick Cozzi写道:

Hi Vincent,

Thanks for the interest!

From now on, the design and redaction of the specification will take place on GitHub through Pull request, from AGI and whoever wants to contribute. Is it right?

Yes. For contributions outside of AGI’s Cesium team, we’ll need to get a CLA in place, but I don’t think it will be a problem (#12).

Do you have intentions of porting this work towards the OGC ? Are some members of OGC SWGs participating to, or at least aware of the 3D Tiles specs ? The 3D Portrayal SWG could probably be interested.

With 3D Tiles, our initial focus is to get heterogeneous streaming 3D content into Cesium. I have not personally talked to OGC, but I agree this could complement 3D Portrayal SWG since 3D Tiles define the streaming format itself.

Another project which may be interesting to associate is the PointDown initiative, working (outside of OGC) on PointCloud formats and protocols, especially in a web context.

I have not talked to the PointDown crew specifically about 3D Tiles, but I have talked to them when they first started PointDown. Cesium’s requirements, e.g., for high-precision vertex positions, temporal visualization, etc., will likely make the 3D Tiles’ point cloud payload more involved than a typical point cloud app would want, but I am happy to dive deeper here.

do you plan to release server-side tools for implementing the specification as opensource at some point ? Or will AGI keep the same position as for terrain data ( Open Spec, freemium streaming service) ?

Yes, I expect AGI to have a similar position for 3D Tiles as terrain. I also expect that parts of the server-side tools will be open-source; for example, AGI is a major contributor to the open-source COLLADA2GLTF project.

Patrick

Hi Jackie,

I hope that however the 3D tiles spec turns out, that there is a good interoperability story around being able to leverage existing 2D spatial datasets that can be extruded into the third dimension via some elevation attribute.

I agree, this will really help demonstrate the value of 3D. Just like KML and the Cesium API, 3D Tiles will support extrusions and, of course, full 3D content.

Patrick

GHT - for potree, see #19.

Patrick

Nice work so far on 3D Tiles team Cesium! Reminds me of RenderMan procedural primitives. I’m looking forward to having a play…

Chris

Wow, looks really awesome! From what I’ve read, this might be an excellent way of visualizing 3D weather over time. Would you agree?

@Chris - thanks for sharing. That link doesn’t work for me, but I took a quick read through this: http://renderman.pixar.com/view/appnote23. Are there any related papers you recommend?

@Mike - thanks for the interest. What source data do you have in mind for weather? We have to do some research on making the temporal aspect of 3D Tiles really fast. Right now I am thinking something like uniform subdivision across time with each tile having a window of the time-tagged exploiting temporal coherence for compression (as opposed to a separate tree per time stamp). A lot of the techniques for streaming video can be applied. Details are still TBA…

Patrick

Patrick, I doubt I can answer knowledgeably because I know only a little, playing with GRIB data in a past job. It seems to be one of those things that seems simple until you dive a little deeper, but I’ll give a shot at it. So Grib data gives you a gridded data set with timesteps, often these grids have an altitude component as well. Each dataset ends up with a numeric value at its point so you end up processing many grids to get a holistic view, but the format is standard. Here’s where I lose context, but I could imagine processing a grib dataset into 3D tiles, perhaps making a single 3D tile for a cube in 3D space over time (4D tile?) as you say. The models for these spaces would be super simple, maybe just a cube with a color depending on the value of the GRIB data at that field, and you’d get a good idea of the weather by looking at the sum of these cubes in your viewing area… If any of this is possible, it could become another killer app for Cesium. Imagine flying around the thunderstorm cloud that’s just passed overhead in 4D!

While I’m no expert either, I think GRIB data is definitely an ideal source of 3D Tiles for visualizing weather and there’s a lot of free datasets out there for us to experiment with. Of course weather data is probably low on the totem pole compared to vector data and point clouds, but long term I could definitely see it happening.

Here’s a few videos of 3D Tiles. The last three show debug views that help explain how 3D Tiles are used for streaming:

Slides for the 3D Tiles talk at the SIGGRAPH Cesium BOF are now up: http://cesiumjs.org/presentations/SIGGRAPH2015/Cesium3DTiles.pdf

Patrick

Hi Patrick.

Do you have any ETA on when the core spec and loading of 3dtiles are into a master/release?

The solution I am working on atm involves tracks from cars and at this point I am going with a solution of converting to mapbox vector tiles which will be replacing data as we zoom in. I know that the vector tiles part of 3d tiles is not in near release time, but if the core spec loading is included I dont see anything stopping me from making my own small vector tiles with adding more details for the paths as the user zooms in specific for the solution I make now. (the goal here is to learn mostly, as of the quickest solution right now is just to put it all in a geojson format).

So would be fun to try make my own little 3d tiles stuff for some gps tracks if the loading stuff is going into the master branch in near future.

Poul - see https://github.com/AnalyticalGraphicsInc/3d-tiles#Can-I-use-3D-Tiles-today

Patrick

I did, so the plan is to keep it in a different branch until spring 2016? or will some parts be merged into master as we go?

I will see if I sometime near future can get the build system setup such I can try things in the other branch otherwise. This was a rather painfull step back when using ol3 due to the hole core team using unix, so there was not much help/motivation to get the build running on windows.

Hi Poul,

the plan is to keep it in a different branch until spring 2016?

Yes, we need to finalize the spec before bringing the implementation into master.

will some parts be merged into master as we go?

Also yes, but these will be low-level implementation details like improvements to glTF.

Patrick

Folks - here’s a quick progress update on 3D Tiles. We are

  • Putting the finishing touches on glTF to move it from 0.8 to draft 1.0 with a complete spec. This is core to 3D Tiles since a few of the tile formats (e.g., batched models and instanced models) are built on glTF.
  • Adding the Cesium features needed to support vector/geometry tiles (think KML use cases more than just polygons, polylines, and points). For example, Cesium 1.13 included polygon ground clamping.
  • Bringing Sean up to speed on the Cesium renderer so he can add WebGL instancing to the renderer and then instancing to 3D Tiles for trees, rocks, etc.

Patrick

Perfect! I cannot wait to try stream by myself. But how can i convert a large data with lots of kml files to a 3D tile file?