CesiumGS/cesium
35.0
Weak · 1 October 2026
425.3k
lines of production code
JavaScript
primary language
2
measurements over time
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
Introduce standalone Sandcastle page without search
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
New build scripts and semantic search for Sandcastle gallery
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
Vector-based semantic search added to the Gallery
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
Centralized copyright header management
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.