Every frame computed as you watch
Nothing is loaded and nothing is replayed — a chart grows from a seed and a rule on the machine you already have, live in the browser.
Hue draws · Priority three
Living 2D/3D charts, grown from a seed and a rule rather than loaded from a file. One package with two renderers that it picks between for you, and 32 recipes you can lift wholesale.
Nothing is loaded and nothing is replayed — a chart grows from a seed and a rule on the machine you already have, live in the browser.
The package picks between 2D and 3D rendering for you, and ships with 32 recipes ready to lift wholesale into your own work.
Hand it your numbers and the chart draws itself. There is no template to fill in and no options object to bend into shape — and when you do want it different, you change a short function you can read.
Zero dependencies. No asset pipeline, no build step to configure and nothing to keep upgraded — so there is nothing underneath that can break your charts on a Tuesday.
Every chart picks 2D or 3D for the machine it lands on, and falls back on its own if the GPU is busy or missing. A renderer that cannot start costs you that plate — never the page it sits on.
One module, and everything a chart is made of is inside it — the renderers, the fit, the marks, the maths and the mount. The surface below is read from the package's own compiled types, so it is what you would actually import rather than a summary of it.
1 module · 81 exported symbols
Exported symbols, counted from the package the TypeScript checker sees.
A chart is computed from a seed and a rule at run time. There is no asset pipeline because there are no assets, and nothing sits between the package and the browser — what ships is a small package rather than a download, with nothing to keep in sync.
Swept for every call form that would load, fetch or decode something. The detector is shown firing elsewhere in this repository before its zero here is reported.
The same 13 call forms fired on 24 of the 466 other files in this repository, so the zeros above come from a detector that finds something when there is something to find. 10 of the 13 are proven live that way.
The other 3 appear nowhere in this repository at all, so their zero rests on a form that has never had the chance to fire. They are named here rather than counted as proof.
It picks its renderer as it runs
The package asks the machine in front of it what it can do, then draws on the GPU or on the 2D canvas accordingly. You write one recipe either way.
It counts live GPU contexts across the whole page
A browser will only hand out so many. The package keeps the count itself, so the tenth chart on a page is a decision it made rather than something that went wrong.
Where the GPU path is unavailable or already at its budget — 5 live contexts by default — the package falls back to the 2D canvas by itself, on that chart alone.
The count
Every recipe is a working chart you can lift wholesale — a starting point, not a demo you have to rebuild.
And what it buys you
A chart is never a static export sitting on your page — it is live, and it can be handed new data and asked to redraw itself the moment that data changes.
Free. Then £100 a year once your organisation is over 25 people, or over £100,000 in annual turnover.
Install it and it runs in the browser, on the machine your reader already has. The licence is what lets your organisation ship what it builds with it.