Time availability for 3D tiles

Hi everyone! I opened a pull request a while ago, and I’d love to get some additional feedback on it.

https://github.com/AnalyticalGraphicsInc/cesium/pull/8488

I added an optional field in the tileset.json file that allows the user to specify an availability window per tile. If the current time is outside of a tile’s availability it will be excluded from the selectedTiles array. This is a helpful feature for those making animations by reapplying styles (https://cesium.com/blog/2018/11/08/weather-prediction-data-time-series-and-3d-tiles/) as the clock time changes because the style is only applied to the tiles in the selectedTiles array, yielding a substantial performance gain with very large or dense datasets. The usecase that drove this is visualizing high density airborne radar data. I have a link to an example in the pull request for anyone interested to see the application. It shows data collected by HIWRAP aboard NASA’s ER2 during the OLYMPEX campaign (https://ghrc.nsstc.nasa.gov/hydro/details/gpmhiwrapolyx).

Some of the benefits of this over the existing TimeDynamicPointCloud are (I use “frame” to refer to the content being displayed in a given instance of time):

  • You can further organize your frames by levels of resolution.
  • You don’t need to duplicate points across frames if it lingers longer than the time difference between frames.
  • You can add time dynamics to existing tilesets by simply modifying tileset.json.
  • This allows for time dynamics for tile types other than point cloud.

I’ve really enjoyed using Cesium, and I hope that my small modification can be useful for other developers too.

Thanks for sharing this here Brian!

It’s really cool reading about the larger context this project was created in. Hopefully we can get someone to look at that PR soon!