Skip to content
CAI
Software that uses CAICheck a score

CesiumGS/cesium

35.0

Weak · 1 October 2026

425.3k

lines of production code

JavaScript

primary language

2

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

This system is a 3D geospatial visualization engine that renders terrain, imagery, and complex 3D models using WebGL. It supports parsing and displaying various spatial data formats, including Cesium 3D Tiles, glTF models, KML, GPX, and WMS services. The codebase includes a comprehensive test suite that validates rendering pipelines, data parsing logic, and widget interactions across multiple browsers and contexts.

How it got here

2012–2017 — 3D Tiles testing and build modernization

49 changes.

This period focused on expanding test coverage for 3D Tiles specifications, adding extensive fixtures for instanced, batched, and vector tilesets. The project also modernized its development workflow by migrating the build system to Gulp and updating the CesiumViewer demo to use ES modules.

2018–2022 — Engine modularization and 3D Tiles expansion

84 changes.

The project refactored the core engine into a modular ES module package with TypeScript support, while simultaneously introducing a comprehensive suite of new UI widgets and rendering shaders. This period focused heavily on expanding 3D Tiles capabilities, including extensive test coverage for metadata, implicit tiling, and voxel formats, alongside updates to sample data and rendering pipelines.

2023–2026 — Sandcastle v2 and core modularization

38 changes.

This period focused on the major overhaul of the Sandcastle development environment into a React-based v2 with AI Copilot capabilities, semantic search, and modernized UI. Simultaneously, the codebase underwent significant architectural restructuring by introducing the @cesium/core package to separate foundational primitives from rendering logic, alongside the implementation of an extensible camera controller system.

Features

Add Cesium branding assets and MapTiler tile configuration

This change adds static assets to the public images directory, including a new Cesium logomark SVG and a MapTiler-compatible tileset structure for the Cesium color logo. The addition of the tilemapresource.xml and auxiliary metadata files enables the application to serve or reference these branded map tiles, supporting the visual identity updates mentioned in the associated development work.

packages/sandcastle/public/images · high confidence

Add ClockViewModel and Knockout-based UI infrastructure

This change introduces the ClockViewModel, a new view model that exposes Cesium's Clock properties (such as system time, start/stop times, and animation settings) as Knockout observables for use in user interfaces. It also adds supporting Knockout infrastructure, including a custom SvgPathBindingHandler for rendering SVG icons, a Command interface for executable actions, and shared UI helper functions in InspectorShared.js used by inspector widgets. The Knockout library (v3.5.1) is bundled as a third-party dependency to support these reactive UI patterns.

packages/widgets/Source · high confidence

Add KHR\_mesh\_primitive\_restart sample models with licensing

Added sample models and a README to the PrimitiveRestart directory to demonstrate the KHR\_mesh\_primitive\_restart glTF extension. The new files include documentation explaining that the models contain mesh primitives with inline restart index values and specify the CC BY 4.0 license for the test data.

Apps/SampleData/models/PrimitiveRestart · high confidence

Add sample GPX files for testing

Added five new sample GPX files to the Apps/SampleData/gpx directory to support testing and development: complexTrk.gpx (a multi-segment track with waypoints), lamina.gpx (a large track with Garmin extensions including heart rate and temperature), route.gpx (a simple route), simple.gpx (a single waypoint), and wpt.gpx (multiple waypoints).

Apps/SampleData/gpx · high confidence

Added COLLADA model for KML export in Sandcastle

A new CesiumMilkTruck.dae file has been added to the sample data models, providing a COLLADA format version of the milk truck asset. This addition enables the Sandcastle KML export example to function correctly by supplying the necessary source model file that was previously missing.

Apps/SampleData/models/CesiumMilkTruck · high confidence

Added Cesium 3D Tiles sample data for hierarchy and instancing

New sample tilesets have been added to the Apps/SampleData/Cesium3DTiles directory to support testing and demonstration of specific 3D Tiles features. The Hierarchy/BatchTableHierarchy tileset demonstrates the 3DTILES\_batch\_table\_hierarchy extension, while the Instanced/InstancedOrientation and Instanced/InstancedWithBatchTable tilesets provide examples of instanced rendering with orientation and batch table data respectively.

Apps/SampleData/Cesium3DTiles/Hierarchy, Apps/SampleData/Cesium3DTiles/Instanced · high confidence

Added Photogrammetry Classification sample tileset

A new sample tileset for photogrammetry classification has been added to the sample data directory. This includes a tileset.json file defining the 3D tile structure with region bounding volumes and geometric error settings, along with the associated content.b3dm file, enabling users to test classification features with this specific dataset.

Apps/SampleData/Cesium3DTiles/Classification/Photogrammetry · high confidence

Added Point Cloud classification tileset sample data

A new tileset definition has been added to the SampleData directory for the Point Cloud classification demo. This file configures the 3D Tiles structure, including the geographic bounding volume, coordinate transformation, and reference to the compressed geometry content, enabling the application to load and render this specific point cloud dataset.

Apps/SampleData/Cesium3DTiles/Classification/PointCloud · high confidence

Added SelectionIndicator widget to display visual cues for selected objects

This change introduces the SelectionIndicator widget, which renders a green SVG indicator around selected objects in the Cesium scene. The widget uses Knockout.js for data binding to track screen position and visibility, and includes animations (scale transitions) to draw attention when an object is selected or deselected. It is configured via a container element and a Scene instance, with the view model handling coordinate conversion and tweening logic.

packages/widgets/Source/SelectionIndicator · high confidence

Added collapsible code diff preview component

The Sandcastle Copilot now includes a new \SimpleDiffPreview\ component that displays a read-only, collapsible view of code changes applied to a script. Users can see a header with the filename and line addition/removal statistics, an 'Applied' status banner, and a scrollable content area highlighting added, removed, and unchanged lines with distinct color coding. The component supports collapsing the view to save space and is styled using the StrataKit design system variables.

packages/sandcastle/src/copilot/diff-preview · high confidence

Added common monospace fonts for Monaco code editor

The Sandcastle application now includes Cascadia Code, Fira Code, JetBrains Mono, and Droid Sans Mono as available font options for the Monaco code editor. These font families, along with their respective license files and CSS definitions, have been added to the public fonts directory to enhance code readability and customization for users.

packages/sandcastle/public/fonts · high confidence

Added sample 3D Tiles tilesets for testing

New sample data files have been added to the Cesium 3D Tiles sample data directory, including a basic tileset with property definitions and a tileset featuring viewer request volumes and point cloud content. These resources provide concrete examples for validating 3D Tiles loading, culling, and property access behaviors in applications.

Apps/SampleData/Cesium3DTiles/Tilesets · high confidence

Added sample vector tilesets for Spain and US geographic outlines

New sample tilesets have been added to the vector sample data directory, providing test data for both the standard \3DTILES\_content\_gltf\_vector\ extension and the \CESIUM\_mesh\_vector\ extension. The update includes \sample-cities-spain\ and \sample-us-states\ tilesets for polygon data, as well as \sample-us-outline\ tilesets for outline data, allowing users to verify rendering and feature extraction for these specific vector tile formats.

