Skip to content
Chromatic Coherence

Hue draws · Priority three

Charts grown from a seed and a rule.

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.

Zero dependencies@hue/charts· not yet on npmSee the recipesCharts API

What it does

GROW

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.

PICK

One package, two renderers

The package picks between 2D and 3D rendering for you, and ships with 32 recipes ready to lift wholesale into your own work.

01

Your data, drawn — not configured

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.

02

Nothing underneath but the browser

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.

03

One chart failing is one chart

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.

What it draws with

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.

What is not underneath it

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.

Dependencies
0
Peer dependencies
0

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 sweep, shown working before its zero is read

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.

loadTextureatob(fromCharCode

How it reaches the screen

  • 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

32 recipes.

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.

What it costs

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.