An open-source browser globe that layers live flights, ships, satellites, quakes, traffic and public cameras on photorealistic 3D terrain, with voice control.
CesiumGS/cesium
A JavaScript library for rendering interactive 3D globes and 2D maps in the browser with WebGL, without plugins.
Open-source alternative to:Google Earth
- Stars
- 15,862
- Forks
- 3,890
- Open issues
- 1,740
- Last commit
- 12 hours ago
What is it?
CesiumJS is a JavaScript library for building 3D globes and 2D maps that run directly in a web browser without a plugin. It uses WebGL for hardware-accelerated rendering and is designed for visualizing dynamic data over a high-precision WGS84 globe.
The library is built on open formats and aims to scale to large datasets. It can stream 3D Tiles, terrain, and imagery from Cesium ion, a commercial hosting platform, or from other offline and online sources using open standards. The core is distributed as the cesium npm package, with scoped packages @cesium/engine and @cesium/widgets for more granular dependency management, and it supports tree shaking through common module bundlers such as Webpack, Parcel, and Rollup.
CesiumJS is released under the Apache 2.0 license and is free for commercial and non-commercial use. A pre-built download is also available for projects that do not use a bundler.
Key features
- 01Renders 3D globes and 2D maps in the browser using WebGL, with no plugin required.
- 02Streams 3D Tiles and other standard geospatial formats from Cesium ion or other sources.
- 03Provides a high-precision WGS84 globe for visualizing and analyzing geospatial data.
- 04Supports tree shaking through modular npm packages for smaller application bundles.
- 05Works across desktop and mobile browsers.
Use cases
- Building web applications that display 3D terrain, imagery, or city models.
- Visualizing real-time or time-dynamic geospatial data such as vehicles or satellites.
- Creating interactive 2D or 3D map interfaces that run without browser plugins.
Quick start
- 1
Install the cesium npm package
npm install cesium --save - 2
Import Viewer and its CSS in your app code
- 3
Create a viewer bound to a container element
Things to know
- Streaming premium terrain, imagery, and 3D Tiles content is best done with a Cesium ion account, which is a commercial subscription service.
Topics
FAQ
- What is cesium?
- A JavaScript library for rendering interactive 3D globes and 2D maps in the browser with WebGL, without plugins. CesiumJS is a JavaScript library for building 3D globes and 2D maps that run directly in a web browser without a plugin. It uses WebGL for hardware-accelerated rendering and is designed for visualizing dynamic data over a high-precision WGS84 globe.
- Is cesium free to use? What license does it have?
- cesium is open source under the Apache-2.0 license. Check the license terms before using it in commercial products.
- Is cesium still maintained?
- Actively maintained. The last commit to cesium was on Oct 20, 2026.
- What can I use cesium for?
- Building web applications that display 3D terrain, imagery, or city models. Visualizing real-time or time-dynamic geospatial data such as vehicles or satellites. Creating interactive 2D or 3D map interfaces that run without browser plugins.
- How do I install cesium?
- Install the cesium npm package: npm install cesium --save Import Viewer and its CSS in your app code Create a viewer bound to a container element
- Where can I get cesium?
- The source code and installation instructions are on GitHub: https://github.com/CesiumGS/cesium
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
A high-performance JavaScript library for building interactive web maps that display tiles, vector data and markers from any source.
A JavaScript 3D library that makes it easier to build and render 3D scenes in the browser with WebGL and WebGPU.
A collection of ready-made React helper components and hooks for building 3D scenes with react-three-fiber.
React bindings for the Rapier WASM physics engine, integrating rigid bodies, colliders and joints into react-three-fiber scenes.
A React wrapper for the postprocessing library that lets react-three-fiber scenes apply post-processing effects declaratively as JSX components.