Apps/SampleData/vector · high confidence

Geocoder widget now includes default styling and credits

The Geocoder widget now ships with its own CSS files (Geocoder.css and lighter.css) to provide default visual styling for the search input, suggestions list, and search button, ensuring a consistent appearance out of the box. Additionally, the widget now displays geocoding credits to users, acknowledging the data providers.

packages/widgets/Source/Geocoder · high confidence

Initial support for the NGA\_gpm\_local glTF extension

Added the ability to load and parse the NGA\_gpm\_local glTF extension, which provides Ground-Space Point Cloud Model (GPM) metadata. This includes new classes for direct and indirect anchor points, correlation groups, and Per-Point Error (PPE) textures, along with loaders that convert this extension data into StructuralMetadata for use in Cesium's scene graph.

packages/engine/Source/Scene/Model/Extensions · high confidence

Introduce @cesium/core package for shared primitives

The new @cesium/core package provides CesiumJS's foundational math, geometry, time, and utility types, separated from rendering and widget dependencies to support tree-shaking and modular usage. This location scaffolds the package structure and exports core modules such as Cartesian3, BoundingSphere, AxisAlignedBoundingBox, AssociativeArray, and various geometry definitions (e.g., BoxGeometry), along with supporting utilities like AttributeCompression and ArcType.

packages/core · high confidence

Introduce @cesium/engine package with ES modules and TypeScript support

The \packages/engine\ directory now contains the standalone \@cesium/engine\ package, providing CesiumJS's core, rendering, and data APIs as ES modules with full TypeScript typing. This change establishes the package structure (including \README.md\, \LICENSE.md\, and \.gitignore\), removes legacy RequireJS dependencies in favor of modern ESM workers, and replaces temporary local WASM files with an npm package. Users can now install and import individual modules (e.g., \CesiumWidget\) directly via npm for better tree-shaking and type safety.

packages/engine · high confidence

Introduce I3S Building Scene Layer Explorer widget

Adds a new interactive widget that allows users to explore I3S building scene layers. The widget provides a UI to select top-level layers (such as Full Model or Overview), filter content by building levels, and toggle the visibility of sublayers and disciplines via checkboxes. It handles the hierarchical display of layer trees and manages the underlying data provider filtering and visibility states.

packages/widgets/Source/I3SBuildingSceneLayerExplorer · high confidence

Introduce Sandcastle Copilot chat interface and configuration

Adds the Sandcastle Copilot UI components, including the main ChatPanel, message rendering (ChatMessage), prompt input with image attachment support, model selection, and an API key configuration dialog. The feature supports Anthropic, Gemini, and Vertex AI providers, handles streaming responses with typing indicators and thinking blocks, and includes an error boundary for graceful failure recovery.

packages/sandcastle/src/copilot · high confidence

Introduce VoxelInspector debugging widget

Adds a new VoxelInspector widget that provides a UI for debugging voxel primitives. The widget includes sections for Display (e.g., depth test, jitter, sampling), Transform (translation, scale, rotation), Clipping (box, ellipsoid, and cylinder bounds), and Shader (custom shader editing and compilation). It also fixes issues related to model matrix initialization, voxel clipping limits, and zero/negative scale handling.

packages/widgets/Source/VoxelInspector · high confidence

A new standalone entry point for the Sandcastle playground has been added, providing a simplified interface that excludes the gallery search functionality. This view renders a split-pane layout with a code execution bucket and a console mirror, loading content from the URL state rather than a gallery index, and includes specific CSS styling for the root container and split-view dividers.

packages/sandcastle/src/Standalone · high confidence

Introduction of CesiumWidget with default MSAA and lighter theme support

A new CesiumWidget component has been added to the engine, providing a standalone container for a Cesium scene that includes built-in error handling panels and credit display. By default, the widget now enables multisample antialiasing (MSAA) with 4 samples per pixel to improve visual quality, and it supports a 'lighter' CSS theme variant for the error panel styling.

packages/engine/Source/Widget · high confidence

Introduction of the Animation widget with shuttle ring and playback controls

The Animation widget is now available, providing a user interface for controlling time playback. This includes a shuttle ring for adjusting the time multiplier, buttons for play, pause, reverse, loop, and reset, and labels for the current date, time, and speed. The widget supports theming via CSS classes (Animation.css and lighter.css) to match the application's visual style and includes a view model (AnimationViewModel.js) that manages state such as shuttle ring dragging, snapping to ticks, and time formatting.

packages/widgets/Source/Animation · high confidence

New AI client infrastructure with Gemini, Anthropic, and Vertex AI support

The Copilot now supports three AI providers: Google Gemini, Anthropic Claude, and Google Vertex AI. A new AIClientFactory manages model selection and routing, exposing models like gemini-3-flash-preview, gemini-3.1-pro-preview, claude-opus-4-8, claude-sonnet-4-6, and claude-haiku-4-5. Users can authenticate via direct API keys (stored in sessionStorage) or Google Cloud service accounts for Vertex AI, with region-specific routing and validation. The implementation includes streaming support with stall timeouts, tool-use handling, and thinking/reasoning budget configuration for supported models.

packages/sandcastle/src/copilot/ai/clients · high confidence

New AI tool registry and apply\_diff capability for code modifications

The Copilot now includes a \ToolRegistry\ that manages AI tool definitions and execution, introducing a new \apply\_diff\ tool. This tool allows the AI to precisely locate and modify code sections in JavaScript or HTML files using a search/replace strategy with middle-out matching for better accuracy on large files. The implementation includes validation for file types and parameters, handles full-file replacements for initialization or large-scope removals, and provides detailed error feedback with closest-match suggestions to help the model self-correct if a diff fails to apply.

packages/sandcastle/src/copilot/ai/tools · high confidence

New Copilot Settings Panel with Extended Thinking and Custom Prompts

Users can now configure Copilot behavior via a new Settings panel. This includes enabling 'Extended Thinking' to allow the AI to show its reasoning process, with a configurable token budget (default 2048). Users can also add a custom system prompt addendum to include recurring directives in all AI requests. Additionally, a 'Reset All Data' button allows users to clear all settings and API keys. Settings are persisted in sessionStorage and include an auto-fix feature enabled by default.

packages/sandcastle/src/copilot/settings · high confidence

New Copilot hooks for auto-fix, chat state, and tool execution

Added three new React hooks in the Copilot module to support advanced AI interaction patterns. useAutoFix introduces an automatic retry mechanism for code generation, limiting attempts to three and detecting stalled loops to prevent infinite cycles. useChatMessages provides a centralized state manager for chat history with optimized batching via requestAnimationFrame to reduce render pressure during streaming. useToolChainExecution manages the execution of chained tool calls, ensuring the working code context is updated between steps and tracking code application events for analytics.

packages/sandcastle/src/copilot/hooks · high confidence

New Entity graphics, visualizers, and property types for data sources

