{"id":1757082,"date":"2022-11-08T19:37:06","date_gmt":"2022-11-09T03:37:06","guid":{"rendered":"https:\/\/www.esri.com\/arcgis-blog\/?post_type=blog&#038;p=1757082"},"modified":"2022-11-08T19:57:45","modified_gmt":"2022-11-09T03:57:45","slug":"ogc-i3s-cesiumjs","status":"publish","type":"blog","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/3d-gis\/ogc-i3s-cesiumjs","title":{"rendered":"OGC Indexed 3D Scene Layers (I3S) Community Standard is now supported in CesiumJS"},"author":196362,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"open","ping_status":"closed","template":"","format":"standard","meta":{"_acf_changed":false,"_searchwp_excluded":""},"categories":[23771],"tags":[25781,23811,380602,756542,30421],"industry":[],"product":[36591,36571,36551,36601],"class_list":["post-1757082","blog","type-blog","status-publish","format-standard","hentry","category-3d-gis","tag-3d","tag-3d-visualization","tag-i3s","tag-interoperability","tag-ogc","product-apps","product-arcgis-enterprise","product-arcgis-online","product-developers"],"acf":{"authors":[{"ID":196362,"user_firstname":"Tamrat","user_lastname":"Belayneh","nickname":"tbelayneh","user_nicename":"tbelayneh","display_name":"Tamrat Belayneh","user_email":"tbelayneh@esri.com","user_url":"","user_registered":"2021-03-03 00:06:44","user_description":"With over 20 years of experience in 3D software development, Tam is lead author for Indexed 3D Scene Layers (I3S) OGC standard. Over his career Tam has worked in advancing 3D graphics in the geospatial industry and has contributed as a 3d developer and engineer in various ArcGIS family of 3D products. Tam has authored and presented numerous articles and technical talks throughout the world including GTC, Siggraph, Foss4G, 3DGeoInfo, ISPRS and many other internationally recognized conferences. In the last few years, Tam has been focusing on using Machine Learning and Deep Learning in advancing 3d object recognition and mesh segmentation within a geospatial context.","user_avatar":"<img alt='' src='https:\/\/secure.gravatar.com\/avatar\/f38596c612a5ce623eda7eb994d2bb1488903c4b558ac5a68867c85e861fefab?s=96&#038;d=blank&#038;r=g' srcset='https:\/\/secure.gravatar.com\/avatar\/f38596c612a5ce623eda7eb994d2bb1488903c4b558ac5a68867c85e861fefab?s=192&#038;d=blank&#038;r=g 2x' class='avatar avatar-96 photo' height='96' width='96' loading='lazy' decoding='async'\/>"}],"short_description":"OGC Indexed 3D Scene Layers (I3S) Community Standard is now supported in CesiumJS Version 1.99","flexible_content":[{"acf_fc_layout":"content","content":"<p style=\"text-align: justify\"><span style=\"font-weight: 400\">We are pleased to announce <a href=\"http:\/\/docs.opengeospatial.org\/cs\/17-014r8\/17-014r8.html\">OGC Indexed 3D Scene Layers (I3S) Community Standard<\/a>\u00a0is now supported in the latest release of CesiumJS, <\/span><a href=\"https:\/\/github.com\/CesiumGS\/cesium\/releases\/tag\/1.99\"><span style=\"font-weight: 400\">Version 1.99. <\/span><\/a><span style=\"font-weight: 400\">This Esri contribution allows for I3S 3D Object and IntegratedMesh Scene Layers to be directly consumed in CesiumJS. Furthermore, it also allows for displaying and symbolizing any feature or mesh attributes associated with the I3S layer. <\/span><\/p>\n"},{"acf_fc_layout":"image","image":{"ID":1762442,"id":1762442,"title":"I3S_3D_Object_Support_In_CesiumJS","filename":"I3S_3D_Object_Support_In_CesiumJS.png","filesize":3990196,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/11\/I3S_3D_Object_Support_In_CesiumJS.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/3d-gis\/ogc-i3s-cesiumjs\/i3s_3d_object_support_in_cesiumjs","alt":"","author":"196362","description":"","caption":"An example of I3S 3D Object Scene Layer loaded in Cesium Sandcastle application. I3S layer compatibility is achieved through a new scene primitive, I3SDataProvider in CesiumJS. I3SDataProvider enables transcoding of I3S geometry payload, materials and texture to glTF (glb).","name":"i3s_3d_object_support_in_cesiumjs","status":"inherit","uploaded_to":1757082,"date":"2022-11-07 21:42:21","modified":"2022-11-08 18:42:19","menu_order":0,"mime_type":"image\/png","type":"image","subtype":"png","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":2860,"height":1695,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/11\/I3S_3D_Object_Support_In_CesiumJS-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/11\/I3S_3D_Object_Support_In_CesiumJS.png","medium-width":440,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/11\/I3S_3D_Object_Support_In_CesiumJS.png","medium_large-width":768,"medium_large-height":455,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/11\/I3S_3D_Object_Support_In_CesiumJS.png","large-width":1822,"large-height":1080,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/11\/I3S_3D_Object_Support_In_CesiumJS-1536x910.png","1536x1536-width":1536,"1536x1536-height":910,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/11\/I3S_3D_Object_Support_In_CesiumJS-2048x1214.png","2048x2048-width":2048,"2048x2048-height":1214,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/11\/I3S_3D_Object_Support_In_CesiumJS-785x465.png","card_image-width":785,"card_image-height":465,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/11\/I3S_3D_Object_Support_In_CesiumJS-1822x1080.png","wide_image-width":1822,"wide_image-height":1080}},"image_position":"center","orientation":"horizontal","hyperlink":"https:\/\/sandcastle.cesium.com\/?src=I3S%203D%20Object%20Layer.html&amp;label=DataSources"},{"acf_fc_layout":"content","content":"<h2 style=\"text-align: justify\"><span style=\"font-weight: 400\">I3S adoption in Free and Open Source Community (FOSS)<\/span><\/h2>\n<p style=\"text-align: justify\"><span style=\"font-weight: 400\">I3S has been gaining much traction in the Free and Open Source Community (FOSS). Since 2019, Loaders.gl and Deck.gl frameworks added support <\/span><span style=\"font-weight: 400\"><a href=\"https:\/\/loaders.gl\/examples\/i3s\">for loading and visualizing<\/a> 3D Object and IntegratedMesh I3S Scene layers<\/span><span style=\"font-weight: 400\">. Recently, Version 3.0 of Loaders.gl added support for I3S Building Scene Layer (BSL) type. I3S BSL released in March 2019 by Esri is now going thru <a href=\"https:\/\/www.ogc.org\/roadmap\">OGC adoption process <\/a>\u00a0for inclusion as part of <a href=\"https:\/\/www.ogc.org\/pressroom\/pressreleases\/4750\">I3S OGC 1.3 community standard<\/a>.<\/span><\/p>\n<p style=\"text-align: justify\"><span style=\"font-weight: 400\">Esri also worked with the Loaders.gl community to create an open source <\/span><span style=\"font-weight: 400\"><a href=\"https:\/\/loaders.gl\/modules\/tile-converter\/docs\/cli-reference\/tile-converter\">Tile Converter<\/a>, <\/span>a c<span style=\"font-weight: 400\">ommand line utility (CLI) for two-way batch conversion between <\/span><a href=\"https:\/\/www.ogc.org\/standards\/i3s\"><span style=\"font-weight: 400\">I3S<\/span><\/a><span style=\"font-weight: 400\"> and <\/span><a href=\"https:\/\/www.ogc.org\/standards\/3DTiles\"><span style=\"font-weight: 400\">3D Tiles.<\/span><\/a><\/p>\n<p style=\"text-align: justify\"><span style=\"font-weight: 400\">Continuing this trend, the current contribution adds a new scene primitive in CesiumJS allowing just in time (JIT) transcoding of I3S geometry payload, materials and texture to glTF (glb). The JIT transcoding occurs for both binary geometry data as well as I3S resources required for efficiently traversing an I3S data structure (encapsulated as a <a href=\"https:\/\/github.com\/Esri\/i3s-spec\/blob\/9f6c4e8795b6a25fecc89fadd0288ba353ac7b6e\/docs\/1.8\/nodePageDefinition.cmn.md\">paged resource<\/a><\/span><span style=\"font-weight: 400\">). Textures in jpeg\/ktx2\/basis format are directly consumed without any transcoding.<\/span><\/p>\n<h2 style=\"text-align: justify\"><span style=\"font-weight: 400\">Architecture of I3S support in CesiumJS<\/span><\/h2>\n<p style=\"text-align: justify\"><span style=\"font-weight: 400\">I3S 3D Object and IntegratedMesh layer support is achieved by processing the <\/span><a href=\"https:\/\/github.com\/Esri\/i3s-spec\/blob\/master\/docs\/1.8\/3DSceneLayer.cmn.md)\"><span style=\"font-weight: 400\">scene layer resource<\/span><\/a><span style=\"font-weight: 400\"> of an I3S dataset to create a Cesium 3D Tileset. Once a Cesium 3D Tileset is created, we process the root node of the I3S layer to create a root Cesium 3D Tile, parented to the Cesium 3D Tileset. The CesiumJS system then loads all children of the root tile. For each child, we create a placeholder 3D Tile so that the Cesium LOD display can use the tile\u2019s selection criteria, <\/span><a href=\"https:\/\/cesium.com\/learn\/cesiumjs\/ref-doc\/Cesium3DTileset.html\"><span style=\"font-weight: 400\">maximumScreenSpaceError<\/span><\/a><span style=\"font-weight: 400\">, derived from an I3S nodes\u2019 <\/span><a href=\"https:\/\/github.com\/Esri\/i3s-spec\/blob\/master\/docs\/1.8\/lodSelection.cmn.md\"><span style=\"font-weight: 400\">maxScreenThreshold<\/span><\/a><span style=\"font-weight: 400\"> property.<\/span><\/p>\n<p style=\"text-align: left\"><span style=\"font-weight: 400\">Leveraging CesiumJS&#8217; refinement and LOD replacement architecture, if the newly created Cesium 3D tile is visible, CesiumJS invokes requestContent on it. At that moment, we intercept the call to requestContent and re-implement <\/span><a href=\"https:\/\/github.com\/CesiumGS\/cesium\/blob\/27abb992eb5a434f1c9391f5e926643473ebc985\/packages\/engine\/Source\/Scene\/I3SNode.js#L756\"><span style=\"font-weight: 400\">Cesium3DTile.prototype.requestContent<\/span><\/a><span style=\"font-weight: 400\"> enabling us to load the I3S geometry data transcoded on the fly to glTF format. Once\u00a0 the geometry is loaded, we then load all children of this node as placeholders so that the CesiumJS LOD system can know about them too.<\/span><\/p>\n<h3 style=\"text-align: justify\">Transcoding Architecture<\/h3>\n<p style=\"text-align: justify\"><span style=\"font-weight: 400\">We use web workers to transcode I3S geometries into glTF. The steps involved include decoding geometry attributes (positions, normals, etc..) either from <\/span><a href=\"https:\/\/github.com\/Esri\/i3s-spec\/blob\/master\/docs\/1.8\/compressedAttributes.cmn.md\"><span style=\"font-weight: 400\">draco<\/span><\/a><span style=\"font-weight: 400\"> or Binary format. If requested, when creating an <a href=\"https:\/\/cesium.com\/learn\/cesiumjs\/ref-doc\/I3SDataProvider.html?classFilter=I3SDataProvider\">I3SDataProvider<\/a> the user has the option to specify a tiled elevation terrain provider (<\/span><a href=\"https:\/\/github.com\/CesiumGS\/cesium\/blob\/aba0323b201eccc6e6c878a1207bae6e9faf4fd8\/packages\/engine\/Source\/Scene\/I3SDataProvider.js#L70\"><span style=\"font-weight: 400\">geoidTiledTerrainProvider<\/span><\/a><span style=\"font-weight: 400\">). The geoidTiledTerrainProvider enables conversion of heights for all vertices and bounding boxes of an I3S layer from (typically) gravity related (Orthometric) heights to Ellipsoidal. This step is essential when fusing data with varying height sources. For example, fusing a gravity related I3S dataset with cesium world terrain (ellipsoidal).<\/span><\/p>\n<p style=\"text-align: justify\"><span style=\"font-weight: 400\">The final phase in the transcoding process is the transformation of vertex coordinates from longitude, latitude and height based system to Cartesian in local space. This phase takes into account appropriately scaling of the positional values as well as cropping of UVs (if present) &#8211; when scale and UV regions are defined in the attribute metadata, respectively. The transcoding process concludes by creating a glTF document in memory that will be ingested as part of a glb payload.<\/span><\/p>\n<h2 style=\"text-align: justify\"><span style=\"font-weight: 400\">Sandcastle example walkthrough<\/span><\/h2>\n<p style=\"text-align: justify\"><span style=\"font-weight: 400\">The main public class for I3S support is <\/span><a href=\"https:\/\/cesium.com\/learn\/cesiumjs\/ref-doc\/I3SDataProvider.html?classFilter=I3SDataProvider\"><span style=\"font-weight: 400\">I3SDataProvider<\/span><\/a><span style=\"font-weight: 400\">. I3SDataProvider accepts the url of an I3S dataset allowing the creation of a data object that can be directly inserted into a scene&#8217;s list of primitives and should behave transparently. <\/span><a href=\"https:\/\/cesium.com\/learn\/cesiumjs\/ref-doc\/I3SFeature.html\"><span style=\"font-weight: 400\">I3SFeature<\/span><\/a><span style=\"font-weight: 400\">, <\/span><a href=\"https:\/\/cesium.com\/learn\/cesiumjs\/ref-doc\/I3SNode.html\"><span style=\"font-weight: 400\">I3SNode<\/span><\/a><span style=\"font-weight: 400\"> and <\/span><a href=\"https:\/\/cesium.com\/learn\/cesiumjs\/ref-doc\/I3SLayer.html\"><span style=\"font-weight: 400\">I3SLayer<\/span><\/a><span style=\"font-weight: 400\"> classes implement the Object Model for I3S entities, with public interfaces.<\/span><\/p>\n"},{"acf_fc_layout":"content","content":"<pre><code style=\"color: #333;background: #f8f8f8\">\r\n<span style=\"color: #333333\"><span style=\"color: #1551d9\">const<\/span> i3sData = <\/span><span style=\"color: #1551d9\"><span style=\"color: #1551d9\">new <\/span><span style=\"color: #d14\"><span style=\"font-weight: 400\"><span style=\"color: #dd1144\">I3SDataProvider <\/span><span style=\"color: #333333\">({<\/span><span style=\"color: #00be7f\"> \r\n  <span style=\"color: #dd1144\">url:<\/span>\r\n'https:\/\/tiles.arcgis.com\/tiles\/z2tnIkrLQ2BRzr6P\/arcgis\/rest\/services\/Frankfurt2017_vi3s_18\/\r\nSceneServer\/layers\/0' <span style=\"color: #998;font-style: italic\">\/\/add ?token=&lt;token&gt; for secure services <\/span><\/span><\/span><\/span><\/span>\r\n<span style=\"color: #333333\">});\r\n<\/span><span style=\"color: #333333\">viewer.scene.primitives.<span style=\"color: #1551d9\"><span style=\"color: #d14\"><span style=\"font-weight: 400\"><span style=\"color: #dd1144\">add<\/span><\/span><\/span><\/span>(i3Data);<\/span> <\/code><\/pre>\n"},{"acf_fc_layout":"content","content":"<h3>Orthometric height systems vs ellipsoidal<\/h3>\n<p style=\"text-align: justify\"><span style=\"font-weight: 400\">To seamlessly fuse datasets created on disparate vertical coordinate systems (<\/span><a href=\"https:\/\/pro.arcgis.com\/en\/pro-app\/latest\/help\/mapping\/properties\/vertical-coordinate-systems.htm#\"><span style=\"font-weight: 400\">VCS<\/span><\/a><span style=\"font-weight: 400\">), one needs to perform harmonization of height systems with which datasets are recorded in. This is typically achieved by leveraging a pre-computed\/compiled lookup table &#8211; Interpolation Grid codes &#8211; at various resolutions, such as the one available from <\/span><a href=\"https:\/\/earth-info.nga.mil\/#tab_wgs84-data\"><span style=\"font-weight: 400\">Earth Gravitational Model 2008 (EGM2008) Data<\/span><\/a><span style=\"font-weight: 400\">.\u00a0<\/span><\/p>\n<p style=\"text-align: justify\"><span style=\"font-weight: 400\">As part of this implementation, we provide a service-based architecture avoiding bloated look up files to convert gravity related (a.k.a orthometric height) datasets to ellipsoidal heights. In other words, if an I3S Datasets is based on orthometric height values (above sea level), we transcode it to be meters above an <\/span><a href=\"https:\/\/cesium.com\/learn\/cesiumjs\/ref-doc\/Cartographic.html\"><span style=\"font-weight: 400\">ellipsoid<\/span><\/a><span style=\"font-weight: 400\"> (typically WGS84). This is done so that I3S datasets with gravity related height systems match when fused with ellipsoidal based terrain datasets, such as the Cesium World Terrain.<\/span><\/p>\n<h3>How Does it Work ?<\/h3>\n<p style=\"text-align: justify\"><span style=\"font-weight: 400\">When I3S layers with orthometric height systems are used in conjunction with ellipsoidal based terrain data, executing the code below achieves height system harmonization. This is achieved by performing geoid conversion of the geometric primitives and bounding volumes of the I3S layer in such height systems to ellipsoidal based height system. The required conversion is happening, before the I3S geometry payloads are converted to glTF. <\/span><\/p>\n"},{"acf_fc_layout":"content","content":"<pre><code style=\"color: #333;background: #f8f8f8\"><span style=\"color: #333;background: #f8f8f8\"><span style=\"color: #333333\"><span style=\"color: #1551d9\">const <\/span>geoidService = <\/span><span style=\"color: #1551d9\">new <span style=\"color: #d14\"><span style=\"font-weight: 400\"><span style=\"color: #dd1144\">Cesium.ArcGISTiledElevationTerrainProvider<\/span><span style=\"color: #333333\">({ <\/span><span style=\"color: #00be7f\">\r\n<span style=\"color: #dd1144\">\u00a0 url:<\/span> 'https:\/\/tiles.arcgis.com\/tiles\/z2tnIkrLQ2BRzr6P\/arcgis\/rest\/services\/EGM2008\/ImageServer'<span style=\"color: #333333\">});<\/span><\/span><\/span><\/span><\/span><\/span>\r\n<span style=\"color: #333333\"><span style=\"color: #1551d9\">let<\/span> i3sData = <\/span><span style=\"color: #1551d9\"><span style=\"color: #1551d9\">new <\/span><span style=\"color: #d14\"><span style=\"font-weight: 400\"><span style=\"color: #dd1144\">I3SDataProvider <\/span><span style=\"color: #333333\">({<\/span><span style=\"color: #00be7f\"> \r\n  <span style=\"color: #dd1144\">url:<\/span>\r\n'https:\/\/tiles.arcgis.com\/tiles\/z2tnIkrLQ2BRzr6P\/arcgis\/rest\/services\/Frankfurt2017_vi3s_18\/\r\nSceneServer\/layers\/0', <span style=\"color: #998;font-style: italic\">\/\/add ?token=&lt;token&gt; for secure services <\/span><\/span><\/span><\/span><\/span>\r\n<span style=\"color: #333333\"><span style=\"color: #333;background: #f8f8f8\"><span style=\"color: #1551d9\"><span style=\"color: #d14\"><span style=\"font-weight: 400\"><span style=\"color: #00be7f\"><span style=\"color: #dd1144\"><span style=\"background-color: #f8f8f8\">geoidTiledTerrainProvider: <span style=\"color: #333\">geoidService<\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span>});\r\n<\/span><span style=\"color: #333333\">viewer.scene.primitives.<span style=\"color: #1551d9\"><span style=\"color: #d14\"><span style=\"font-weight: 400\"><span style=\"color: #dd1144\">add<\/span><\/span><\/span><\/span>(i3Data);<\/span> <\/code><\/pre>\n"},{"acf_fc_layout":"content","content":"<p style=\"text-align: left\"><span style=\"font-weight: 400\">The conversion of orthometric heights to ellipsoidal uses an <\/span><span style=\"font-weight: 400\">ArcGIS Image Service, that provides the Interpolation Grid, <\/span><span style=\"font-weight: 400\">Earth Gravitational Model 2008 (EGM2008) Data,<\/span><span style=\"font-weight: 400\"> as an Elevation service. A <\/span><span style=\"font-weight: 400\">prior <\/span><a href=\"https:\/\/cesium.com\/blog\/2019\/06\/25\/arcgis-elevation-tiles\/\"><span style=\"font-weight: 400\">collaboration between Esri and Cesium<\/span><\/a><span style=\"font-weight: 400\">, added support for consuming Esri World Elevation Service in CesiumJS via <a href=\"https:\/\/cesium.com\/learn\/ion-sdk\/ref-doc\/ArcGISTiledElevationTerrainProvider.html\">ArcGISTiledElevationTerrainProvider<\/a>. ArcGISTiledElevationTerrainProvider is a <\/span><span style=\"font-weight: 400\">TerrainProvider<\/span><span style=\"font-weight: 400\"> that produces terrain geometry by tessellating height maps retrieved from Elevation Tiles of an an ArcGIS Image Service.<\/span><span style=\"font-weight: 400\">\u00a0<\/span><\/p>\n<p style=\"text-align: left\"><span style=\"font-weight: 400\">As a result, an <\/span><span style=\"font-weight: 400\">I3SDataProvider <\/span><span style=\"font-weight: 400\">accepts, as an optional parameter, what we call, <\/span><span style=\"font-weight: 400\">geoidTiledTerrainProvider<\/span><span style=\"font-weight: 400\">.\u00a0<\/span><\/p>\n<p style=\"text-align: justify\"><span style=\"font-weight: 400\">When a geoidTiledTerrainProvider is provided, we sample the geoid height at each I3S positional vertex data and shift by the difference between that value and the height at the center of the tile. To make this conversion performant, this is done in a web assembly module asynchronously. I3SNode.prototype._createContentUR is responsible for loading the geometry data as well as for creating and scheduling a <\/span><a href=\"https:\/\/cesium.com\/learn\/cesiumjs\/ref-doc\/TaskProcessor.html\"><span style=\"font-weight: 400\">TaskProcessor<\/span><\/a><span style=\"font-weight: 400\">, that converts orthometric heights to ellipsoidal, by sampling the geoid. <\/span><span style=\"font-weight: 400\">Similarly, an I3S bounding volume also goes through similar transformation before being persisted to a <\/span><span style=\"font-weight: 400\">Cesium3DTileset object.<\/span><\/p>\n"},{"acf_fc_layout":"image","image":{"ID":1763022,"id":1763022,"title":"A simplified working example for loading an I3S 3D Object Scene Layer in a Cesium Sandcastle application.","filename":"Simplified_Code_Snippet.png","filesize":108660,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/11\/Simplified_Code_Snippet.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/3d-gis\/ogc-i3s-cesiumjs\/simplified_code_snippet","alt":"A simplified working example for loading an I3S 3D Object Scene Layer in a Cesium Sandcastle application.","author":"196362","description":"","caption":"A simplified working example for loading an I3S 3D Object Scene Layer in a Cesium Sandcastle application. Note that the I3SDataProvider class is constructed from an I3S Scene Layers\u2019 data URL and allows for optionally specifying a geoid layer.","name":"simplified_code_snippet","status":"inherit","uploaded_to":1757082,"date":"2022-11-08 06:26:52","modified":"2022-11-09 03:32:35","menu_order":0,"mime_type":"image\/png","type":"image","subtype":"png","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":1248,"height":860,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/11\/Simplified_Code_Snippet-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/11\/Simplified_Code_Snippet.png","medium-width":379,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/11\/Simplified_Code_Snippet.png","medium_large-width":768,"medium_large-height":529,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/11\/Simplified_Code_Snippet.png","large-width":1248,"large-height":860,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/11\/Simplified_Code_Snippet.png","1536x1536-width":1248,"1536x1536-height":860,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/11\/Simplified_Code_Snippet.png","2048x2048-width":1248,"2048x2048-height":860,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/11\/Simplified_Code_Snippet-675x465.png","card_image-width":675,"card_image-height":465,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/11\/Simplified_Code_Snippet.png","wide_image-width":1248,"wide_image-height":860}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<h1 style=\"text-align: justify\"><span style=\"font-weight: 400\">Evolution of a Standard<\/span><\/h1>\n<p style=\"text-align: justify\"><span style=\"font-weight: 400\">I3S as an OGC Community Standard for streaming and storing massive amounts of geospatial content has been rapidly evolving to capture new use cases and techniques to advance geospatial visualization and analysis. I3S enables efficient encoding and transmission of various 3D geospatial data types including 3D objects, integrated surface meshes, point cloud as well as highly detailed BIM (Building Information Model) content. Thus, I3S enables an interactive visualization experience on web browsers, mobile, and desktop apps for both offline and online access.\u00a0<\/span><\/p>\n"},{"acf_fc_layout":"image","image":{"ID":1762402,"id":1762402,"title":"I3S 3D Object Scene Layer Supported in Loaders.gl","filename":"I3S_3D_Object_In_Loaders.gl_.png","filesize":230596,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/11\/I3S_3D_Object_In_Loaders.gl_.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/3d-gis\/ogc-i3s-cesiumjs\/i3s_3d_object_in_loaders-gl","alt":"I3S 3D Object Scene Layer Supported in Loaders.gl","author":"196362","description":"","caption":"I3S 3D Object Scene Layer Supported in Loaders.gl","name":"i3s_3d_object_in_loaders-gl","status":"inherit","uploaded_to":1757082,"date":"2022-11-07 21:30:35","modified":"2022-11-07 21:31:15","menu_order":0,"mime_type":"image\/png","type":"image","subtype":"png","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":1248,"height":736,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/11\/I3S_3D_Object_In_Loaders.gl_-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/11\/I3S_3D_Object_In_Loaders.gl_.png","medium-width":443,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/11\/I3S_3D_Object_In_Loaders.gl_.png","medium_large-width":768,"medium_large-height":453,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/11\/I3S_3D_Object_In_Loaders.gl_.png","large-width":1248,"large-height":736,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/11\/I3S_3D_Object_In_Loaders.gl_.png","1536x1536-width":1248,"1536x1536-height":736,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/11\/I3S_3D_Object_In_Loaders.gl_.png","2048x2048-width":1248,"2048x2048-height":736,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/11\/I3S_3D_Object_In_Loaders.gl_-788x465.png","card_image-width":788,"card_image-height":465,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/11\/I3S_3D_Object_In_Loaders.gl_.png","wide_image-width":1248,"wide_image-height":736}},"image_position":"center","orientation":"horizontal","hyperlink":"https:\/\/loaders.gl\/examples\/i3s"},{"acf_fc_layout":"content","content":"<p style=\"text-align: justify\"><a href=\"https:\/\/loaders.gl\/examples\/i3s\"><span style=\"font-weight: 400\">Loaders.gl &amp; Deck.gl <\/span><\/a><span style=\"font-weight: 400\">allow loading and visualization of 3D Object, IntegratedMesh and Building Scene Layers (OGC I3S Version 1.2 &amp; OGC I3S Version 1.3 (candidate)).<\/span><\/p>\n"},{"acf_fc_layout":"content","content":"<p style=\"text-align: justify\">One aspect of I3S standard that has been evolving is its support for cross platform compatibility for texture assets. Performant 3D systems routinely utilize compressed textures, as an essential optimization technique to support the loading and display of massive amounts of textures in 3D applications. With GPU-decodable Supercompressed Textures (GSTs) becoming an efficient delivery mechanism, I3S has adopted the <a href=\"https:\/\/github.com\/BinomialLLC\/basis_universal\" target=\"_blank\" rel=\"noopener\" aria-describedby=\"new-window\">Basis Universal Texture<\/a> format as its choice of GST. <a href=\"https:\/\/www.khronos.org\/blog\/ktx2.0-support-in-i3s-v1.2-puts-the-whole-world-in-your-hands\"><span style=\"font-weight: 400\">OGC I3S Version 1.2<\/span><\/a><span style=\"font-weight: 400\"> was the first 3d geospatial streaming format to standardize on Basis Universal SuperCompressed Texture format in khronos KTX\u21222.0 <\/span><span style=\"font-weight: 400\">containers.\u00a0<\/span><\/p>\n<p style=\"text-align: justify\">Basis Universal has excellent decoding speed, great compression rates (while keeping the visual quality) and cross platform compatibility. An area that needed improvement was its encoding rate. As detailed in this <a href=\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis\/3d-gis\/esri-collaborates-with-binomial-to-improve-basis-universal-texture-compression-speeds\/\">blog<\/a>, Esri collaborated with Binomial to improve the texture codec speed of Basis Universal by over 3X in early 2021. Further continuing the engagement this year, we were able to achieve <a href=\"https:\/\/www.int-arch-photogramm-remote-sens-spatial-inf-sci.net\/XLIII-B4-2022\/349\/2022\/isprs-archives-XLIII-B4-2022-349-2022.pdf\">an additional 10x improvement<\/a> in the encoding speed, when using GPU in parallel. Both these improvements are part of the open source Basis Universal encoder available at <a href=\"https:\/\/github.com\/BinomialLLC\/basis_universal\">github<\/a>.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":1762462,"id":1762462,"title":"I3S_Ktx2_Vs_Jpeg_Loading","filename":"I3S_Ktx2_Vs_Jpeg_Loading.png","filesize":470481,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/11\/I3S_Ktx2_Vs_Jpeg_Loading.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/3d-gis\/ogc-i3s-cesiumjs\/i3s_ktx2_vs_jpeg_loading","alt":"","author":"196362","description":"","caption":"An ArcGIS JSAPI based side-by side comparison application, demonstrating OGC I3S 1.2 client-side memory reduction improvements. The app has various bookmarks where on average I3S 1.2 shows over 60% client-side memory savings when the input I3S layer is JPEG vs Basis Universal SuperCompressed texture in KTX\u21222.0 container.","name":"i3s_ktx2_vs_jpeg_loading","status":"inherit","uploaded_to":1757082,"date":"2022-11-07 21:42:53","modified":"2022-11-08 20:55:56","menu_order":0,"mime_type":"image\/png","type":"image","subtype":"png","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":1224,"height":736,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/11\/I3S_Ktx2_Vs_Jpeg_Loading-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/11\/I3S_Ktx2_Vs_Jpeg_Loading.png","medium-width":434,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/11\/I3S_Ktx2_Vs_Jpeg_Loading.png","medium_large-width":768,"medium_large-height":462,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/11\/I3S_Ktx2_Vs_Jpeg_Loading.png","large-width":1224,"large-height":736,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/11\/I3S_Ktx2_Vs_Jpeg_Loading.png","1536x1536-width":1224,"1536x1536-height":736,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/11\/I3S_Ktx2_Vs_Jpeg_Loading.png","2048x2048-width":1224,"2048x2048-height":736,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/11\/I3S_Ktx2_Vs_Jpeg_Loading-773x465.png","card_image-width":773,"card_image-height":465,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/11\/I3S_Ktx2_Vs_Jpeg_Loading.png","wide_image-width":1224,"wide_image-height":736}},"image_position":"center","orientation":"horizontal","hyperlink":"https:\/\/tamrat-b.github.io\/i3s_basis_ktx20\/?stats=true"},{"acf_fc_layout":"content","content":"<h2>I3S OGC 1.3<\/h2>\n<p style=\"text-align: justify\"><span style=\"font-weight: 400\">As a living breathing specification and standard, I3S has been evolving ever since it was released as the first OGC 3D streaming standard in the fall of 2017. The latest Version, I3S OGC 1.3, currently under voting, adds support for Building Scene Layers (BSL). A Building Scene Layer is a 3D representation of a building model. A building model may be derived from 3D construction content, such as BIM data, or from a relational database model that contains 3D spatial information. The I3S BSL capability is designed to model the organization of construction data by grouping content into standard engineering disciplines. Content in a BSL may represent a partial building, an individual building, or multiple buildings on a campus.<\/span><\/p>\n"},{"acf_fc_layout":"image","image":{"ID":1762452,"id":1762452,"title":"I3S_BSL_Turanga_Library","filename":"I3S_BSL_Turanga_Library.png","filesize":253851,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/11\/I3S_BSL_Turanga_Library.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/3d-gis\/ogc-i3s-cesiumjs\/i3s_bsl_turanga_library","alt":"","author":"196362","description":"","caption":"","name":"i3s_bsl_turanga_library","status":"inherit","uploaded_to":1757082,"date":"2022-11-07 21:42:46","modified":"2022-11-07 21:42:46","menu_order":0,"mime_type":"image\/png","type":"image","subtype":"png","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":1248,"height":948,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/11\/I3S_BSL_Turanga_Library-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/11\/I3S_BSL_Turanga_Library.png","medium-width":344,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/11\/I3S_BSL_Turanga_Library.png","medium_large-width":768,"medium_large-height":583,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/11\/I3S_BSL_Turanga_Library.png","large-width":1248,"large-height":948,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/11\/I3S_BSL_Turanga_Library.png","1536x1536-width":1248,"1536x1536-height":948,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/11\/I3S_BSL_Turanga_Library.png","2048x2048-width":1248,"2048x2048-height":948,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/11\/I3S_BSL_Turanga_Library-612x465.png","card_image-width":612,"card_image-height":465,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/11\/I3S_BSL_Turanga_Library.png","wide_image-width":1248,"wide_image-height":948}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<p style=\"text-align: justify\"><span style=\"font-weight: 400\">An example of an interactive <\/span><a href=\"https:\/\/esri.github.io\/building-viewer\/\"><span style=\"font-weight: 400\">Building Viewer 3D website <\/span><\/a><span style=\"font-weight: 400\">based on <\/span><a href=\"https:\/\/js.arcgis.com\/\"><span style=\"font-weight: 400\">ArcGIS API for JavaScript<\/span><\/a><span style=\"font-weight: 400\"> for Turanga Library building. The live application <\/span><a href=\"https:\/\/github.com\/Esri\/building-viewer\"><span style=\"font-weight: 400\">code <\/span><\/a><span style=\"font-weight: 400\">and sample walk thru <\/span><a href=\"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/3d-gis\/showcase-your-bim-data-in-the-building-viewer\/\"><span style=\"font-weight: 400\">blog<\/span><\/a><span style=\"font-weight: 400\"> explaining how to use an OGC I3S 1.3 (candidate) Building scene layer content in an intuitive website allowing you to explore different floors, navigate and visualize the rooms and spaces.<\/span><\/p>\n"},{"acf_fc_layout":"content","content":"<h1>Summary<\/h1>\n<p style=\"text-align: justify\"><span style=\"font-weight: 400\">As stated above, I3S adoption in the Free and Open Source Community (FOSS) has been increasing. Since 2019, loaders.gl and deck.gl &#8211; a collection of open source loaders and writers for file formats focused on visualization of big data, including tabular, geospatial, and 3D formats, has added support for loading and visualizing 3D Object and IntegratedMesh I3S Scene layers. Recently, Version 3.0 of Loaders.gl added support for I3S Building Scene Layer type. I3S Building Scene Layer was released in March 2019 by Esri and is now undergoing adoption vote for inclusion as part of I3S OGC 1.3 community standard.\u00a0<\/span><\/p>\n<p style=\"text-align: justify\">This <a href=\"https:\/\/github.com\/CesiumGS\/cesium\/pull\/9634\">contribution<\/a> is an attempt to further increase I3S adoption in the FOSS community. Coupled with the open source <a href=\"https:\/\/loaders.gl\/modules\/tile-converter\/docs\/cli-reference\/tile-converter\" target=\"_blank\" rel=\"noopener\" aria-describedby=\"new-window\">Tile Converter<\/a>\u00a0that allows for a a two-way batch conversion between <a href=\"https:\/\/www.ogc.org\/standards\/i3s\" target=\"_blank\" rel=\"noopener\" aria-describedby=\"new-window\">I3S<\/a>\u00a0and\u00a0<a href=\"https:\/\/www.ogc.org\/standards\/3DTiles\" target=\"_blank\" rel=\"noopener\" aria-describedby=\"new-window\">3D Tiles<\/a>t, we believe this work further advances interoperability goals in the geospatial community in general.<\/p>\n<p style=\"text-align: justify\"><span style=\"font-weight: 400\">So go on, give the <a href=\"https:\/\/sandcastle.cesium.com\/?src=I3S%203D%20Object%20Layer.html&amp;label=DataSources\">Sandcastle<\/a> a try and let&#8217;s know your feedbacks.<\/span><\/p>\n<p style=\"text-align: justify\">\n"}],"related_articles":[{"ID":1155372,"post_author":"196362","post_date":"2021-03-04 09:03:26","post_date_gmt":"2021-03-04 17:03:26","post_content":"","post_title":"Esri collaborates with Binomial to improve Basis Universal Supercompressed GPU Texture Codec speed","post_excerpt":"","post_status":"publish","comment_status":"open","ping_status":"closed","post_password":"","post_name":"esri-collaborates-with-binomial-to-improve-basis-universal-texture-compression-speeds","to_ping":"","pinged":"","post_modified":"2023-01-12 11:32:52","post_modified_gmt":"2023-01-12 19:32:52","post_content_filtered":"","post_parent":0,"guid":"https:\/\/www.esri.com\/arcgis-blog\/?post_type=blog&#038;p=1155372","menu_order":0,"post_type":"blog","post_mime_type":"","comment_count":"0","filter":"raw"}],"card_image":false,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/11\/Banner_I3S_In_CesiumJS.png"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.9 (Yoast SEO v25.9) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>OGC Indexed 3D Scene Layers (I3S) Community Standard is now supported in CesiumJS<\/title>\n<meta name=\"description\" content=\"CesiumJS Version 1.99, adds support for OGC Indexed 3D Scene Layers (I3S) Community Standard.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/3d-gis\/ogc-i3s-cesiumjs\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"OGC Indexed 3D Scene Layers (I3S) Community Standard is now supported in CesiumJS OGC Indexed 3D Scene Layers (I3S) is now supported in CesiumJS Version 1.99\" \/>\n<meta property=\"og:description\" content=\"CesiumJS version 1.99 adds support for Consuming OGC Indexed 3D Scene Layer (I3S) Community Standard. This Esri contribution enables CesiumJS to consume 3D Object and IntegratedMesh Scene layers.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/3d-gis\/ogc-i3s-cesiumjs\" \/>\n<meta property=\"og:site_name\" content=\"ArcGIS Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/esrigis\/\" \/>\n<meta property=\"article:modified_time\" content=\"2022-11-09T03:57:45+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.esri.com\/arcgis-blog\/wp-content\/uploads\/2022\/11\/I3S_3D_Object_Support_In_CesiumJS.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1822\" \/>\n\t<meta property=\"og:image:height\" content=\"1080\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:title\" content=\"OGC Indexed 3D Scene Layers (I3S) Community Standard is now supported in CesiumJS OGC Indexed 3D Scene Layers (I3S) is now supported in CesiumJS Version 1.99.\" \/>\n<meta name=\"twitter:description\" content=\"CesiumJS version 1.99 adds support for Consuming OGC Indexed 3D Scene Layer (I3S) Community Standard. This Esri contribution enables CesiumJS to consume 3D Object and IntegratedMesh Scene layers.\" \/>\n<meta name=\"twitter:site\" content=\"@ESRI\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":[\"Article\",\"BlogPosting\"],\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/3d-gis\/ogc-i3s-cesiumjs#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/3d-gis\/ogc-i3s-cesiumjs\"},\"author\":{\"name\":\"Tamrat Belayneh\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/be1ab3a9fb738d6a1d8fc61e45dd3c5b\"},\"headline\":\"OGC Indexed 3D Scene Layers (I3S) Community Standard is now supported in CesiumJS\",\"datePublished\":\"2022-11-09T03:37:06+00:00\",\"dateModified\":\"2022-11-09T03:57:45+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/3d-gis\/ogc-i3s-cesiumjs\"},\"wordCount\":14,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#organization\"},\"keywords\":[\"3D\",\"3D visualization\",\"I3S\",\"Interoperability\",\"OGC\"],\"articleSection\":[\"3D Visualization &amp; Analytics\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/3d-gis\/ogc-i3s-cesiumjs#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/3d-gis\/ogc-i3s-cesiumjs\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/3d-gis\/ogc-i3s-cesiumjs\",\"name\":\"OGC Indexed 3D Scene Layers (I3S) Community Standard is now supported in CesiumJS\",\"isPartOf\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#website\"},\"datePublished\":\"2022-11-09T03:37:06+00:00\",\"dateModified\":\"2022-11-09T03:57:45+00:00\",\"description\":\"CesiumJS Version 1.99, adds support for OGC Indexed 3D Scene Layers (I3S) Community Standard.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/3d-gis\/ogc-i3s-cesiumjs#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/3d-gis\/ogc-i3s-cesiumjs\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/3d-gis\/ogc-i3s-cesiumjs#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.esri.com\/arcgis-blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"OGC Indexed 3D Scene Layers (I3S) Community Standard is now supported in CesiumJS\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#website\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/\",\"name\":\"ArcGIS Blog\",\"description\":\"Get insider info from Esri product teams\",\"publisher\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.esri.com\/arcgis-blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#organization\",\"name\":\"Esri\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/04\/Esri.png\",\"contentUrl\":\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/04\/Esri.png\",\"width\":400,\"height\":400,\"caption\":\"Esri\"},\"image\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/esrigis\/\",\"https:\/\/x.com\/ESRI\",\"https:\/\/www.linkedin.com\/company\/5311\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/be1ab3a9fb738d6a1d8fc61e45dd3c5b\",\"name\":\"Tamrat Belayneh\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/f38596c612a5ce623eda7eb994d2bb1488903c4b558ac5a68867c85e861fefab?s=96&d=blank&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/f38596c612a5ce623eda7eb994d2bb1488903c4b558ac5a68867c85e861fefab?s=96&d=blank&r=g\",\"caption\":\"Tamrat Belayneh\"},\"description\":\"With over 20 years of experience in 3D software development, Tam is lead author for Indexed 3D Scene Layers (I3S) OGC standard. Over his career Tam has worked in advancing 3D graphics in the geospatial industry and has contributed as a 3d developer and engineer in various ArcGIS family of 3D products. Tam has authored and presented numerous articles and technical talks throughout the world including GTC, Siggraph, Foss4G, 3DGeoInfo, ISPRS and many other internationally recognized conferences. In the last few years, Tam has been focusing on using Machine Learning and Deep Learning in advancing 3d object recognition and mesh segmentation within a geospatial context.\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/author\/tbelayneh\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"OGC Indexed 3D Scene Layers (I3S) Community Standard is now supported in CesiumJS","description":"CesiumJS Version 1.99, adds support for OGC Indexed 3D Scene Layers (I3S) Community Standard.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/3d-gis\/ogc-i3s-cesiumjs","og_locale":"en_US","og_type":"article","og_title":"OGC Indexed 3D Scene Layers (I3S) Community Standard is now supported in CesiumJS OGC Indexed 3D Scene Layers (I3S) is now supported in CesiumJS Version 1.99","og_description":"CesiumJS version 1.99 adds support for Consuming OGC Indexed 3D Scene Layer (I3S) Community Standard. This Esri contribution enables CesiumJS to consume 3D Object and IntegratedMesh Scene layers.","og_url":"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/3d-gis\/ogc-i3s-cesiumjs","og_site_name":"ArcGIS Blog","article_publisher":"https:\/\/www.facebook.com\/esrigis\/","article_modified_time":"2022-11-09T03:57:45+00:00","og_image":[{"url":"https:\/\/www.esri.com\/arcgis-blog\/wp-content\/uploads\/2022\/11\/I3S_3D_Object_Support_In_CesiumJS.png","width":1822,"height":1080,"type":"image\/png"}],"twitter_card":"summary_large_image","twitter_title":"OGC Indexed 3D Scene Layers (I3S) Community Standard is now supported in CesiumJS OGC Indexed 3D Scene Layers (I3S) is now supported in CesiumJS Version 1.99.","twitter_description":"CesiumJS version 1.99 adds support for Consuming OGC Indexed 3D Scene Layer (I3S) Community Standard. This Esri contribution enables CesiumJS to consume 3D Object and IntegratedMesh Scene layers.","twitter_site":"@ESRI","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":["Article","BlogPosting"],"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/3d-gis\/ogc-i3s-cesiumjs#article","isPartOf":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/3d-gis\/ogc-i3s-cesiumjs"},"author":{"name":"Tamrat Belayneh","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/be1ab3a9fb738d6a1d8fc61e45dd3c5b"},"headline":"OGC Indexed 3D Scene Layers (I3S) Community Standard is now supported in CesiumJS","datePublished":"2022-11-09T03:37:06+00:00","dateModified":"2022-11-09T03:57:45+00:00","mainEntityOfPage":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/3d-gis\/ogc-i3s-cesiumjs"},"wordCount":14,"commentCount":0,"publisher":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#organization"},"keywords":["3D","3D visualization","I3S","Interoperability","OGC"],"articleSection":["3D Visualization &amp; Analytics"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/3d-gis\/ogc-i3s-cesiumjs#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/3d-gis\/ogc-i3s-cesiumjs","url":"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/3d-gis\/ogc-i3s-cesiumjs","name":"OGC Indexed 3D Scene Layers (I3S) Community Standard is now supported in CesiumJS","isPartOf":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#website"},"datePublished":"2022-11-09T03:37:06+00:00","dateModified":"2022-11-09T03:57:45+00:00","description":"CesiumJS Version 1.99, adds support for OGC Indexed 3D Scene Layers (I3S) Community Standard.","breadcrumb":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/3d-gis\/ogc-i3s-cesiumjs#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/3d-gis\/ogc-i3s-cesiumjs"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/3d-gis\/ogc-i3s-cesiumjs#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.esri.com\/arcgis-blog\/"},{"@type":"ListItem","position":2,"name":"OGC Indexed 3D Scene Layers (I3S) Community Standard is now supported in CesiumJS"}]},{"@type":"WebSite","@id":"https:\/\/www.esri.com\/arcgis-blog\/#website","url":"https:\/\/www.esri.com\/arcgis-blog\/","name":"ArcGIS Blog","description":"Get insider info from Esri product teams","publisher":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.esri.com\/arcgis-blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.esri.com\/arcgis-blog\/#organization","name":"Esri","url":"https:\/\/www.esri.com\/arcgis-blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/04\/Esri.png","contentUrl":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/04\/Esri.png","width":400,"height":400,"caption":"Esri"},"image":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/esrigis\/","https:\/\/x.com\/ESRI","https:\/\/www.linkedin.com\/company\/5311\/"]},{"@type":"Person","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/be1ab3a9fb738d6a1d8fc61e45dd3c5b","name":"Tamrat Belayneh","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/f38596c612a5ce623eda7eb994d2bb1488903c4b558ac5a68867c85e861fefab?s=96&d=blank&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/f38596c612a5ce623eda7eb994d2bb1488903c4b558ac5a68867c85e861fefab?s=96&d=blank&r=g","caption":"Tamrat Belayneh"},"description":"With over 20 years of experience in 3D software development, Tam is lead author for Indexed 3D Scene Layers (I3S) OGC standard. Over his career Tam has worked in advancing 3D graphics in the geospatial industry and has contributed as a 3d developer and engineer in various ArcGIS family of 3D products. Tam has authored and presented numerous articles and technical talks throughout the world including GTC, Siggraph, Foss4G, 3DGeoInfo, ISPRS and many other internationally recognized conferences. In the last few years, Tam has been focusing on using Machine Learning and Deep Learning in advancing 3d object recognition and mesh segmentation within a geospatial context.","url":"https:\/\/www.esri.com\/arcgis-blog\/author\/tbelayneh"}]}},"text_date":"November 8, 2022","author_name":"Tamrat Belayneh","author_page":"https:\/\/www.esri.com\/arcgis-blog\/author\/tbelayneh","custom_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/11\/Banner_I3S_In_CesiumJS.png","primary_product":"Developers","tag_data":[{"term_id":25781,"name":"3D","slug":"3d","term_group":0,"term_taxonomy_id":25781,"taxonomy":"post_tag","description":"","parent":0,"count":342,"filter":"raw"},{"term_id":23811,"name":"3D visualization","slug":"3d-visualization","term_group":0,"term_taxonomy_id":23811,"taxonomy":"post_tag","description":"","parent":0,"count":46,"filter":"raw"},{"term_id":380602,"name":"I3S","slug":"i3s","term_group":0,"term_taxonomy_id":380602,"taxonomy":"post_tag","description":"","parent":0,"count":7,"filter":"raw"},{"term_id":756542,"name":"Interoperability","slug":"interoperability","term_group":0,"term_taxonomy_id":756542,"taxonomy":"post_tag","description":"","parent":0,"count":6,"filter":"raw"},{"term_id":30421,"name":"OGC","slug":"ogc","term_group":0,"term_taxonomy_id":30421,"taxonomy":"post_tag","description":"","parent":0,"count":8,"filter":"raw"}],"category_data":[{"term_id":23771,"name":"3D Visualization &amp; Analytics","slug":"3d-gis","term_group":0,"term_taxonomy_id":23771,"taxonomy":"category","description":"","parent":0,"count":686,"filter":"raw"}],"product_data":[{"term_id":36591,"name":"Apps","slug":"apps","term_group":0,"term_taxonomy_id":36591,"taxonomy":"product","description":"","parent":0,"count":648,"filter":"raw"},{"term_id":36571,"name":"ArcGIS Enterprise","slug":"arcgis-enterprise","term_group":0,"term_taxonomy_id":36571,"taxonomy":"product","description":"","parent":0,"count":972,"filter":"raw"},{"term_id":36551,"name":"ArcGIS Online","slug":"arcgis-online","term_group":0,"term_taxonomy_id":36551,"taxonomy":"product","description":"","parent":0,"count":2419,"filter":"raw"},{"term_id":36601,"name":"Developers","slug":"developers","term_group":0,"term_taxonomy_id":36601,"taxonomy":"product","description":"","parent":0,"count":761,"filter":"raw"}],"primary_product_link":"https:\/\/www.esri.com\/arcgis-blog\/?s=#&products=developers","_links":{"self":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog\/1757082","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog"}],"about":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/types\/blog"}],"author":[{"embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/users\/196362"}],"replies":[{"embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/comments?post=1757082"}],"version-history":[{"count":0,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog\/1757082\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/media?parent=1757082"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/categories?post=1757082"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/tags?post=1757082"},{"taxonomy":"industry","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/industry?post=1757082"},{"taxonomy":"product","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/product?post=1757082"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}