Time flies. It is remarkable to think that CesiumJS just turned ten years old. During that time, CesiumJS has accumulated two million downloads with nearly one million last year alone. CesiumJS brought us from aerospace to drones to underground to undersea to the construction site.
时光飞逝,想想看,Cesium 刚刚满10岁了,在这期间,CesiumJS的下载量达到200万次,仅去年一年就接近100万次,CesiumJS把我们从航空航天带到了无人机,再到地下,再到海底,再到建筑领域。
CesiumJS 1.0 is announced on Twitter in 2014.
You, the 3D geospatial community, have brought CesiumJS to tens of millions of end users. CesiumJS is the cornerstone of Cesium’s open 3D geospatial platform; it is purpose-built, web-based, and built on a completely open technology stack.
因为3D地理空间社区,将CesiumJS带给了数千万终端用户,CesiumJS是Cesium开放3D地理空间平台的基石。CesiumJS是专门基于网络的,并且建立在一个完全开放的技术栈上
I still fondly remember the first code commit (complete with unit tests I may add), the first alpha version with little more than a texture-wrapped ellipsoid, and the first post to the community forum, which now has more than 45,000 posts, among countless other milestones. CesiumJS grew up along with the WebGL ecosystem, and the open source history of CesiumJS is closely tied to that of two now prominent open standards: glTF and 3D Tiles.
我仍然深记得第一次提交代码(包括我可能添加的单元测试),第一个测试版本只有一个纹理包裹的椭球体以及第一个发布到社区论坛的帖子,到现在已经有超过45000个帖子。CesiumJS经历着无数这样的里程碑。CesiumJS是伴随着WebGL生态系统成长起来的。CesiumJS的开源历史与现在两个著名的开放标准紧密相连:glTF和3D Tiles。
CesiumJS’s impact exceeded even my expectations. None of us could have predicted the last ten years and none of us can predict the next ten. I will, however, share our CesiumJS plans for the next year or so.
Based on our vision, your community feedback, and technology trends, the roadmap includes:
- 3D Tiles Next
- glTF: KTX 2.0, MESHOPT, and PBR Next
- Undersea
- Developer comforts
- Learning material and ongoing maintenance
CesiumJS的影响力甚至超出了我的预期,没有人能预测过去的十年,也没有人能预测未来的十年,不过,我将分享我们明年在CesiumJS上要做的计划。基于我们的愿景、社区反馈和技术趋势,要做得路线图包括以下:
- 3D Tiles Next
- glTF: KTX 2.0, MESHOPT, and PBR Next
- Undersea
- Developer comforts
- Learning material and ongoing maintenance
3D Tiles Next
3D Tiles is the open standard for streaming massive heterogeneous 3D geospatial data. It was adopted by the OGC as a community standard, and it has been central to Cesium’s mission of unlocking the potential of 3D geospatial.
3D Tiles是海量异构3D地理空间数据流的开放标准,它被OGC采纳为社区标准,3D Tiles也是Cesium释放3D地理空间潜力的核心任务。
Since we launched 3D Tiles in 2015, we’ve seen several trends and opportunities:
- advancements in AI and machine learning generating semantically-rich metadata
- demand across industries to index 3D geospatial data both spatially and temporally
- the modeling & simulation community’s shift from geotypical to geospecific models
- visualization and analysis using a common spatial data structure
- the need to transmit vector overlays with 3D models
- the growth of the open ecosystem around glTF
自2015年我们推出3D Tiles以来,我们看到了一些趋势和机会
- 在人工智能和机器学习生成语义丰富元数据领域的进步
- 索引三维地理空间数据在空间和时间上的需求
- 建模和仿真社区从geotypical to geospecific的转变
- 使用通用空间数据结构进行可视化和分析
- 需要用3D模型传输矢量
- 围绕glTF的开放生态系统的成长
With the 3D Tiles Next initiative, we are advancing the 3D Tiles specification with extensions to efficiently transmit integrated metadata at a variety of granularities, to implicitly define the spatial data structure used for subdivision, and to more cleanly interoperate with the glTF ecosystem, among other enhancements.
3D Tiles下一步计划,我们正在通过扩展来推进3D Tiles规范,以有效地传输各种粒度的集成元数据,隐式定义用于细分的空间数据结构,以及更清晰地与glTF生态系统进行互操作,以及其他方面的增强
Implicit tiling will enable efficient visualization and analysis via concise, sparse representations of octrees and quadtrees.
In keeping with our pragmatic approach to open standards, we are developing the CesiumJS implementation as well as the pipelines in Cesium ion as part of the 3D Tiles Next effort.
与我们对开放标准的务实态度保持一致,我们正在开发CesiumJS实现以及Cesium管道,作为3D Tiles Next努力的一部分
We believe 3D Tiles Next will be a foundation for the entire geospatial ecosystem for years to come. Expect to hear lots more about it on GitHub and our blog. Until then, keep an eye on the 3d-tiles-next branch in the 3d-tiles GitHub repo for specification updates, and the CesiumJS 3d-tiles-next branch for the implementation.
我们相信3D Tiles Next将在未来几年成为整个地理空间生态系统的基础,希望在GitHub和我们的博客上听到更多关于它的信息 在此之前,请密切关注GitHub 3d-tiles repo中的3d-tiles-next分支,以获得最新规范
Feature Metadata in 3D Tiles Next extends the Batch Table concept in 3D Tiles to efficiently transmit more fine-grained metadata with an explicit type system and extensibility for semantics.
glTF: KTX 2.0, MESHOPT, and PBR Next
glTF is the open standard for efficient transmission of 3D models. It is the format to load individual 3D models into CesiumJS, the payload for 3D Tiles, and becoming what I believe will be the most widely adopted 3D format ever.
glTF是3D模型高效传输的开放标准,它是将单个3D模型加载到CesiumJS的格式,3D Tiles的有效载荷,我相信它将成为有史以来最广泛采用的3D格式。
CesiumJS has supported glTF from its early days and it is important that CesiumJS keep pace with the advancements in glTF; part of Cesium’s mission is to bring innovation from computer graphics to geospatial, and glTF is a hotbed of graphics innovation.
CesiumJS从早期开始就支持glTF,更重要的是CesiumJS跟着glTF的进步,Cesium的部分任务是创新的把计算机图形带到地理空间,而glTF是图形创新的温床
KTX 2.0 enables compressed textures for both transmission and runtime use across GPU vendors, enabling versatile optimizations that reduce memory, bandwidth, and power usage. We are especially excited to apply this to 3D geospatial, where imagery captured via satellites and drones is creating an explosion of textures at global scale. To get an early look see the ktx2-integration branch in CesiumJS.
KTX 2.0支持在GPU供应商之间传输和运行时使用压缩纹理,启用减少内存的多功能优化,带宽和功耗,我们特别兴奋地将其应用于3D地理空间,通过卫星和无人机拍摄的图像在全球范围内创造了纹理的爆发,看看CesiumJS中的ktx2-integration分支。
glTF’s MESHOPT extension defines buffer and geometry compression that is efficient to encode, transmit, and decode, and that stays compressed in GPU memory. It is a rare near win-win tradeoff in computer science where the MESHOPT + gzip compression is nearly as small as Draco or quantized-mesh for our use cases, but decodes faster. Using WebAssembly SIMD, ~1 GB per second can be decoded on modern desktops. Implementing MESHOPT in CesiumJS will improve performance for glTF models with heavy geometry, animations, or instances; high-density 3D Tilesets such as photogrammetry models; and, eventually, terrain.
glTF的MESHOPT扩展定义了缓冲区和几何压缩,可以有效地编码、传输和解码,并且在GPU内存中保持压缩,在计算机科学中,这是一个罕见的近乎双赢的折中,MESHOPT + gzip压缩几乎和我们用例中的Draco或量化网格一样小,但解码速度更快。使用WebAssembly SIMD,在现代台式机上每秒可解码约1gb,在CesiumJS中实现MESHOPT将提高带有重几何、动画或实例的glTF模型的性能;高密度3D贴图集,如摄影测量模型;地形。
Terrain geometry compressed with MESHOPT.
glTF’s PBR Next initiative has brought together the world’s experts on Physically-Based Rendering (PBR) to advance glTF’s material representation from metal-roughness and specular-gloss to support a wide array of new visual effects such as clearcoat, transmission, and volumetric efforts. Bringing support for PBR Next to CesiumJS will increase the visual quality of glTF models as well as 3D Tiles. For example, clearcoat will enhance satellite solar panels by representing a protective layer, and transmission will enhance the visual fidelity of glass on windshields and buildings by representing the thin-surface transparency in a physically plausible way that absorbs, reflects, and transmits light.
glTF的PBR 下一步计划聚集世界上基于物理渲染(PBR)的专家,以推进glTF的材料表征从金属粗糙度和镜面光泽,以支持广泛的新视觉效果,例如清漆、透射和体积效果,为 CesiumJS提供对PBR Next 的支持 将提高 glTF 模型和 3D Tiles 的视觉质量。例如,透明涂层将通过代表保护层来增强卫星太阳能电池板,而透射将通过以一种物理上合理的方式来吸收、反射和传输光来表现薄表面透明度,从而增强挡风玻璃和建筑物上玻璃的视觉保真度
Undersea
Our mission started with aerospace visualization and expanded to all things 3D geospatial as we observed the firehose of valuable 3D geospatial data becoming available from affordable sensors, advancing photogrammetry algorithms, and open data policies, to name a few.
我们的使命从航空可视化开始,并扩展到所有的3D地理空间,因为我们观察到有价值的3D地理空间数据正在从负担得起的传感器、先进的摄影测量算法和开放的数据政策,等等。
In addition to visualizing objects on and above ground, we’ve seen increased interest in visualizing objects undersea. The community is already doing this with CesiumJS’s terrain engine. We plan to enhance the experience by curating a global tileset of bathymetric undersea terrain as well as adding support for visualizing the ocean surface.
除了能看到地面上和地面上的物体,我们还发现人们对水下物体的视觉化越来越感兴趣,社区已经通过CesiumJS的地形引擎做到了这一点,我们计划通过制定海底地形的全球瓦片集,以及增加对海洋表面可视化的支持,来增强体验。
利用GEBCO提供的开放式水深数据,马里亚纳海沟地形夸张4x
In addition, governments are releasing more open terrain data at even higher resolutions, and we plan to refresh Cesium World Terrain globally.
此外,政府正在以更高的分辨率发布更多开放的地形数据,我们计划在全球更新Cesium世界地形。
Developer comforts
With over 33,000 commits and 200 lifetime contributors, CesiumJS is a large project where developer productivity and comfort matter, for both contributors and users. JavaScript, web APIs, IDEs, and tooling have come a long way since CesiumJS was born. There’s a lot of new stuff we plan to take advantage of, from native promises to updated testing infrastructure to broader use of npm for dependency management.
CesiumJS 拥有超过 33,000 次提交和 200 名终身贡献者,是一个大型项目,对于贡献者和用户来说,开发人员的生产力和舒适度都很重要。自CesiumJS诞生以来,JavaScript、web api、ide和工具已经走过了很长的一段路。我们计划利用很多新东西,从原生承诺到更新的测试基础设施,再到更广泛地使用 npm 进行依赖管理。
Learning material and ongoing maintenance
Authentic education is part of Cesium’s mission. Over the years, we have written many tutorials, presented dozens of conference talks, provided hundreds of code examples in Sandcastle, and joined the community in answering thousands of questions on the forum.
As 3D geospatial advances as a field, there is still more demand than there is supply for learning material. As such, we plan to roll out tutorials on camera control, interactive drawing, and using and extending metadata in 3D Tiles. We also plan to create a new Sandcastle for the example code repository that has better search and organization for the massive number of code examples so you can find what you are looking for easily.
真实的培训是 Cesium 使命的一部分。多年来,我们编写了许多教程,发表了数十场会议演讲,在 Sandcastle 中提供了数百个代码示例,并加入了社区,在论坛上回答了数千个问题。
随着三维地理空间的发展,学习材料的需求仍然大于供给,因此,我们计划推出摄像机控制教程,交互式绘图,以及在3D Tiles中使用和扩展元数据。我们还计划为示例代码库创建一个新的Sandcastle,它可以更好地搜索和组织大量的代码示例,这样您就可以轻松地找到您想要的东西。
2014年早期的黑客马拉松。我们期待着更多的黑客马拉松和bug狂欢!
Finally, ongoing maintenance should not be underrated. It is the heartbeat of the project, the lifeblood that keeps the quality high, and it generates fresh ideas. Pull requests from the community need to be reviewed. Bugs (or fixes!) in browsers need corresponding updates to CesiumJS. New GitHub features for managing issues need to be evaluated. We plan to increase our essential activity here.
最后,不应该低估正在进行的维护。它是项目的心跳,是保持高质量的生命线,并产生新鲜的想法。来自社区的Pull请求需要被审查,浏览器中的bug(或修复!)需要相应的CesiumJS更新。需要评估GitHub管理问题的新特性。我们计划在这里增加基本活动。
What else?
We have our sights on enhancements beyond those listed above. Other items of interest include WebXR, WebGPU, clouds (those you see in the sky, not to be confused with computing infrastructure), the camera API, and using WebAssembly to utilize the C++ 3D geospatial routines and 3D Tiles engine that we developed for Cesium for Unreal.
除了上面列出的改进,我们还有其他的改进。其他有趣的项目包括WebXR, WebGPU,云(你在天空中看到的,不要与计算基础设施混淆),摄像头API,以及使用WebAssembly来利用c++ 3D地理空间例程序和3D Tiles引擎,这是我们为Cesium for Unreal开发的。
Your role in the future of 3D geospatial
CesiumJS is developed for and with the community. Together we are advancing 3D geospatial for the collective good across industries that we never even imagined when we first started in aerospace.
CesiumJS是为社区开发的。我们正在共同推进3D地理空间技术,为各个行业带来共同利益,这是我们在航空航天领域刚起步时从未想过的。
We need your help to continue at this pace. There’s a few simple ways to contribute:
- Chime in on the community forum thread on the CesiumJS roadmap and share your requests
- Help us tell the story of the 3D geospatial community by collaborating with us to tell your story
- Submit a CesiumJS bug fix on GitHub or, better yet, contribute a pull request with an enhancement
We look forward to collaborating with you.
我们需要你的帮助来保持这个速度。这里有一些简单的方法:
- 请参与CesiumJS路线图的社区论坛,并分享您的请求
- 通过与我们合作来讲述你的故事,帮助我们讲述3D地理空间社区的故事
- 在GitHub上提交一个CesiumJS bug修复,或者,更好的是,提供一个pull请求和一个增强
我们期待与您合作。