This change introduces a suite of new classes in the DataSources module to support richer entity visualization and property handling. It adds \BillboardGraphics\ and \BillboardVisualizer\ to render 2D icons with support for sub-regions and split directions, alongside \BoxGraphics\ and \BoxGeometryUpdater\ for rendering 3D boxes with material and outline options. It also introduces \Cesium3DTilesetGraphics\ and \Cesium3DTilesetVisualizer\ to display 3D Tiles via entities, and new property types including \CallbackProperty\, \CallbackPositionProperty\, \CheckerboardMaterialProperty\, and \ColorMaterialProperty\ to allow dynamic, callback-driven values and specific material patterns.

packages/engine/Source/DataSources · high confidence

New GLSL material shaders for procedural patterns, elevation data, and polylines

This update adds a comprehensive set of new GLSL material shaders to the engine, enabling new visual capabilities for terrain, overlays, and vector graphics. Users can now render procedural patterns including AspectRamp, BumpMap, Checkerboard, Dot, ElevationBand, ElevationContour, ElevationRamp, Fade, Grid, NormalMap, SlopeRamp, and Stripe materials. Additionally, new polyline materials (Arrow, Dash, Glow, Outline) and terrain-specific materials (Water, WaterMask) are introduced to support advanced rendering effects for lines and water bodies.

packages/engine/Source/Shaders/Materials · high confidence

New GLSL struct definitions for engine internals

This change introduces a set of new GLSL struct definitions in the engine's built-in shader library, including czm\_depthRangeStruct, czm\_material, czm\_materialInput, czm\_modelMaterial, czm\_modelVertexOutput, czm\_ray, czm\_raySegment, and czm\_shadowParameters. These structs provide standardized data structures for material properties, vertex outputs, ray tracing, and shadow calculations, forming the foundational types used by the rendering pipeline's material and lighting systems.

packages/engine/Source/Shaders/Builtin/Structs · high confidence

New Home and Projection Picker widgets

Added the HomeButton widget, which provides a button to reset the camera to the default view, and the ProjectionPicker widget, which allows users to switch between perspective and orthographic camera projections. These new UI components are implemented using Knockout.js for data binding and integrate with the Cesium scene to manage camera state and transitions.

packages/widgets/Source/HomeButton, packages/widgets/Source/ProjectionPicker · high confidence

New InfoBox widget and Viewer mixin architecture

The Viewer widget now includes a new InfoBox component for displaying feature descriptions and metadata, featuring a slide-in animation, camera tracking controls, and an iframe-based description renderer. Additionally, the Viewer's extensibility model has been refactored to use a mixin pattern, introducing dedicated modules for the Cesium Inspector, Cesium 3D Tiles Inspector, Voxel Inspector, Performance Watchdog, and drag-and-drop support, allowing these features to be added to the Viewer via explicit extension calls rather than being bundled by default.

packages/widgets/Source/Viewer · high confidence

New KML sample data for bike rides, Eiffel Tower tours, and facilities

Added new KML sample files to demonstrate specific features: \bikeRide.kml\ provides a dataset with GPS tracks and telemetry data (power, cadence, heart rate) for testing playback and track visualization; \eiffel-tower-flyto.kml\ includes a \gx:Tour\ with \gx:FlyTo\ and \gx:Wait\ elements to test camera animation and tour playback; and the \facilities/\ directory now contains \facilities.kml\ and \agiLogo.svg\, updating the sample to correctly display the AGI logo in balloon styles.

Apps/SampleData/kml · high confidence

New Sandcastle demos for glTF model articulation, node transformation, and coloring

The Sandcastle gallery now includes new interactive examples for exploring glTF model capabilities. The '3D Models Articulations' demo allows users to manipulate articulated joints in a launch vehicle model via a UI. The '3D Models Node Explorer' provides a tool to inspect and modify translation, rotation, and scale for individual nodes within a skinned character model. Additionally, the '3D Models Coloring' demo demonstrates how to apply colors, blend modes, transparency, and silhouettes to glTF models using entities.

packages/sandcastle/gallery · high confidence

New UI widgets for fullscreen, navigation help, performance monitoring, scene mode switching, and timeline control

Added new widget components in the packages/widgets/Source directory: FullscreenButton for toggling fullscreen mode, NavigationHelpButton for displaying mouse and touch navigation instructions, PerformanceWatchdog for monitoring and alerting on low frame rates, SceneModePicker for switching between 2D, 3D, and Columbus View modes, and Timeline for controlling scene time. Each widget includes its corresponding JavaScript implementation, view model, and CSS styling files.

(repo-wide) · high confidence

The Sandcastle gallery now supports semantic search powered by Hugging Face embeddings, allowing users to find demos by meaning rather than just keywords. This is enabled by new build scripts in \packages/sandcastle/scripts\ that generate a Pagefind search index and optional embedding vectors for each gallery item. The build process has been consolidated into dedicated scripts (\buildGallery.js\, \buildStatic.js\) that handle gallery list generation, static asset copying via Vite, and TypeScript compilation for the Sandcastle API. A new \createDemo.js\ script allows developers to quickly scaffold new demo entries with standard HTML, JS, and YAML templates. The embedding search can be disabled at build time by setting \generateEmbeddings\ to false, which skips downloading the model and makes the semantic search feature unavailable at runtime.

packages/sandcastle/scripts · high confidence

New built-in GLSL shader constants for rendering passes and mathematical values

This change introduces a suite of new built-in GLSL constants to the engine's shader library, primarily defining identifiers for rendering passes (such as GAUSSIAN\_SPLATS, CESIUM\_3D\_TILE, and CLASSIFICATION) and providing standard mathematical constants (like PI, radians/degrees conversion factors, and epsilon values) that were previously missing or inconsistent. It also adds a workaround constant for depth range to address a bug in IE11 and defines constants for scene modes and the Web Mercator projection limits, ensuring these values are available directly in GLSL code without manual definition.

packages/engine/Source/Shaders/Builtin/Constants · high confidence

New built-in GLSL utility functions for color, atmosphere, and rendering

The engine now provides a comprehensive set of new GLSL built-in functions in the \packages/engine/Source/Shaders/Builtin/Functions\ directory. These additions include color space conversion utilities (HSB, HSL, XYZ), atmospheric scattering calculations (Rayleigh and Mie), and rendering helpers like ACES tonemapping, anti-aliasing, and depth clamping. This expands the available shader primitives for material and effect development without requiring external implementations.

packages/engine/Source/Shaders/Builtin/Functions · high confidence

New extensible camera controller system with context-aware hybrid panning

The engine introduces a new, extensible camera controller architecture in the Scene Controllers module, replacing the legacy screen-space camera controller. This system provides a base Controller interface and a ControllerHost for managing multiple registered controllers with priority ordering. It ships with several new implementations: ScreenSpaceTiltOrbitCameraController for orbiting and tilting, ScreenSpaceMapCameraController and ScreenSpaceElevatorCameraController for panning, ScreenSpaceZoomCameraController for zooming, and a HybridScreenSpacePanCameraController that automatically switches between map and elevator panning based on the camera's viewing angle. All controllers support configurable input bindings (mouse buttons, keyboard modifiers), custom pickWorldPosition callbacks for precise interaction targeting, and features like inertia and damping. This change allows users to replace or extend the default camera behavior with custom implementations.

