- WebGPU를 활용해 대규모 데이터셋을 부드럽게 렌더링하는 오픈소스 차트 라이브러리임
- TypeScript로 작성되었으며, 라인·영역·막대·산점도·파이·캔들스틱 등 다양한 시리즈 타입을 지원
- 호버 하이라이트, 툴팁, 크로스헤어, 줌 제스처, 테마 프리셋 등 상호작용 기능을 내장
- React 통합 패키지(chartgpu-react) 를 통해 React 환경에서도 손쉽게 사용 가능
- WebGPU 가속 렌더링으로 초당 60프레임 수준의 성능을 제공하며, 대규모 데이터 시각화에 적합한 도구
개요
- ChartGPU는 WebGPU 기반의 고성능 차트 렌더링 라이브러리로, 대량의 데이터를 부드럽게 시각화할 수 있음
- TypeScript로 개발되어 있으며, MIT 라이선스로 공개
- npm install chartgpu 명령으로 설치 가능
주요 기능
- WebGPU 가속 렌더링을 통해 대규모 데이터셋에서도 높은 FPS 유지
- 다양한 차트 유형 지원: line, area, bar, scatter, pie, candlestick
- 상호작용 기능 내장: hover highlight, tooltip, crosshair
-
데이터 스트리밍 업데이트 지원 (
appendData(...)) - X축 줌 기능 제공 (제스처 및 슬라이더 UI 포함)
-
테마 프리셋(
dark/light) 및 사용자 정의 테마 지원
아키텍처
-
ChartGPU.create(...)가 캔버스와 WebGPU 생명주기를 관리하며, 렌더링 조정은 Render Coordinator가 담당 - 내부 구조는 다음과 같은 계층으로 구성됨
- WebGPU Core: GPU 어댑터 및 디바이스 초기화, 캔버스 설정
- Render Coordinator: 레이아웃, 스케일, 데이터 업로드, 렌더 패스 관리
- GPU Renderers: Grid, Area, Bar, Scatter, Line, Pie, Candlestick 등 각 차트별 렌더러
- Shaders(WGSL) : 각 렌더러에 대응하는 셰이더 파일로 구성
- Chart Sync: 여러 차트 간 크로스헤어 동기화 기능 제공
React 통합
- React용 패키지 chartgpu-react 제공
- 설치:
npm install chartgpu-react
브라우저 지원
-
WebGPU 활성화 브라우저 필요
- Chrome 113+, Edge 113+, Safari 18+ 지원
- Firefox는 현재 개발 중