Back to browse
Ripl – A unified 2D/3D engine for Canvas, SVG, WebGPU, and the Terminal

Ripl – A unified 2D/3D engine for Canvas, SVG, WebGPU, and the Terminal

by andrewcourtice·Mar 19, 2026·17 points·0 comments

AI Analysis

●●SolidWizardryBig Brain

Terminal chart rendering shines, but D3 and Three.js dominate the web graphics space.

Strengths
  • Terminal output for charts is a genuinely novel trick for CLI-based data visualization.
  • DOM-like event system and querying reduces learning curve for web developers.
  • Modular architecture prevents bloated bundles when only specific contexts are needed.
Weaknesses
  • WebGPU and Terminal have fundamentally different capabilities, risking abstraction leaks.
  • Mature ecosystems like D3 and Three.js make migration costly for existing projects.
Target Audience

Frontend developers, Data visualization engineers

Similar To

D3.js · Three.js · Ink

Post Description

After several years, with a small hiatus in the middle, I've finally got Ripl to the point of being published. Ripl is a library for rendering 2D and 3D shapes to any context (canvas, SVG, WebGPU, and Terminal supported by default) using a single API. The library mimics the DOM as much as possible, replicating the event system, object graphing, CSS-like querying, gradients, and keyframe animations etc.

I also built a complete data visualization library using the core package which is available as @ripl/charts. And yes, you can even render the charts to a terminal with about a 2-3 line code change :) (see the terminal demo)

Docs are available here: https://www.ripl.rocks Demos are available here: https://www.ripl.rocks/demos Charts are avialable here: https://www.ripl.rocks/docs/charts

I've also built an interactive playground you can use to play around with it in realtime without having to install it from NPM etc. The playground is available here: https://www.ripl.rocks/playground

The core library is quite stable and I'll likely publish v1 in the coming weeks. The charts, 3D, and Terminal packages are still very experiemental.

I'd interested to hear what you all think of it.

Similar Projects