packages/engine/Source/Scene/Controllers · high confidence

New model rendering pipeline stages for atmosphere, alpha, and edge visibility

The model rendering pipeline now includes dedicated stages for atmosphere (fog), alpha blending, and edge visibility. The new AtmospherePipelineStage applies fog effects to models based on camera distance, while AlphaPipelineStage handles translucency and alpha cutoffs. Additionally, the EdgeDetectionPipelineStage composites screen-space edges by consuming edge buffers generated in a prior pass, ensuring edges are correctly filtered and depth-tested against the scene.

packages/engine/Source/Scene/Model · high confidence

New post-processing shader stages for ambient occlusion, tonemapping, and visual effects

The engine now includes a comprehensive set of new post-processing shader stages located in the PostProcessStages directory. This adds support for screen-space ambient occlusion (with configurable step/direction counts and Gaussian weighting), multiple tonemapping operators (ACES, Filmic, Reinhard, Modified Reinhard, PBR Neutral) with auto-exposure or manual exposure control, and various visual effects including bloom compositing, depth of field, lens flare, night vision, edge detection, FXAA, and silhouette rendering. These stages enable more advanced lighting, color grading, and visual fidelity in the rendered scene.

packages/engine/Source/Shaders/PostProcessStages · high confidence

New sample data for Mars exploration, multipart vehicles, and time-dependent paths

The sample data library has been expanded with several new CZML and GeoJSON files to demonstrate advanced features. A new Mars sandcastle dataset includes the Curiosity rover's trajectory, a 3D model clamped to 3D tiles, and a GeoJSON file of Mars points of interest (such as Jezero Crater and Olympus Mons) with descriptive metadata. Additionally, new samples demonstrate splitting a single vehicle entity across multiple CZML files (MultipartVehicle), creating ground-clamped polylines (ClampToGround), simulating satellite launches with time-varying path colors (SatelliteLaunch), and using time-dependent path properties like lead/trail times and portion-based materials (TimeDependentPaths\_Portions).

Apps/SampleData · high confidence

New shader implementations for materials, billboards, and atmosphere

This change introduces a comprehensive set of new GLSL shaders for the engine's rendering pipeline. It adds dedicated vertex and fragment shaders for various material appearances (Basic, AllMaterial, EllipsoidSurface, PerInstanceColor, Textured) and buffer primitives (Points, Polygons, Polylines), standardizing how geometry is transformed and colored. It also includes new shaders for BillboardCollection with manual depth testing logic, CloudCollection with volumetric noise sampling, and AtmosphereCommon with Rayleigh and Mie scattering calculations. Additionally, a new AdjustTranslucentFS shader handles background color adjustments for translucent passes, and a BrdfLutGeneratorFS shader supports image-based lighting precomputation.

packages/engine/Source/Shaders · high confidence

New terrain and geocoding core modules

The engine core now includes new modules for terrain approximation (ApproximateTerrainHeights), ArcGIS elevation support (ArcGISTiledElevationTerrainProvider), and multiple geocoding services (BingMaps, Cartographic, Google, OpenCage). It also introduces new enums for articulation stages and adds comprehensive 3D Tiles terrain processing capabilities (Cesium3DTilesTerrainGeometryProcessor, Cesium3DTilesTerrainProvider).

packages/engine/Source/Core · high confidence

Sandcastle analytics integration with Amplitude

Sandcastle now tracks usage events to Amplitude, including gallery interactions, code editing, runs, errors, and copilot activity. Analytics are opt-in via the VITE\_AMPLITUDE\_API\_KEY environment variable and include build metadata (environment, commit SHA, branch) for non-production builds. The implementation adds a centralized event catalog, URL scrubbing to prevent code leakage in share links, and a stable share ID generator for cross-user tracking.

packages/sandcastle/src/analytics · high confidence

Sandcastle v2 introduces semantic search, standalone mode, and Amplitude analytics

The Sandcastle package has been restructured into a new version (v2) that adds semantic search capabilities to the gallery using Pagefind, configurable via \sandcastle.config.js\ and build-time flags. A new standalone viewer mode is now available via \standalone.html\ for simplified code execution. Additionally, development environments can now opt into Amplitude analytics by setting \VITE\_AMPLITUDE\_API\_KEY\ and \VITE\_ANALYTICS\_ENVIRONMENT\ in \.env.local\. The gallery structure has been updated to use \sandcastle.yaml\ metadata files, and the build process now supports disabling embedding generation to avoid external model downloads.

packages/sandcastle · high confidence

Sandcastle v2: New React-based interface with settings, sharing, and console mirroring

The Sandcastle application has been rewritten as a new React-based interface (v2) located in \packages/sandcastle/src\. This update introduces a modern UI featuring a configurable settings modal (theme, font, font size, ligatures), a share popover that generates compressed base64 URLs, and a mirrored console that displays execution logs and errors. The editor now uses Monaco with local loading, custom keybindings, and Prettier formatting, while the application state and settings are persisted via local storage.

packages/sandcastle/src · high confidence

The Gallery now supports embedding-based semantic search alongside the existing Pagefind keyword search. When enabled in settings, the system loads a transformer model and pre-computed embeddings to find demos by meaning rather than just text matches, merging the results with keyword hits using a similarity threshold. This feature is opt-in via a settings toggle, respects label filters, and includes UI updates for the search input, filter menu, and gallery cards.

packages/sandcastle/src/Gallery · high confidence

Architecture

New modular model rendering pipeline stages

The model rendering pipeline has been restructured into a series of dedicated, composable GLSL shader stages. This change introduces new files for Atmosphere (fog and ground atmosphere), CPU-based styling, Constant LOD texture sampling, custom shader integration, edge detection and visibility, feature ID handling, geometry processing, image-based lighting (IBL), instancing, PBR lighting, material property evaluation, metadata sampling, and clipping planes/polygons. This modularization replaces the previous monolithic approach, allowing for more flexible and maintainable model rendering logic.

packages/engine/Source/Shaders/Model · high confidence

Behavioural changes

1988 commits (392 fixes) modifying packages/engine/Source/Scene

A change to existing behaviour in packages/engine/Source/Scene — 1988 commits (392 fixs), 387 files.

(repo-wide) · low confidence · unverified

5 commits (1 fix) modifying Apps/SampleData/models/GroundVehicle

A change to existing behaviour in Apps/SampleData/models/GroundVehicle — 5 commits (1 fix), 2 files.

Apps/SampleData/models/CesiumBalloon, Apps/SampleData/models/GroundVehicle, Apps/SampleData/models/Pawns · medium confidence · unverified

Adopts lint-staged for pre-commit hooks

The pre-commit hook configuration has been updated to use lint-staged via npx. This change ensures that linting tasks are executed only on staged files during commits, improving performance and consistency in the development workflow.

.husky · high confidence

BaseLayerPicker widget rewritten with new styling and default providers

