andrewcourtice/ripl
Ripl provides a unified, cross-platform API for 2D and 3D graphics rendering with a focus on high performance and interactive data visualization. Write once, render to Canvas, SVG, WebGPU, or the terminal - in the browser, on the server, or in a headless environment.
canvasdata-visualizationjavascripttypescriptwebgpu
First Claude commit: Jun 27, 2026Last Claude commit: 17d agoDiscovered: Jul 11, 2026
Recent Claude Commits
fix(charts): correct scale inversion under zoom + clip marks to the plot area
35c604517d agoauthor_emailfeat(charts): runtime-toggleable navigator + demo config toggle on cartesian charts
61f8fc717d agoauthor_emaildocs(core): add Navigator page + refresh Scales and Color for new primitives
7cf36f917d agoauthor_emailfeat(charts): stronger TData typing — numeric-key accessors + generic datum charts
789786417d agoauthor_emailrefactor(utilities): move formatNumber/formatTime into @ripl/utilities
da128ad17d agoauthor_emailrefactor(core): remove the scene resize event
3a167ed17d agoauthor_emailrefactor: bind Navigator/Camera to a Context; move 3D modules into core/
2bb4fe817d agoauthor_emailrefactor(core): prefix colour scheme constants with COLOR_
e73b7b717d agoauthor_emailchore(ci): lint job, coverage-regression gate, per-package IIFE globals
614188717d agoauthor_emailchore: update lockfile for @ripl/dom charts dependency
13e403218d agoauthor_emailfeat(charts): opt-in navigator (pan/zoom/brush) on cartesian charts
e3df63018d agoauthor_emailrefactor(core,dom): split Navigator into context-agnostic base + DOMNavigator
fde694218d agoauthor_emailfeat(charts): box-plot chart
652858618d agoauthor_emailfeat(charts): histogram chart
e0e510d18d agoauthor_emailfeat(charts): statistical data transforms
be3727618d agoauthor_emailfeat(core): Navigator — 2D pan/zoom/brush controller
fd7b9b718d agoauthor_emailfeat(charts): continuous-colour legend component
eabd52218d agoauthor_emailrefactor(charts): heatmap uses scaleSequential instead of hand-rolled colour
807f52e18d agoauthor_emailfeat(core): standalone number/time format module
fceeb4c18d agoauthor_emailfeat(core): nice domain option + calendar-aware time ticks
930a1e918d agoauthor_emailfeat(core): first-class ordinal and point scales
7817cf118d agoauthor_emailfeat(core): sequential/diverging colour scales + perceptual schemes
743229418d agoauthor_emaildocs: document the kind-based import/export grouping convention
6245bf318d agoauthor_emailrefactor(lint): group imports/exports by kind
73bd52818d agoauthor_emailrefactor(lint): only require blank lines around member imports
f4a57ab19d agoauthor_emailfix(docs): stop WebGPU 3D demos churning contexts and flooding the console
da869dd19d agoauthor_emailfix(docs): stop the WebGPU demos hanging on the loading spinner
5d54c2719d agoauthor_emailbuild: add GitHub Codespaces devcontainer
0b2d21819d agoauthor_emailrefactor: prefix all private members with a leading underscore
1221c4f19d agoauthor_emailRevert "refactor: use native # private fields instead of the TypeScript private keyword"
d82186719d agoauthor_emailtest: cover zero-coverage packages, the full chart catalogue, and refactor regressions
d99944a19d agoauthor_emailfeat(demo): replace combustion-engine demo with a basic piston mechanism
7f56fb119d agoauthor_emailrefactor: use native # private fields instead of the TypeScript private keyword
1780ba919d agoauthor_emailperf(context): fast-path plain colours, memoize gradients, honour z-index scene-less
ae7347c19d agoauthor_emailrefactor: replace type-dispatch switches with object-keyed handler maps
eea033619d agoauthor_emailrefactor: remove deprecated members
4ae07fc19d agoauthor_emailchore(lint): enforce blank line between every import and fix all lint errors
a23532e19d agoauthor_emailfix(terminal): even-odd polygon fill and text alignment/baseline
e149be420d agoauthor_emailfix: export opens reliably in a new tab; correct text bounding box
8bca53820d agoauthor_emaildocs: SEO/discoverability pass and package READMEs
f5eb13520d agoauthor_emailfeat(docs): terminal toggle, export dropdown, and loading states
597731620d agoauthor_emailfeat(core): add Context.export() and fix TS7-ready build
e135a1920d agoauthor_emailfeat(app): add a Line Chart playground example with entry animation
47d3a7a21d agoauthor_emailfeat(terminal): opt-in logical coordinate space with letterboxed scaling
4b2104521d agoauthor_emailtest(core): import query/queryAll from the package root
b8b9ff821d agoauthor_emaildocs(charts): refresh getting-started entries for the reworked charts
4c85fd421d agoauthor_emaildocs(skills): add the ripl-charts skill for building production charts
c167e4321d agoauthor_emailfeat(app): add a Terminal render mode to the 2D playground
5a7d15f21d agoauthor_emailfeat(charts): rework the arc diagram into a cartesian axis
d5ddddf21d agoauthor_email