Skip to main content

Overview is a modern GPU toolkit for the Web, focused on processing and visualization of big data. supports the latest web GPU standards from W3C and Khronos. is an OpenJS Foundation / Linux Foundation project.


This documentation describes v9.0. See our release notes to learn what is new. Docs for older versions are available on github: v8.5, v7.3, v6.4.

Highlights is a modern GPU toolkit for the Web, created to facilitate processing and visualization of big data.

  • Portable GPU API - for working with GPUs in JavaScript.
  • TypeScript - All APIs are rigorously typed.
  • Pluggable backends - for WebGPU and WebGL .
  • Engine-level classes - Model, Transform and AnimationLoop, as well as scenegraph support.
  • glTF support.
  • Shader management system - supports shader modules, dependencies, injection etc.
  • Shader module library - Pre-optimized moduls for compute, visual effects and post processing.

For 3D math and data loading, uses companion framworks:

  • - wide range of 3D and geospatial data format standards.
  • - a variety of high precision geospatial and 3D math logic. is intended to be a foundation on top of which to build higher-level GPU frameworks. The primary example is

  • - geospatial GPU visualization and compute via a high-performance functional programming API.

API Philosophy

Many 3D / GPU libraries provide portable, higher level "3D engine" type abstractions that shield the user from the details of how the GPU works. This is great for many use cases but not always ideal.

In contrast, is designed to give developers full access to GPU programming and allow you to work directly with shaders and GPU data structures. offers APIs that are similar to the underlying WebGPU and WebGL APIs. This maximizes knowledge reuse, as well as your understanding of what is actually happening under the hood.

For more information, refer to API philosophy.

Supported Environments supports recent versions of the most commonly used evergreen browsers (i.e. Chrome, Firefox, Safari, Edge).

  • Mobile browsers should be supported (assuming the mobile browser is an updated evergreen browser), though CPU and GPU memory limits will be lower.
  • Pre-chrome Edge is not supported, and IE11 is absolutely not supported.
  • Running on top of software emulated GPUs is possible but known to have occasional issues. Check your Chrome settings to make sure you are not using the SwiftShader.
  • Running in virtual machines is not officially supported. It may or may not work.
  • Running under Node.js may be possible if your Node.js environment can create WebGPU or WebGL contexts. Note that additional work may be required to load images into textures etc.

Most development is done on desktop Chrome on MacBooks. In case you think you have found an issue and want to check if it is specific to your environment, it could be worth testing if you can reproduce your issue on Chrome before you report the bug.

If you have a confirmed bug that affects a supported environment, feel free to open an issue. However, if you are not yet sure, please help us keep issue noise down and start in the discussions. If you can provide a fix, you are welcome to open a pull request. It often makes sense to discuss before surprising maintainers with a big PR.


Some examples of applications built on top of

open source geospatial analysis tool for large-scale data sets


A visualization toolkit for autonomy and robotics data


Visualization of cellular biological samples

Open Governance is provided under MIT license and is under open governance as a part of:

Learning Resources

To learn more for learning and discussions.

  • check out the Medium blog.
  • join the community in the OpenJS Slack workspace If you wish to contribute in a structured way, beyond isolated PRs, or join the open governance activities, start by joining the forums above and introduce yourself.

Primary Contributors is developed and maintained by the community but has benefitted from the support of various companies:

  • From 2021 onwards, has been developed and maintained by Foursquare.
  • From 2019-2021, was developed and maintained by Unfolded.
  • From 2015-2019, was created and developed by Uber.


History was originally created at Uber in 2015 as an open source project to support

  • 2022: was accepted into the OpenJS foundation together with the framework stack.
  • 2019: Uber put under open governance in the Linux Foundation.
  • 2015: started out as a fork of the PhiloGL WebGL library.

Roadmap keeps evolving based on the needs of frameworks and applications. We share information about the direction of in the following ways:

  • Blog - We use the blog to share information about what we are doing.
  • Github Issues - The traditional way to start or join a discussion.
  • RFCs - RFCs are technical writeups that describe proposed features in upcoming releases.