The BaseLayerPicker widget has been rewritten to use a new CSS-based UI with a drop-down panel for selecting imagery and terrain providers, replacing the previous implementation. The widget now includes a curated set of default providers, such as Bing Maps, ArcGIS World Imagery, OpenStreetMap, and Stadia Maps styles, along with Cesium World Terrain. The visual design features a dark theme by default with a lighter theme variant, and the component now supports retina tiles for higher resolution displays.

packages/widgets/Source/BaseLayerPicker · high confidence

Build scripts refactored to support the new @cesium/core package

The build tooling has been restructured to accommodate the new @cesium/core package. This includes new scripts to manage the migration of core files from the engine package, generate re-export shims for backward compatibility, and update the build pipeline to handle the new package structure. The build process now correctly orders the build steps for core, engine, and widgets, and updates TypeScript definition paths to reflect the new package locations.

scripts · high confidence

The project has moved the standard copyright and license header into a dedicated JavaScript file (Source/copyrightHeader.js). This change consolidates the licensing text, including the Apache 2.0 license details and CesiumGS attribution, into a single source of truth, likely to simplify maintenance and ensure consistency across the codebase.

Source · high confidence

Cesium Copilot prompt logic and guidelines refined

The Sandcastle Copilot's AI interaction model has been updated with stricter system instructions. The new PromptBuilder enforces a trust boundary where the AI treats workspace code and console output as untrusted data, preventing it from following embedded instructions. It now mandates the use of the \apply\_diff\ tool for all code changes and requires clarifying questions for vague user requests rather than guessing. Additionally, specific guidelines for scene placement (ground-relative positioning) and DOM UI (minimal overlay) have been added, along with a deprecation notice to avoid outdated CesiumJS terrain APIs.

packages/sandcastle/src/copilot/ai/prompts · high confidence

Cesium Inspector widget restructured with new CSS and ViewModel

The Cesium Inspector widget has been refactored to improve maintainability and styling. A dedicated CSS file (CesiumInspector.css) now handles all visual presentation, including layout, transitions, and button states, replacing previous inline or embedded styles. The widget's logic has been split into a new CesiumInspectorViewModel.js, which manages all observable properties (such as frustum visibility, performance display, and primitive picking) and event handling, while the main CesiumInspector.js component focuses on DOM construction and binding. Shared helper functions have been moved to InspectorShared.js to reduce duplication.

packages/widgets/Source/CesiumInspector · high confidence

Deprecated engine exports now re-export from @cesium/core

The deprecated symbols in the engine package (such as Cartesian2, Matrix3, and various Geometry classes) now re-export their implementations from the @cesium/core package. This change aligns the engine's public API with the new core module structure, ensuring that imports from the engine package continue to work while directing users toward the canonical @cesium/core source. The deprecation messages have been updated to reflect this migration path, indicating that these symbols were deprecated in CesiumJS 1.146 and will be removed in 1.150.

packages/engine/Source/Core/Deprecated · high confidence

Eclipse build configuration switched to Gulp

The Eclipse external build tool configuration has been updated to use Gulp instead of the previous build system. The new \automaticBuild.launch\ file invokes the Gulp CLI (\./node\_modules/gulp/bin/gulp.js build\) to handle full, incremental, and auto builds, ensuring that the IDE's build process aligns with the project's current build tooling.

.externalToolBuilders · high confidence

Eclipse launch configurations updated to use Gulp and Node directly

The Eclipse launch configurations in the \launches\ directory have been reconfigured to invoke build tasks via Gulp (e.g., \build\, \clean\, \minify\) and run the local server using Node.js directly, replacing previous external tool settings. This change ensures that build and run actions in the IDE explicitly target the correct Gulp scripts and Node environment, aligning with the project's shift to a Gulp-based build system.

launches · high confidence

Introduce dedicated build script for the engine package

The engine package now has its own standalone build process defined in \packages/engine/scripts/build.js\. This script handles engine-specific tasks such as converting GLSL shaders to JavaScript, generating the engine's \index.js\, bundling workers, and copying static assets (including CesiumWidget files) into the engine's \Build\ directory. It also generates a workspace-specific \SpecList.js\ and bundles engine specs, allowing the engine to be built and tested independently without assuming dependencies on other packages.

packages/engine/scripts, packages/widgets/scripts · high confidence

Introduce new ES module-based CesiumViewer application

The CesiumViewer demo app has been replaced with a new implementation that uses ES modules instead of the previous Dojo-based architecture. This new viewer supports loading CZML, GeoJSON, KML, and GPX data sources via query parameters, including automatic format detection by file extension. It features a configurable base layer (with TMS support), a base layer picker, terrain with water masks and vertex normals, and optional widgets like the Cesium Inspector and FPS stats display. The application also handles errors via an on-screen panel or alert, supports camera view parameters, and includes a loading indicator.

Apps/CesiumViewer · high confidence

Introduces structured iframe communication and improved console logging for Sandcastle

The Sandcastle utility layer now uses a typed \IframeBridge\ to manage messages between the sandboxed code execution environment (bucket) and the main application, replacing ad-hoc messaging with a structured protocol that includes specific message types like \runCode\, \runComplete\, and \bucketReady\. This change also introduces a \ConsoleWrapper\ that enhances the developer experience by providing more readable logging output for complex objects and functions, and by extracting line numbers from error stacks to help pinpoint issues in user code. Additionally, the utilities now include a \useCodeState\ hook to manage the editor's code and HTML state, and a \usePageTitle\ hook to dynamically update the browser tab title with a dirty indicator when code is modified.

packages/sandcastle/src/util · high confidence

Migrate geometry workers to ESM and TaskProcessor

The geometry creation workers in the engine have been rewritten as ES modules and now use the new TaskProcessor infrastructure instead of the legacy RequireJS-based worker system. This change updates the worker entry points (such as createGeometry, createBoxGeometry, and vector tile processors) to use ESM imports and the createTaskProcessorWorker adapter, enabling asynchronous task processing and modern module resolution for geometry calculations.

packages/engine/Source/Workers · high confidence

New dark-themed UI for the Bucket template with StrataKit styling

The Bucket template now features a completely new visual design, adopting a dark theme with a radial gradient background and specific color variables aligned with the StrataKit design system. This update introduces a dedicated loading overlay to prevent visual flashing during page load and runtime, and consolidates toolbar styling to ensure consistent appearance across all sandcastles. Users will see a refreshed interface with improved layout handling for the toolbar and info panels.

packages/sandcastle/public/templates · high confidence

New linting rules and custom JSDoc tags for documentation generation

The documentation tooling now enforces stricter JSDoc standards via new ast-grep linting rules in Tools/ast-grep/rules, covering ES6 class declarations, static fields, and enum exports to ensure accurate TypeScript type definitions. Additionally, a custom JSDoc template in Tools/jsdoc introduces new tags such as @internalConstructor, @glsl, @performance, @demo, @experimental, @optional, and @import, while also adding a keyboard shortcut (Ctrl+K) to the documentation search interface.

Tools · high confidence

Redesigned 3D Tiles Inspector with expanded debugging controls

