This survey closed on August 31, 2025.

Embed SVG vector graphics directly in markup

html
<svg>
  <circle cx="50" cy="50" r="50" />
</svg>
Tell us more:
Tell us more:
Tell us more:

Element for drawing dynamic 2D or 3D graphics using JavaScript.

html
<canvas width="200" height="200"></canvas>
Tell us more:
Tell us more:
Tell us more:

Set the color space for the graphics being drawn on a <canvas> element.

js
const ctx = canvas.getContext("2d", {colorSpace: "display-p3"});
Tell us more:
Tell us more:
Tell us more:

Draw an HTML element on <canvas>, with conveniences for redrawing and hit testing.

html
<canvas id="canvas" layoutsubtree="true">
  <p>Hello world!</p>
</canvas>
<script type="module">
  const ctx = canvas.getContext("2d");
  const text = canvas.querySelector("p");
  ctx.drawElement(text, 30, 0);
</script>
Tell us more:
Tell us more:
Tell us more:

Allows embedding 3D models in HTML with built-in controls.

html
<model src="3d-assets/car.glb"></model>
Tell us more:
Tell us more:
Tell us more:

Create AR/VR sessions with compatible output devices.

js
const xr = navigator.xr;
const session = await xr?.requestSession("immersive-vr");
Tell us more:
Tell us more:
Tell us more:

A JavaScript API that provides low-level access to the GPU for high-performance graphics and parallel computation in the browser.

js
const adapter = await navigator.gpu.requestAdapter();
const device = await adapter?.requestDevice();
Tell us more:
Tell us more:
Tell us more:

A low-level API for rendering 2D and 3D graphics with the GPU on <canvas> , based on OpenGL.

js
const gl = canvas.getContext("webgl");
Tell us more:
Tell us more:
Tell us more:

An image format optimized for web environments.

html
<img src="image.jxl" />
Tell us more:
Tell us more:
Tell us more:

Think of issues around using Canvas, SVG, WebGL, and other APIs for rendering graphics graphics, rendering animations, graphics performance, missing graphics primitives or APIs, etc.