-
Notifications
You must be signed in to change notification settings - Fork 3.5k
CesiumJS Features Checklist
jjspace edited this page Nov 1, 2024
·
4 revisions
CesiumJS is built with care; code is publicly peer-reviewed, is unit tested with over 90% code coverage, and is statically analyzed, documented, and developed by an experienced team.
- Use 3D Tiles to stream, style, and interact with heterogeneous 3D data, including photogrammetry models, 3D buildings, CAD and BIM exterior and interiors, and point clouds.
- Style point clouds with size attenuation and Eye-Dome Lighting.
- Classify 3D tilesets or terrain with another 3D tileset or graphics primitive. Invert classification
- Optimize streaming performance with Google Draco mesh and point cloud compression.
- Visualize high-resolution global terrain. Optionally exaggerate terrain. Apply procedural materials such as height- or slope-based color ramps.
- Layer imagery from multiple sources, including WMS, TMS, WMTS with time-dynamic imagery, Cesium ion, Bing Maps, Mapbox, GEE, OpenStreetMap, ArcGIS MapServer, standard image files, and custom tiling schemes. Each layer can be alpha-blended with the layers below it, and its brightness, contrast, gamma, hue, and saturation can be dynamically changed. Two layers can be split across the screen.
- Stream terrain, imagery, 3D Tiles, and glTF assets from Cesium ion.
- Use legacy Google Earth Enterprise terrain and imagery
- Industry standard vector formats, such as KML, GeoJSON and TopoJSON, including terrain clamping.
- Draw 3D models using glTF 2.0 with Physically-Based Rendering (PBR) materials, animations, skins, and morph targets. Clamp models to terrain and highlight their silhouette. Use the binary glTF, Google Draco, and WEB3D_quantized_attributes extensions to reduce the file size.
- Create data-driven time-dynamic scenes using CZML and stream massive amounts of time-dynamic data with multi-part CZML.
- Draw and style a wide range of geometries:
- Polylines and dashed polylines
- Billboards
- Labels
- Points
- Draw and extrude polygons, polygons with holes, rectangles, circles and ellipses
- Boxes, cylinders, spheres and ellipsoids
- Corridors, polyline volumes, and walls
- Clamp polylines, polygons, labels, billboards, and ground-based primitives to the ground/terrain.
- Layer and z-order ground-based primitives.
- Create visual effects including:
- Shadows, including self-shadows and soft-shadows based on the sun position.
- Atmosphere, fog, sun, sun lighting, moon, stars, and water.
- Particle system effects such as smoke, fire, and sparks.
- Post-processing effects including Ambient Occlusion, Bloom, Depth of Field, Silhouettes, and Lens Flare. Selectively apply post-processing effects to individual primitives. Create custom post-processing effects and pipelines of stages.
- Fast Approximate Anti-aliasing (FXAA)
- Efficient translucent primitives using Order Independent Transparency (OIT).
- Apply clipping planes to 3D tilesets, terrain, and 3D models.
- Individual object picking and terrain picking.
- Camera navigation with mouse and touch handlers for rotate, zoom, pan with inertia, flights, free look, and terrain collision detection.
- Batching, culling, and JavaScript and GPU optimizations for performance. Optimized to reduce CPU and power usage when not animating.
- Precision handling for large view distances (logarithmic depth buffer and multiple frusta to avoid z-fighting) and large world coordinates (emulated GPU double precision to avoid jitter
- A 3D globe, 2D map, and Columbus view (2.5D) with the same API. 3D views can use a perspective or orthographic projection.
- Display military symbology, such as MIL-STD-2525 and STANAG APP6, by integrating with milsymbol.
- Cluster points, labels and billboards.
- Timeline and animation widgets for controlling simulation time.
- Base layer picker widget for selecting imagery and terrain.
- Selection and info box widgets for highlighting objects and displaying information.
- Geocoder widget for flying to addresses and landmarks using Cesium ion web services and custom services.
- Home view widget to fly to the default camera view.
- Scene mode picker widget to morph between 3D, 2D, and Columbus view.
- Fullscreen widget for toggling fullscreen mode.
- Navigation help widget for providing mouse and touch instructions.
- Performance watch dog for monitoring the frame rate.
- Inspector widget for advanced graphics debugging.
- WebVR widget for viewing Cesium with VR devices like Google Cardboard.
- Reference frames such as World Geodetic System (WGS84), International Celestial Reference Frame (ICRF), and east-north-up.
- Equidistant Cylindrical and Mercator 2D map projections.
- Conversions such as longitude/latitude/height to Cartesian.
- Fast Cartesian, spherical, cartographic, matrix, and quaternion types.
- Julian dates, leap seconds, and UTC and TAI time standards.
- Use Cesium as a single .js file (plus .css and web-workers .js files) or with Asynchronous Module Definition (AMD) to include only what you use.
- Integrate with Webpack
- Create cross-platform desktop apps with Cesium and Electron.
- Create mobile apps with Cesium and Cordova