The Cesium3DTilesInspector widget has been rewritten to provide a more comprehensive debugging interface for 3D Tiles. The new UI includes dedicated sections for Tileset, Display, Update, Logging, Tile Debug Labels, Style, and Optimization. Users can now adjust Point Cloud Shading settings (Geometric Error Scale, Maximum Attenuation, Base Resolution) and Eye Dome Lighting parameters directly. The inspector also exposes detailed rendering, cache, feature, styling, optimization, and memory statistics, along with controls for dynamic Screen Space Error (SSE) and tileset picking.

packages/widgets/Source/Cesium3DTilesInspector · high confidence

Renderer subsystem refactored to ES6 classes and modularized

The core rendering engine components in \packages/engine/Source/Renderer\ have been rewritten using ES6 class syntax and split into individual modules. Key classes such as \DrawCommand\, \Buffer\, \ClearCommand\, and \ComputeCommand\ now use modern class definitions instead of constructor functions, and the renderer's internal architecture is organized into distinct files for buffers, commands, and context management. This change improves code maintainability and type safety without altering the external API.

packages/engine/Source/Renderer · high confidence

Sandcastle templates migrate to ES modules and adopt StrataKit styling

The Sandcastle templates now use ES modules (Sandcastle.ts, bucket.html) instead of the previous IIFE/script-tag approach, enabling modern module loading and cleaner separation of concerns. The UI styling has shifted to use StrataKit foundations and mimic styles, replacing the older bucket.css with inline minimal styles to prevent flash-of-unstyled-content and aligning UI components like toggle buttons and toolbar buttons with the new design system. TypeScript configuration is updated to target ES2020 and use ESNext modules, ensuring consistent module resolution and type checking for the new module-based templates.

packages/sandcastle/templates · high confidence

Simplified Hello World example using the Viewer API

The Hello World application in the Apps directory has been simplified to use the Cesium.Viewer API instead of the lower-level CesiumWidget. The example now relies on the standard Widgets CSS and provides a minimal, single-page setup that initializes a viewer instance directly, making it easier for users to understand the basic integration pattern.

Apps · high confidence

Standardized Eclipse IDE configuration for JavaScript development

The project now includes a comprehensive set of Eclipse \.settings\ files that standardize the development environment for JavaScript. This configuration enforces UTF-8 encoding and LF line endings for new files, applies consistent code formatting and style rules via \org.eclipse.wst.jsdt.core.prefs\ and \org.eclipse.wst.jsdt.ui.prefs\, and integrates JSHint for linting while disabling Eclipse's native JavaScript semantic validation to avoid conflicts. It also defines project scope exclusions for \ThirdParty\ and \Workers\ directories in \.jsdtscope\ and configures validation preferences for HTML, JSON, and XML files.

.settings · high confidence

Stratakit-mimic CSS layer and component styles for Sandcastle

The Sandcastle public styles now include a dedicated 'stratakit-mimic' layer that replicates the visual appearance of Stratakit components (Button, Field, Select, Switch, Icon, Label) using extracted CSS variables and class names to avoid namespace conflicts. This addition introduces custom tokens for border radii and focus outlines, applies specific layout adjustments for form elements, and ensures the Cesium viewer's internal elements are exempt from global resets while maintaining a light color scheme for iframes.

packages/sandcastle/public/styles · high confidence

Updated Cesium 3D Tiles sample data to use 'uri' and align with current specifications

The sample data files in the Cesium 3D Tiles directory have been updated to comply with the latest 3D Tiles specification. This includes renaming the 'url' property to 'uri' in Point Cloud Draco tilesets and ensuring all tileset definitions (including Batched and Point Cloud variants) use the correct 'uri' field for content references. These changes ensure that the sample data loads correctly with the current Cesium engine version.

Apps/SampleData/Cesium3DTiles/PointCloud · high confidence

Updated Draco-compressed CesiumMilkTruck model to glTF 2.0

The CesiumMilkTruck sample model in the DracoCompressed directory has been updated to the glTF 2.0 specification. This change ensures the model aligns with Cesium's current conventions for handling Draco-compressed meshes, which may affect how the sample renders or loads in applications expecting the newer standard.

Apps/SampleData/models/DracoCompressed · high confidence

Updated VoxelBox3DTiles sample with non-uniform dimensions and corrected statistics

The VoxelBox3DTiles sample data has been updated to use non-uniform voxel dimensions (2x3x4 in the tile content versus 2x4x3 in the tileset metadata) and includes corrected statistics for the voxel class properties. This ensures the sample accurately reflects the structural metadata and availability information required for proper rendering of 3D Tiles voxels.

Apps/SampleData/Cesium3DTiles/Voxel/VoxelBox3DTiles · high confidence

Updated ellipsoid voxel sample data with non-uniform dimensions and structural metadata

The voxel sample data in the \VoxelEllipsoid3DTiles\ directory has been updated to use non-uniform voxel dimensions (2x3x4) and includes structural metadata via the \EXT\_structural\_metadata\ extension. The tileset now defines a \voxel\ class with a \VEC4\ property and provides accurate statistics for this property, ensuring correct rendering and data interpretation for users testing ellipsoid-based voxel visualizations.

Apps/SampleData/Cesium3DTiles/Voxel/VoxelEllipsoid3DTiles · high confidence

Updated sample models to use new glTF extensions and metadata schemas

The sample models in Apps/SampleData/models have been updated to align with recent schema changes. The BoxInstanced model now utilizes the EXT\_structural\_metadata extension with a revised propertyTable structure and the EXT\_instance\_features extension for per-instance metadata, replacing previous naming conventions. Additionally, the BoxUnlit model has been updated to explicitly use the KHR\_materials\_unlit extension for its material definition.

Apps/SampleData/models/BoxInstanced · high confidence

Updated vendored gltf-pipeline library to version 4.3.0

The internal glTF processing pipeline has been updated to use gltf-pipeline version 4.3.0. This sync introduces new utility modules for traversing and modifying glTF assets, including functions for iterating over hierarchy elements, managing extensions, and handling binary GLB parsing. The update also adds support for the KHR\_meshopt\_compression extension in loaders and ensures proper handling of KHR\_materials\_specular PBR models.

packages/engine/Source/Scene/GltfPipeline · high confidence

Updated voxel cylinder sample tileset to use non-uniform dimensions and new bounding volume extension

The VoxelCylinder3DTiles sample data has been regenerated to align with the latest 3DTILES\_bounding\_volume\_cylinder specification. The tileset now utilizes non-uniform voxel dimensions (2x3x4) instead of uniform cubes, and the root tile's bounding volume reflects the full Earth radius (6,378,137.0m height) to properly represent global-scale cylinder regions. This ensures the sample correctly demonstrates implicit tiling and structural metadata for these specific voxel configurations.

Apps/SampleData/Cesium3DTiles/Voxel/VoxelCylinder3DTiles · high confidence

Voxel rendering refactored to use eye coordinates and a unified intersection system

