Switch branches/tags
3d-tiles-cache 3d-tiles-height GSoC_Sandcastle_Knockout alpha-hashing alpha-style animated-billboards attenuation-additive-updated attenuation-patch autonomous-cars balloon betterMipmaps blit bvh cacheModelTextures camera-close-to-tileset camera-limiter camera-panel cancel-requests ccw-hpr clip-classified clipping-box-point-clouds clipping-planes-master configurable-pick-width coverage czml-video-material czmlImageryLayers dashedlines-2 dataSource-vertexFormat dataSourceBrowser default-batch-id enable-billboard-depth enable-lighting entity-headers entity-memory entity-overlays field-of-view fill-tiles fix-pick fix-visibility-check gml gpx greenkeeper/initial hdr http2 ibl ie-fixes imagery_layers_wami imageryProjection imageryReprojectionExperiments improveLoadOrdering ios-depth-texture lighting-test master merge-depth mesa mesh-compression-open3dgc model-negative-scale multiple-views-2 mutables no-imagery-functions offCenterProjection offlineTests onePerspectiveFrustum oneTexturePerLayer outline-width particle-datasource perFragmentLod pick-ray pixelPerfectImageryReprojection point-cloud-processor points-on-terrain polyline-depth-fix polylineVolumeOverhaul projections property-result-parameter referenceFrames refresh-imagery-provider release-1-22a request-queue revert-5017-report-geometric-error sandcastle-ui selective-fxaa settings shadows-demo showCurrentViewFrustum showDataSource sialia-sialis single-billboard-labels skybox-ibl splines tech-demos terrain-snow-shading terrainNormalMaps timer-queries trapezoid tutorials update-chappes validate viewer-pick-entities viewports webvr winci wms wmts-t
Nothing to show
Find file Copy path
87 lines (59 sloc) 8.09 KB

Thanks for contributing to CesiumJS. You rock! Are you

To ensure an inclusive community, contributors and users in the Cesium community should follow the code of conduct.

Submitting an Issue

If you have a question, do not submit an issue; instead, search the Cesium forum. The forum is very active and there are years of informative archives, often with answers from the core Cesium team. If you do not find an answer to your question, start a new thread and you'll likely get a quick response.

If you think you've found a bug in CesiumJS, first search the issues. If an issue already exists, please add a comment expressing your interest and any additional information. This helps us prioritize issues.

If a related issue does not exist, submit a new one. Please be concise and include as much of the following information as is relevant:

  • Minimum amount of sample code (and data) shared through Sandcastle using a GitHub gist.
  • Screenshot or animated .gif if appropriate (try LICEcap). For example, see #3153. Screenshots are particularly useful for exceptions and rendering artifacts. If it is a rendering artifact, also include the output of
  • Link to the thread if this was discussed on the Cesium forum or elsewhere. For example, see #3045.
  • Your operating system and version, browser and version, and video card. Are they all up-to-date? Is the issue specific to one of them?
  • The version of Cesium. Did this work in a previous version?
  • Ideas for how to fix or workaround the issue. Also mention if you are willing to help fix it. If so, the Cesium team can often provide guidance and the issue may get fixed more quickly with your help.

Getting Started Contributing

Everyone is welcome to contribute to CesiumJS!

In addition to contributing core CesiumJS code, we appreciate many types of contributions:

  • Being active on the Cesium forum by answering questions and providing input on Cesium's direction.
  • Showcasing your Cesium apps on the demos page or writing a guest post blog on the Cesium blog. To do either, contact Sarah Chow,
  • Writing tutorials, creating examples, and improving the reference documentation. See the issues labeled doc.
  • Submitting issues as described above.
  • Triaging issues. Browse the issues and comment on issues that are no longer reproducible or on issues which you have additional information.
  • Creating ecosystem projects for glTF, CZML, and 3D Tiles.

For ideas for CesiumJS code contributions, see:

See the Build Guide for how to build and run Cesium on your system.

Always feel free to introduce yourself on the Cesium forum to brainstorm ideas and ask for guidance.

Opening a Pull Request

We love pull requests. We strive to promptly review them, provide feedback, and merge. Interest in Cesium is at an all-time high so the core team is busy. Following the tips in this guide will help your pull request get merged quickly.

If you plan to make a major change, please start a new thread on the Cesium forum first. Pull requests for small features and bug fixes can generally just be opened without discussion on the forum.

Contributor License Agreement (CLA)

Before we can merge a pull request, we require a signed Contributor License Agreement. There is a CLA for:

This only needs to be completed once, and enables contributions to all of the projects under the Analytical Graphics Inc organization, including CesiumJS. The CLA ensures you retain copyright to your contributions, and provides us the right to use, modify, and redistribute your contributions using the Apache 2.0 License.

Please email a completed CLA with all fields filled in to Related questions are also welcome.

Pull Request Guidelines

Our code is our lifeblood so maintaining CesiumJS's high code quality is important to us.

  • Review the Contributor Guides. In addition to CesiumJS-specific topics, they contain a lot of general software development best practices.
  • If this is your first contribution to CesiumJS, add your name to
  • For an overview of our workflow see github pull request workflows.
  • Pull request tips
    • After you open a pull request, the friendly cesium-concierge bot will comment with a short automated review. At least one human will also review your pull request.
    • If your pull request fixes an existing issue, include a link to the issue in the description (like this: #1). Likewise, if your pull request fixes an issue reported on the Cesium forum, include a link to the thread.
    • If your pull request needs additional work, include a task list.
    • Once you are done making new commits to address feedback, add a comment to the pull request such as "this is ready" since GitHub doesn't notify us about commits.
  • Code and tests
    • Follow the Coding Guide.
    • Verify your code passes ESLint. Run ESLint for all of CesiumJS with npm run eslint or automatically run ESLint when files are saved with npm run eslint-watch. See the Build Guide.
    • Verify that all tests pass, and write new tests with excellent code coverage for new code. Follow the Testing Guide.
    • If you added new identifiers to the CesiumJS API:
    • If you added third-party libraries, including new version of existing libraries, update Mention it in If you plan to add a third-party library, start a GitHub issue discussing it first.

Code of Conduct

To ensure an inclusive community, contributors and users in the Cesium community should follow the code of conduct.