All Versions
Latest Version
Avg Release Cycle
28 days
Latest Release
-7 days ago

Changelog History
Page 1

  • v1.70.0

    June 01, 2020
    ➕ Additions :tada:
    • ➕ Added Cesium3DTileset.extensions to get the extensions property from the tileset JSON. #8829
    • ➕ Added frustumSplits option to DebugCameraPrimitive. 8849
    • ➕ Added SkyAtmosphere.perFragmentAtmosphere to switch between per-vertex and per-fragment atmosphere shading. #8866
    • ➕ Added Globe.undergroundColor and Globe.undergroundColorAlphaByDistance for controlling how the back side of the globe is rendered when the camera is underground or the globe is translucent. #8867
    🛠 Fixes :wrench:
    • 🛠 Fixed a bug that could cause rendering of a glTF model to become corrupt when switching from a Uint16 to a Uint32 index buffer to accomodate new vertices added for edge outlining. #8820
    • 🛠 Fixed a bug where a removed billboard could prevent changing of the TerrainProvider. #8766
    • 🛠 Fixed an issue with 3D Tiles point cloud styling where ${feature.propertyName} and ${feature["propertyName"]} syntax would cause a crash. Also fixed an issue where property names with non-alphanumeric characters would crash. #8785
    • 🛠 Fixed a bug where DebugCameraPrimitive was ignoring the near and far planes of the Camera. #8848
    • 🛠 Fixed sky atmosphere artifacts below the horizon. #8866
    • 🛠 Fixed ground primitives in orthographic mode. #5110
    • 🛠 Fixed the depth plane in orthographic mode. This improves the quality of polylines and other primitives that are rendered near the horizon. 8858
  • v1.69.0

    May 01, 2020
    💥 Breaking Changes :mega:
    • 🚚 The property Scene.sunColor has been removed. Use scene.light.color and scene.light.intensity instead. #8774
    • ✂ Removed isArray. Use the native Array.isArray function instead. #8779
    ➕ Additions :tada:
    • ➕ Added RequestScheduler to the public API; this allows users to have more control over the requests made by CesiumJS. #8384
    • ➕ Added support for high-quality edges on solid geometry in glTF models. #8776
    • ➕ Added Scene.cameraUnderground for checking whether the camera is underneath the globe. #8765
    🛠 Fixes :wrench:
    • 🛠 Fixed several problems with polylines when the logarithmic depth buffer is enabled, which is the default on most systems. #8706
    • 🛠 Fixed a bug with very long view ranges requiring multiple frustums even with the logarithmic depth buffer enabled. Previously, such scenes could resolve depth incorrectly. #8727
    • 🛠 Fixed an issue with glTF skinning support where an optional property skeleton was considered required by Cesium. #8175
    • 🛠 Fixed an issue with clamping of non-looped glTF animations. Subscribers to animation update events should expect one additional event firing as an animation stops. #7387
    • Geometry instance floats now work for high precision floats on newer iOS devices. #8805
    • 🛠 Fixed a bug where the elevation contour material's alpha was not being applied. #8749
    • 🛠 Fix potential memory leak when destroying CesiumWidget instances. #8591
    • 🛠 Fixed displaying the Cesium ion icon when running in an Android, iOS or UWP WebView. #8758
  • v1.68.0

    April 01, 2020
    ➕ Additions :tada:
    • ➕ Added basic underground rendering support. When the camera is underground the globe will be rendered as a solid surface and underground entities will not be culled. #8572
    • 🏗 The CesiumUnminified build now includes sourcemaps. #8572
    • ➕ Added glTF STEP animation interpolation. #8786
    • ➕ Added the ability to edit CesiumJS shaders on-the-fly using the SpectorJS Shader Editor. #8608
    🛠 Fixes :wrench:
    • Cesium can now be used in Node.JS 12 and later, with or without --experimental-modules. It can still be used in earlier versions as well. #8572
    • Interacting with the Cesium canvas will now blur the previously focused element. This prevents unintended modification of input elements when interacting with the globe. #8662
    • 📇 TileMapServiceImageryProvider will now force minimumLevel to 0 if the tilemapresource.xml metadata request fails and the rectangle is too large for the given detail level #8448
    • 🛠 Fixed ground atmosphere rendering when using a smaller ellipsoid. #8683
    • 🛠 Fixed globe incorrectly occluding objects when using a smaller ellipsoid. #7124
    • 🛠 Fixed a regression introduced in 1.67 which caused overlapping colored ground geometry to have visual artifacts. #8694
    • 🛠 Fixed a clipping problem when viewing a polyline up close with the logarithmic depth buffer enabled, which is the default on most systems. #8703
  • v1.67.0

    March 02, 2020
    💥 Breaking Changes :mega:
    • 0️⃣ Cesium3DTileset.skipLevelOfDetail is now false by default. #8631
    • glTF models are now rendered using the LEQUALS depth test function instead of LESS. This means that when geometry overlaps, the later geometry will be visible above the earlier, where previously the opposite was true. We believe this is a more sensible default, and makes it easier to render e.g. outlined buildings with glTF. #8646
    ➕ Additions :tada:
    • 🐎 Massively improved performance of clamped Entity ground geometry with dynamic colors. #8630
    • ➕ Added Entity.tileset for loading a 3D Tiles tileset via the Entity API using the new Cesium3DTilesetGraphics class. #8580
    • ➕ Added tileset.uri,, and tileset.maximumScreenSpaceError properties to CZML processing for loading 3D Tiles. #8580
    • ➕ Added Color.lerp for linearly interpolating between two RGB colors. #8607
    • 👍 CesiumTerrainProvider now supports terrain tiles using a WebMercatorTilingScheme by specifying "projection": "EPSG:3857" in layer.json. It also now supports numbering tiles from the North instead of the South by specifying "scheme": "slippyMap" in layer.json. #8563
    • ➕ Added basic support for isNaN, isFinite, null, and undefined in the 3D Tiles styling GLSL backend for point clouds. #8621
    • ➕ Added sizeInMeters to ParticleSystem. #7746
    🛠 Fixes :wrench:
    • 🛠 Fixed a bug that caused large, nearby geometry to be clipped when using a logarithmic depth buffer, which is the default on most systems. #8600
    • 🛠 Fixed a bug where tiles would not load if the camera was tracking a moving tileset. #8598
    • 🛠 Fixed a bug where applying a new 3D Tiles style during a flight would not update all existing tiles. #8622
    • 🛠 Fixed a bug where Cartesian vectors could not be packed to typed arrays #8568
    • ⚡️ Updated knockout from 3.5.0 to 3.5.1. #8424
    • Cesium's local development server now works in Node 12 & 13 #8648
    Deprecated :hourglass_flowing_sand:
    • 🚚 The isArray function has been deprecated and will be removed in Cesium 1.69. Use the native Array.isArray function instead. #8526
  • v1.66.0

    February 03, 2020
    Deprecated :hourglass_flowing_sand:
    • 🚚 The property Scene.sunColor has been deprecated and will be removed in Cesium 1.69. Use scene.light.color and scene.light.intensity instead. #8493
    ➕ Additions :tada:
    • 🐎 useBrowserRecommendedResolution flag in Viewer and CesiumWidget now defaults to true. This ensures Cesium rendering is fast and smooth by default across all devices. Set it to false to always render at native device resolution instead at the cost of performance on under-powered devices. #8548
    • 🐎 Cesium now creates a WebGL context with a powerPreference value of high-performance. Some browsers use this setting to enable a second, more powerful, GPU. You can set it back to default, or opt-in to low-power mode, by passing the context option when creating a Viewer or CesiumWidget instance:
        var viewer = new Viewer('cesiumContainer', {
            contextOptions : {
                webgl : {
                    powerPreference: 'default'
    • ➕ Added more customization to Cesium's lighting system. #8493
      • Added Light, DirectionalLight, and SunLight classes for creating custom light sources.
      • Added Scene.light for setting the scene's light source, which defaults to a SunLight.
      • Added Globe.dynamicAtmosphereLighting for enabling lighting effects on atmosphere and fog, such as day/night transitions. It is true by default but may be set to false if the atmosphere should stay unchanged regardless of the scene's light direction.
      • Added Globe.dynamicAtmosphereLightingFromSun for using the sun direction instead of the scene's light direction when Globe.dynamicAtmosphereLighting is enabled. See the moonlight example in the Lighting Sandcastle example.
      • Primitives and the globe are now shaded with the scene light's color.
    • ⚡️ Updated SampleData models to glTF 2.0. #7802
    • ➕ Added Globe.showSkirts to support the ability to hide terrain skirts when viewing terrain from below the surface. #8489
    • ➕ Added minificationFilter and magnificationFilter options to Material to control texture filtering. #8473
    • ⚡️ Updated earcut to 2.2.1. #8528
    • ➕ Added a font cache to improve label performance. #8537
    🛠 Fixes :wrench:
    • 🛠 Fixed a bug where the camera could go underground during mouse navigation. #8504
    • 🛠 Fixed a bug where rapidly updating a PolylineCollection could result in an instanceIndex is out of range error. #8546
    • 🛠 Fixed issue where RequestScheduler double-counted image requests made via createImageBitmap. #8162
    • ⬇️ Reduced Cesium bundle size by avoiding unnecessarily importing Cesium3DTileset in Picking.js. #8532
    • 🛠 Fixed a bug where files with backslashes were not loaded in KMZ files. #8533
    • Fixed WebGL warning message about EXT_float_blend being implicitly enabled. #8534
    • 🛠 Fixed a bug where toggling point cloud classification visibility would result in a grey screen on Linux / Nvidia. #8538
    • 🛠 Fixed a bug where a point in a PointPrimitiveCollection was rendered in the middle of the screen instead of being clipped. #8542
    • 🛠 Fixed a crash when deleting and re-creating polylines from CZML. ReferenceProperty now returns undefined when the target entity or property does not exist, instead of throwing. #8544
    • 🛠 Fixed terrain tile picking in the Cesium Inspector. #8567
    • 🛠 Fixed a crash that could occur when an entity was deleted while the corresponding Primitive was being created asynchronously. #8569
    • 🛠 Fixed a crash when calling camera.lookAt with the origin (0, 0, 0) as the target. This could happen when looking at a tileset with the origin as its center. #8571
    • 🛠 Fixed a bug where camera.viewBoundingSphere was modifying the offset parameter. #8438
    • 🛠 Fixed a crash when creating a plane with both position and normal on the Z-axis. #8576
    • 🛠 Fixed BoundingSphere.projectTo2D when the bounding sphere’s center is at the origin. #8482
  • v1.65.0

    January 06, 2020
    💥 Breaking Changes :mega:
    • 🗄 OrthographicFrustum.getPixelDimensions, OrthographicOffCenterFrustum.getPixelDimensions, PerspectiveFrustum.getPixelDimensions, and PerspectiveOffCenterFrustum.getPixelDimensions now require a pixelRatio argument before the result argument. The previous function definition has been deprecated since 1.63. #8320
    • 🗄 The function Matrix4.getRotation has been renamed to Matrix4.getMatrix3. Matrix4.getRotation has been deprecated since 1.62. #8183
    • 🚚 createTileMapServiceImageryProvider and createOpenStreetMapImageryProvider have been removed. Instead, pass the same options to new TileMapServiceImageryProvider and new OpenStreetMapImageryProvider respectively. The old functions have been deprecated since 1.62. #8174
    ➕ Additions :tada:
    • ➕ Added Globe.backFaceCulling to support viewing terrain from below the surface. #8470
    🛠 Fixes :wrench:
    • 🛠 Fixed Geocoder auto-complete suggestions when hosted inside Web Components. #8425
    • 🛠 Fixed terrain tile culling problems when under ellipsoid. #8397
    • 🛠 Fixed primitive culling when below the ellipsoid but above terrain. #8398
    • 👌 Improved the translucency calculation for the Water material type. #8455
    • 🛠 Fixed bounding volume calculation for GroundPrimitive. #4883
    • 🛠 Fixed OrientedBoundingBox.fromRectangle for rectangles with width greater than 180 degrees. #8475
    • 🛠 Fixed globe picking so that it returns the closest intersecting triangle instead of the first intersecting triangle. #8390
    • 🛠 Fixed horizon culling issues with large root tiles. #8487
    • 🛠 Fixed a lighting bug affecting Macs with Intel integrated graphics where glTF 2.0 PBR models with double sided materials would have flipped normals. #8494
  • v1.64.0

    December 02, 2019
    🛠 Fixes :wrench:
    • 🛠 Fixed an issue in image based lighting where an invalid environment map would silently fail. #8303
    • Various small internal improvements
  • v1.63.1

    November 06, 2019

    1.63.1 - 2019-11-06

    • 🛠 Fixed regression in 1.63 where ground atmosphere and labels rendered incorrectly on displays with window.devicePixelRatio greater than 1.0.
    • 🛠 Fixed regression in 1.63 where some primitives would show through the globe when log depth is disabled.

    👀 See the change log for the complete list of changes.

  • v1.63

    November 01, 2019
    Major Announcements :loudspeaker:
    • 👀 Cesium has migrated to ES6 modules. This may or may not be a breaking change for your application depending on how you use Cesium. See our blog post for the full details.
    • We’ve consolidated all of our website content from and into one home on Here’s where you can now find:
      • Sandcastle -
      • API Docs -
      • Downloads -
      • Hosted releases can be found at<CesiumJS Version Number>/Build/Cesium/Cesium.js
      • See our blog post for more information.
    ➕ Additions :tada:
    • ⬇ Decreased Web Workers bundle size by a factor of 10, from 8384KB (2624KB gzipped) to 863KB (225KB gzipped). This makes Cesium load faster, especially on low-end devices and slower network connections.
    • ➕ Added full UTF-8 support to labels, greatly improving support for non-latin alphabets and emoji. #7280
    • ➕ Added "type": "module" to package.json to take advantage of native ES6 module support in newer versions of Node.js. This also enables module-based front-end development for tooling that relies on Node.js module resolution.
    • ⬆️ The combined Build/Cesium/Cesium.js and Build/CesiumUnminified/Cesium.js have been upgraded from IIFE to UMD modules that support IIFE, AMD, and commonjs.
    • ➕ Added pixelRatio parameter to OrthographicFrustum.getPixelDimensions, OrthographicOffCenterFrustum.getPixelDimensions, PerspectiveFrustum.getPixelDimensions, and PerspectiveOffCenterFrustum.getPixelDimensions. Pass in scene.pixelRatio for dimensions in CSS pixel units or 1.0 for dimensions in native device pixel units. #8237
    🛠 Fixes :wrench:
    • 🛠 Fixed css pixel usage for polylines, point clouds, models, primitives, and post-processing. #8113
    • 🛠 Fixed a bug where scene.sampleHeightMostDetailed and scene.clampToHeightMostDetailed would not resolve in request render mode. #8281
    • 🛠 Fixed seam artifacts when log depth is disabled, scene.globe.depthTestAgainstTerrain is false, and primitives are under the globe. #8205
    • 🛠 Fix dynamic ellipsoids using innerRadii, minimumClock, maximumClock, minimumCone or maximumCone. #8277
    • 🛠 Fixed rendering billboard collections containing more than 65536 billboards. #8325
    Deprecated :hourglass_flowing_sand:
    • OrthographicFrustum.getPixelDimensions, OrthographicOffCenterFrustum.getPixelDimensions, PerspectiveFrustum.getPixelDimensions, and PerspectiveOffCenterFrustum.getPixelDimensions now take a pixelRatio argument before the result argument. The previous function definition will no longer work in 1.65. #8237
  • v1.62

    October 01, 2019
    Deprecated :hourglass_flowing_sand:
    • 🚚 createTileMapServiceImageryProvider and createOpenStreetMapImageryProvider have been deprecated and will be removed in Cesium 1.65. Instead, pass the same options to new TileMapServiceImageryProvider and new OpenStreetMapImageryProvider respectively.
    • 🚚 The function Matrix4.getRotation has been deprecated and renamed to Matrix4.getMatrix3. Matrix4.getRotation will be removed in version 1.65.
    ➕ Additions :tada:
    • ➕ Added ability to create partial ellipsoids using both the Entity API and CZML. New ellipsoid geometry properties: innerRadii, minimumClock, maximumClock, minimumCone, and maximumCone. This affects both EllipsoidGeometry and EllipsoidOutlineGeometry. See the updated Sandcastle example. #5995
    • ➕ Added useBrowserRecommendedResolution flag to Viewer and CesiumWidget. When true, Cesium renders at CSS pixel resolution instead of native device resolution. This replaces the workaround in the 1.61 change list. 8215
    • ➕ Added TileMapResourceImageryProvider and OpenStreetMapImageryProvider classes to improve API consistency: #4812
    • ➕ Added credit parameter to CzmlDataSource, GeoJsonDataSource, KmlDataSource and Model. #8173
    • ➕ Added Matrix3.getRotation to get the rotational component of a matrix with scaling removed. #8182
    🛠 Fixes :wrench:
    • 🛠 Fixed labels not showing for individual entities in data sources when clustering is enabled. #6087
    • 🛠 Fixed an issue where polygons, corridors, rectangles, and ellipses on terrain would not render on some mobile devices. #6739
    • 🛠 Fixed a bug where GlobeSurfaceTile would not render the tile until all layers completed loading causing globe to appear to hang. #7974
    • Spread out KMl loading across multiple frames to prevent freezing. #8195
    • 🛠 Fixed a bug where extruded polygons would sometimes be missing segments. #8035
    • Made pixel sizes consistent for polylines and point clouds when rendering at different pixel ratios. #8113
    • Camera.flyTo flies to the correct location in 2D when the destination crosses the international date line #7909
    • 🛠 Fixed 3D tiles style coloring when multiple tilesets are in the scene #8051
    • 3D Tiles geometric error now correctly scales with transform. #8182
    • 🛠 Fixed per-feature post processing from sometimes selecting the wrong feature. #7929
    • 🛠 Fixed a bug where dynamic polylines did not use the given arcType. #8191
    • 🛠 Fixed atmosphere brightness when High Dynamic Range is disabled. #8149
    • 🛠 Fixed brightness levels for procedural Image Based Lighting. #7803
    • Fixed alpha equation for BlendingState.ALPHA_BLEND and BlendingState.ADDITIVE_BLEND. #8202
    • 👌 Improved display of tile coordinates for TileCoordinatesImageryProvider #8131
    • ⬇️ Reduced size of approximateTerrainHeights.json #7959
    • 🛠 Fixed undefined quadDetails error from zooming into the map really close. #8011
    • 🛠 Fixed a crash for 3D Tiles that have zero volume. #7945
    • 🛠 Fixed relative-to-center check, depthFailAppearance resource freeing for Primitive #8044