The voxel rendering pipeline has been rewritten to perform raymarching and intersection calculations in eye coordinates, replacing the previous local-space approach. This change introduces a new modular intersection system (IntersectBox, IntersectCylinder, IntersectEllipsoid) that returns normals and bounds in eye coordinates, enabling correct rendering with orthographic cameras and fixing artifacts related to thin shapes and longitude bounds. The refactoring also consolidates clipping plane and depth buffer intersection logic into a shared \intersectScene\ entry point, improving accuracy and stability for all voxel shape types.

packages/engine/Source/Shaders/Voxels · high confidence

Test coverage

2 commits adding/updating tests in Specs/Data/Cesium3DTiles/Metadata/ImplicitMultipleContentsWithMetadata/ground, Specs/Data/Cesium3DTiles/Metadata/ImplicitMultipleContentsWithMetadata/sky; Add Playwright-based end-to-end tests; Add test image assets for Specs; Added 3D Tiles test fixtures for glTF content validation; Added CZML test data files for validation and satellite scenarios; Added KML test fixtures for namespace, style, and network link handling; Added TypeScript type-checking smoke tests; Added batched 3D Tiles test fixtures; Added comprehensive test coverage for Model rendering pipeline stages and loaders; Added glTF 2.0 test models for morph targets, animations, and material extensions; Added regression test data for Cesium 3D Tiles external tileset references; Added regression test for external tilesets in multiple contents; Added regression test for tileset with only external contents; Added sample 3D Tiles test data for tileset validation; Added sample GPX test fixture; Added sample data for implicit tilesets with JSON subtrees; Added sample implicit tileset test data; Added test assets for East-North-Up coordinate system validation; Added test coverage for Cesium 3D Tiles point cloud tileset; Added test coverage for CompositeOfInstanced tileset; Added test data fixtures for HTML, JSON, text, and GeoJSON formats; Added test data for 3D Tiles Metadata schema validation; Added test data for 3D Tiles Point Cloud specifications; Added test data for 3D Tiles Voxel Cylinder support; Added test data for 3D Tiles copyright parsing; Added test data for 3D Tiles instancing without normals; Added test data for 3D Tiles subtree expiration; Added test data for 3D Tiles tileset replacement; Added test data for 3D Tiles tilesets with transforms; Added test data for 3D Tiles viewer request volume replacement; Added test data for Cesium 3D Tiles implicit metadata subtrees; Added test data for Cesium 3D Tiles metadata subtree version 1.1; Added test data for InstancedRTC i3dm tileset; Added test data for InstancedRedMaterial 3D Tiles; Added test data for TilesetReplacement2; Added test data for composite 3D Tiles tilesets; Added test data for external tileset replacement refinement; Added test data for implicit content bounding volume semantics; Added test data for implicit tile bounding volume semantics subtrees; Added test data for implicit tile metadata subtrees in 3D Tiles 1.0 and 1.1; Added test data for instanced 3D tiles with batch table binary; Added test data for instanced 3D tiles with copyright metadata; Added test data for instanced 3D tiles with transform; Added test data for instanced 3D tiles with zero runtime constant translation; Added test data for instanced animated 3D tiles; Added test data for instanced textured 3D tiles; Added test data for mixed tileset refinement strategies; Added test data for multi-attribute voxel tiles; Added test data for nested 3D Tiles tilesets; Added test data for nested 3D Tiles tilesets with external resources; Added test data for repeated copyright handling in 3D Tiles; Added test data for viewer request volume support; Added test dataset for 3D Tiles property attributes with metadata statistics; Added test fixture for 3DTILES\_batch\_table\_hierarchy extension; Added test fixture for Cesium 3D Tiles terrain tileset; Added test fixture for legacy BatchTableHierarchy; Added test fixture for shared texture handling in 3D Tiles; Added test fixtures for 3D Tiles Group Metadata; Added test fixtures for 3D Tiles Metadata Grouping; Added test fixtures for 3D Tiles Metadata tileset schemas; Added test fixtures for 3D Tiles Metadata with multiple contents; Added test fixtures for 3D Tiles content metadata; Added test fixtures for 3DTILES\_metadata external and embedded schemas; Added test fixtures for 3DTILES\_multiple\_contents extension in Cesium 3D Tiles 1.0 and 1.1; Added test fixtures for ArcGIS MapServer identify operations; Added test fixtures for Batch Table Hierarchy scenarios; Added test fixtures for Cesium 3D Tiles Vector tilesets; Added test fixtures for Cesium terrain tile JSON parsing; Added test fixtures for GeoJson geometry types; Added test fixtures for WMS GetFeatureInfo response formats; Added test fixtures for implicit tiling metadata semantics; Added test fixtures for instanced 3D tilesets; Added test fixtures for uniform Cesium 3D Tiles tilesets; Added test infrastructure and smoke tests for the engine package; Added test tileset for external GLTF instancing; Added test tilesets for Geometry3DTileContent; Added test tilesets for instanced 3D Tiles with and without batch tables; Added test workers for task processor validation; Added unit test data for Gaussian Splats tilesets; Added unit test data for implicit multiple contents with metadata; Added unit tests for CesiumWidget initialization and configuration; Added unit tests for Core terrain, geocoder, and utility modules; Added unit tests for DataSource graphics, visualizers, and properties; Added unit tests for GPM loader extensions; Added unit tests for Scene subsystem components; Added unit tests for core renderer components; Added unit tests for widget components and view models; Added voxel test datasets for box and ellipsoid geometries; Expanded test infrastructure and mock utilities for 3D Tiles and rendering; Updated test fixtures for Cesium 3D Tiles implicit subtrees.

Dependencies

CesiumJS 1.146.0 release with updated dependencies and Node 22 requirement

This release updates the CesiumJS package to version 1.146.0 and raises the minimum required Node.js version to 22.0.0. The dependency list has been refreshed, including upgrades to protobufjs (^8.8.0), dompurify (^3.4.14), and various build tools like esbuild (^0.28.2), gulp (^5.0.0), and typescript (^6.0.2). The release also introduces new GitHub Actions for checking CLAs and updating tokens, alongside updates to internal tooling packages like rollup-plugin-strip-pragma and the sandcastle demo application.

(dependencies) · high confidence

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

How this codebase got here

Score

  • CAI 31 → 35 (+4.2)
  • Rubric changed (rubric-2026.09.11 → rubric-2026.09.18) — scores are not directly comparable.

Lenses

  • Code Health 34 → 53 (+19.0)
  • Architecture 62 → 60 (-1.7)
  • Maturity 62 → 62 (+0.6)
  • Readiness 51 → 28 (-23.6)
  • Security 21 → 43 (+21.8)
  • Accessibility 33 → 31 (-1.7)
  • Performance 60 (new)

