perspective
A data visualization and analytics component, especially well-suited for large and/or streaming datasets.
Quick Overview
Error generating quick overview
Convert
designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
Perspective is an interactive analytics and data visualization component for large and streaming datasets. Build user-configurable reports, dashboards, notebooks, and applications with a high-performance query engine compiled to WebAssembly, Python, and Rust.
Features
-
A framework-agnostic user interface packaged as a Custom Element, which connects to a Data Model in-browser (via WebAssembly) or remotely (via WebSocket, with integration in Python, Node.js and Rust). Includes a data grid, 10+ chart types line, bar, area, scatter, heatmap, treemap, sunburst, candlestick, and more.
-
A Data Model API for pluggable engines, enabling Perspective's UI to query external data sources like DuckDB while translating view configurations into native queries.
-
A fast, memory-efficient streaming Data Model built-in, written in C++ and compiled for WebAssembly, Python, and Rust. Supports read/write/streaming for Apache Arrow, with a columnar expression language based on ExprTK.
-
A JupyterLab widget and Python client library for interactive data analysis in notebooks.
Documentation
- Project Site
- User Guide
- Python API
- JavaScript API
- Rust API
Examples
| editable | file | duckdb |
![]() | ![]() | ![]() |
| fractal | market | raycasting |
![]() | ![]() | ![]() |
| evictions | nypd | streaming |
![]() | ![]() | ![]() |
| covid | webcam | movies |
![]() | ![]() | ![]() |
| superstore | citibike | olympics |
![]() | ![]() | ![]() |
| dataset | ||
![]() |
Media
@timkpaine |
@timbess |
@sc1f |
![]() |
![]() |
![]() |
@texodus |
@texodus |
|
![]() |
![]() |
The Perspective project is a member of the The OpenJS Foundation.
Copyright OpenJS Foundation and Perspective contributors. All rights reserved. The OpenJS Foundation has registered trademarks and uses trademarks. For a list of trademarks of the OpenJS Foundation, please see our Trademark Policy and Trademark List. Trademarks and logos not indicated on the list of OpenJS Foundation trademarks are trademarks⢠or registered® trademarks of their respective holders. Use of them does not imply any affiliation with or endorsement by them.
The OpenJS Foundation | Terms of Use | Privacy Policy | Bylaws | Code of Conduct | Trademark Policy | Trademark List | Cookie Policy
Convert
designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot



















