🚀 TypeScript-first fork of the official CesiumJS library, converted from JavaScript to TypeScript for improved type safety and developer experience.
This is a TypeScript conversion of CesiumJS - a JavaScript library for creating 3D globes and 2D maps in a web browser without a plugin.
Key Differences from Official CesiumJS:
- ✅ Full TypeScript source instead of JavaScript +
.d.tsfiles - ✅ Compile-time type safety for 3D graphics and geospatial operations
- ✅ Better IDE support with real types, not JSDoc-generated definitions
- ✅ Improved developer experience for TypeScript-first projects
Original CesiumJS Features:
- Uses WebGL for hardware-accelerated graphics
- Cross-platform and cross-browser compatible
- Designed for robust interoperability and scaling for massive datasets
- Built on open formats for geospatial visualization
Examples 🌏 Docs 🌎 Website 🌍 Forum 🌏 User Stories
Install the TypeScript fork via npm:
npm install @vespo/cesium --saveOr using Bun (faster alternative):
bun add @vespo/cesiumImport and use CesiumTS in your TypeScript app with full type safety:
import { Viewer } from "@vespo/cesium";
import "@vespo/cesium/Build/Cesium/Widgets/widgets.css";
const viewer = new Viewer("cesiumContainer");Import individual modules to benefit from tree shaking optimizations:
import { Cartesian3, Color } from "@vespo/cesium";This fork maintains the modular structure with scoped packages:
@cesium/engine- CesiumJS's core, rendering, and data APIs@cesium/widgets- A widgets library for use with CesiumJS
See our Quickstart Guide for more information on getting a CesiumJS app up and running.
Instructions for serving local data are in the CesiumJS Offline Guide.
Interested in contributing? See CONTRIBUTING.md. ❤️
bun run build-release# Login to npm (first time only)
npm login
# Publish the package
npm publish --access public
# Or publish with Bun
bun publish --access publicFollow semantic versioning with the -vespo suffix:
- Patch:
1.135.0-vespo.1→1.135.0-vespo.2 - Minor upstream sync:
1.135.0-vespo.1→1.136.0-vespo.1 - Major:
1.135.0-vespo.1→2.0.0-vespo.1
To pull updates from the official CesiumJS:
# Add upstream remote (first time only)
git remote add upstream https://github.com/CesiumGS/cesium.git
# Fetch upstream changes
git fetch upstream
# Merge upstream main (requires manual TypeScript conversion)
git merge upstream/main
# Resolve conflicts and re-apply TypeScript conversionsbun install
bun run buildbun run bun:devbun run bun:typecheckApache 2.0. CesiumJS is free for both commercial and non-commercial use.
This fork maintains the same Apache 2.0 license as the original CesiumJS project. All credit goes to the original CesiumGS team and contributors.
The Cesium platform follows an open-core business model with open source runtime engines such as CesiumJS and optional commercial subscription to Cesium ion.
CesiumJS can stream 3D content such as terrain, imagery, and 3D Tiles from the commercial Cesium ion platform alongside open standards from other offline or online services. We provide Cesium ion as the quickest option for all users to get up and running, but you are free to use any combination of content sources with CesiumJS that you please.
Bring your own data for tiling, hosting, and streaming from Cesium ion. Using Cesium ion helps support CesiumJS development.
- Stream in 3D Tiles and other standard formats from Cesium ion or another source
- Visualize and analyze on a high-precision WGS84 globe
- Share with users on desktop or mobile
See more in the CesiumJS Features Checklist.