Resolved (306)

  • BoundingSphere.fromEncodedCartesianVertices (cognitive 25) (packages/engine/Source/Core/BoundingSphere.js)
  • BoundingSphere.fromEncodedCartesianVertices (cyclomatic 19) (packages/engine/Source/Core/BoundingSphere.js)
  • BoundingSphere.fromPoints (cognitive 25) (packages/engine/Source/Core/BoundingSphere.js)
  • BoundingSphere.fromPoints (cyclomatic 17) (packages/engine/Source/Core/BoundingSphere.js)
  • Cesium3DTile (cognitive 32) (packages/engine/Source/Scene/Cesium3DTile.js)
  • Change coupling: Matrix2.js ↔ Matrix3.js (packages/engine/Source/Core/Matrix2.js)
  • Change coupling: Matrix2.js ↔ Matrix4.js (packages/engine/Source/Core/Matrix2.js)
  • ClassTooLong: BoundingSphere (packages/engine/Source/Core/BoundingSphere.js)
  • ClassTooLong: Cartesian3 (packages/engine/Source/Core/Cartesian3.js)
  • ClassTooLong: Matrix4 (packages/engine/Source/Core/Matrix4.js)
  • ClassTooLong: Rectangle (packages/engine/Source/Core/Rectangle.js)
  • CoplanarPolygonGeometry.createGeometryFromPolygon (cognitive 33) (packages/engine/Source/Core/CoplanarPolygonGeometry.js)
  • CoplanarPolygonGeometry.createGeometryFromPolygon (cyclomatic 23) (packages/engine/Source/Core/CoplanarPolygonGeometry.js)
  • CorridorGeometry.combine (cognitive 59) (packages/engine/Source/Core/CorridorGeometry.js)
  • CorridorGeometry.combine (cyclomatic 31) (packages/engine/Source/Core/CorridorGeometry.js)
  • CorridorGeometry.computePositionsExtruded (cognitive 16) (packages/engine/Source/Core/CorridorGeometry.js)
  • CorridorGeometry.extrudedAttributes (cognitive 46) (packages/engine/Source/Core/CorridorGeometry.js)
  • CorridorGeometry.extrudedAttributes (cyclomatic 26) (packages/engine/Source/Core/CorridorGeometry.js)
  • CorridorOutlineGeometry.combine (cognitive 32) (packages/engine/Source/Core/CorridorOutlineGeometry.js)
  • CorridorOutlineGeometry.combine (cyclomatic 17) (packages/engine/Source/Core/CorridorOutlineGeometry.js)
  • …and 286 more

New (446)

  • ArcGisMapServerImageryProvider.ArcGisMapServerImageryProvider.pickFeatures (cognitive 19) (packages/engine/Source/Scene/ArcGisMapServerImageryProvider.js)
  • BillboardCollection.BillboardCollection.update (cyclomatic 109) (packages/engine/Source/Scene/BillboardCollection.js)
  • BillboardVisualizer.BillboardVisualizer.update (cognitive 16) (packages/engine/Source/DataSources/BillboardVisualizer.js)
  • BoundingSphere.fromEncodedCartesianVertices (cognitive 25) (packages/core/Source/BoundingSphere.js)
  • BoundingSphere.fromEncodedCartesianVertices (cyclomatic 19) (packages/core/Source/BoundingSphere.js)
  • BoundingSphere.fromPoints (cognitive 25) (packages/core/Source/BoundingSphere.js)
  • BoundingSphere.fromPoints (cyclomatic 17) (packages/core/Source/BoundingSphere.js)
  • BoxGeometry.BoxGeometry.createGeometry (cognitive 18) (packages/core/Source/BoxGeometry.js)
  • Buffer.Buffer.copyFromBuffer (cognitive 17) (packages/engine/Source/Renderer/Buffer.js)
  • Buffer.Buffer.copyFromBuffer (cyclomatic 20) (packages/engine/Source/Renderer/Buffer.js)
  • Buffer.Buffer.getBufferData (cognitive 16) (packages/engine/Source/Renderer/Buffer.js)
  • Camera.Camera._updateCameraChanged (cyclomatic 23) (packages/engine/Source/Scene/Camera.js)
  • CameraFlightPath.CameraFlightPath.createTween (cognitive 23) (packages/engine/Source/Scene/CameraFlightPath.js)
  • CameraFlightPath.CameraFlightPath.createTween (cyclomatic 22) (packages/engine/Source/Scene/CameraFlightPath.js)
  • CartographicGeocoderService.CartographicGeocoderService.geocode (cognitive 24) (packages/engine/Source/Core/CartographicGeocoderService.js)
  • CartographicGeocoderService.CartographicGeocoderService.geocode (cyclomatic 16) (packages/engine/Source/Core/CartographicGeocoderService.js)
  • Cesium3DTile (cognitive 34) (packages/engine/Source/Scene/Cesium3DTile.js)
  • Cesium3DTile.Cesium3DTile.createBoundingVolume (cognitive 16) (packages/engine/Source/Scene/Cesium3DTile.js)
  • Cesium3DTileBatchTable.Cesium3DTileBatchTable.addDerivedCommands (cognitive 56) (packages/engine/Source/Scene/Cesium3DTileBatchTable.js)
  • Cesium3DTileBatchTable.Cesium3DTileBatchTable.addDerivedCommands (cyclomatic 24) (packages/engine/Source/Scene/Cesium3DTileBatchTable.js)
  • …and 426 more

Changes since last survey

  • 87 commits — 75 feature/other, 12 fixes

By area

  • (repo) — 26 commits
  • (root) — 26 commits
  • packages/engine — 20 commits
  • packages/core — 4 commits
  • packages/sandcastle — 4 commits
  • .github/workflows — 3 commits
  • Documentation/Contributors — 1 commit
  • scripts/applyCoreOtherFixes.js — 1 commit
  • scripts/build-utilities.js — 1 commit
  • scripts/updateIonToken.js — 1 commit

Notable commits

  • fix: CI: Fix multi-line script syntax
  • fix: ESLint: Pin to v10.10.x until regression fixed
  • fix: Fix doc errors in Billboard and QuadtreeTile
  • fix: Fix handling of Math.js and WebGLConstants.js
  • fix: Fix import path in gulpfile.apps.js
  • fix: Fix missing Sandcastle ambient types
  • fix: Fix optional-then-required parameter in arrayRemoveDuplicates
  • fix: Fix script issues affecting post-move builds
  • fix: Merge pull request #13741 from TianHengZhuang/docs/fix-feature-id-label-types
  • fix: Merge pull request #13858 from CesiumGS/fix-bounding-sphere-state
  • fix: fix
  • fix: fix
  • change: Add scripts to move files to core package
  • change: Adjust deprecation messaging for symbols moved to core package
  • change: BufferPrimitive: Add .pickObject accessors
  • change: BufferPrimitiveCollection: Add .setPositions() and ._dirtyFlags for fast position-only updates
  • change: CI: Tidy up steps for linting types and JSDoc
  • change: Clean up duplicated build code
  • change: Don't build widgets to run engine specs
  • change: Expose interfaces and typedefs for cross-package TypeScript imports
  • …and 67 more

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

CesiumGS/cesium was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.

About this page

  • The score is its most recent published measurement, taken on 1 October 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit b8d3a36fe98a3e432eb89253c95d5f20e605e0f1 — the exact code this score is about.
  • Scored under rubric-2026.09.18 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-e569280dd5e2.