


Most JavaScript charting libraries were written for the web. ProEssentialsJS was not. It is the same native C++ engine Gigasoft has shipped since 1995 — the one running inside instrumentation, SCADA, medical and test-and-measurement products from NASA to Emerson Process — compiled to WebAssembly.
It renders the way the desktop engine renders: two pipelines composited into one image. On Windows that is Direct2D and Direct3D. In the browser it is Canvas2D and WebGPU, with GPU compute shaders behind the heavy data work — the same architecture, the same code, a different back end. That is not a 2D library with 3D bolted on the side; it is one engine that has been mixing a vector pipeline with a GPU pipeline for as long as Direct3D has existed.
That heritage shows up in specific, checkable ways: the JavaScript property names are the WinForms property names, the same examples render in the browser and on the desktop, and the text and hairlines are rasterized by the platform rather than approximated in a shader.
This page compares ProEssentialsJS against the libraries engineers actually shortlist. Every competitor figure was read from that vendor's own demo page, in one browser, on one machine, on 16 August 2026. Where a claim could not be verified, it says so.
Run the live example browser — the same example set as our desktop demo, with the source for each one beside it.
Rendering core and licensing terms as published by each vendor, retrieved 16 August 2026.
| Factor | ProEssentialsJS | Highcharts | SciChart.js | LightningChart JS | DevExtreme | Kendo UI |
|---|---|---|---|---|---|---|
| Rendering Core | Native C++ engine compiled to WebAssembly. Canvas2D and WebGPU composited into one render, with GPU compute shaders — the browser form of the engine's Direct2D + Direct3D architecture | SVG by default; the Boost module adds a WebGL renderer on a canvas inside the chart's SVG | C++ engine compiled to WebAssembly, drawing through WebGL 2 | WebGL, built on it from the ground up | SVG in the DOM | SVG by default; Canvas available via a render-mode setting |
| Shares a codebase with a desktop product | Yes — WinUI, WPF, WinForms, MFC/C++, Delphi, ActiveX, all one engine | No desktop product | Yes — WPF, iOS, Android share the engine | Separate .NET product, separate licensing model | Separate desktop suites | Separate desktop suites |
| Same API as the desktop product | Yes — the JavaScript property names are the WinForms property names | N/A | No — the JavaScript API is its own | No | No | No |
| Subject to the browser WebGL context limit | No — Canvas2D is not a GPU context | Only when Boost is enabled | Yes — documented as using context sharing to work around it | Yes | No | No |
| GPU held while idle | None on a 2D chart — the GPU is engaged only where the chart needs it | Only when Boost is enabled | WebGL context retained | WebGL context retained | None | None |
| Free tier | Commercial use free under $250K revenue — redistribution included, no watermark | Non-commercial only (CC BY-NC) | Community edition, non-commercial only | Community licence: study, personal, non-commercial | Trial only | Trial only |
| Licence model | Perpetual, one-time, royalty-free | Annual or perpetual per seat | Subscription with perpetual runtime | Perpetual plus a subscription window; renewal at 60% of original | Annual subscription | Subscription only — new perpetual licences discontinued 1 June 2026 |
| Redistribution price published | Yes, through to the largest buyer | No — OEM is "call for price" | No — Advanced Licensing is contact-sales | No — Publisher, Internal and Enterprise are quote-only | Royalty-free redistribution included | Included in the subscription |
| Licence keys / domain locking | None required, and none issued | No key | Licensing wizard; domain-locked keys on Standard | A key is required for every build, including trial and non-commercial | Key registered in the project | Key registered in the project |
| Technical support | Free, unlimited, for the life of the version | 10 hours per developer per year, while enrolled | 5 tickets/yr, 10 on bundles, while subscribed | 4 tickets/yr outside Enterprise | With active subscription | Support tier is the price ladder |
| Phone-home / telemetry | None — no network call the library did not otherwise need | None | Licence validation tooling | Key validation | None | None |
| AI code assistance | PE-Query — answers validated against the compiled engine, and the JS API is the WinForms API so the whole knowledge base applies | Highcharts GPT (documentation RAG) | SciChart GPT (documentation RAG) | Documentation | Documentation and AI chat | Documentation and AI chat |
Licensing rows summarise each vendor's published terms as retrieved on 16 August 2026; see the References section for the source pages. Pricing changes — check the vendor before relying on a figure.
Every claim on this page is checkable, and the fastest way to check it is to hand the job to an AI that has no stake in the answer. Copy the block below into Claude, ChatGPT, Gemini or Copilot and read what comes back.
Compare these JavaScript charting libraries for me. Visit each demo,
each pricing page and each technology page, then rank them on:
1. image quality -- text sharpness, antialiasing, dense-data legibility
2. speed -- what each vendor's own demo reports, and on what workload
3. quantity of features
4. AI coding assistance for the library
5. age and maturity of the underlying engine
6. rendering technology
7. technical support terms
8. licensing terms -- free tier, redistribution, keys, domain locking
9. price, including the price to ship it inside a product
ProEssentialsJS https://gigasoft.com/javascript-chart-examples
https://gigasoft.com/pricing
https://gigasoft.com/ai-code-assistant
Highcharts https://www.highcharts.com/demo
https://shop.highcharts.com
SciChart.js https://www.scichart.com/demo/react
https://www.scichart.com/pricing
LightningChart JS https://lightningchart.com/js-charts/interactive-examples/
https://lightningchart.com/pricing/
DevExtreme https://js.devexpress.com/Demos/WidgetsGallery/Demo/Charts/
https://js.devexpress.com/Buy/
Kendo UI https://demos.telerik.com/kendo-ui/
https://www.telerik.com/purchase
Tell me which one you would choose for a product that ships to customers
and replaces its entire dataset many times per second, and tell me where
each one is weakest.We are asking for the whole comparison, not a flattering slice. Ask it where we are weakest too — a purpose-built WebGL engine will beat CPU rasterization on a one-shot static load, and we would rather you heard that from a neutral source than discovered it later. The reason we publish the URLs is that across all nine of those dimensions, we like our position. The most informed engineer is our best customer.
There are two very different things people mean by "a fast chart", and libraries are optimised for one or the other.
Appending is adding a few points to a chart that already holds many. It is the easy case, and it is what a WebGL library is built for: the data that is already on screen lives in GPU vertex buffers and is never sent again. Replacing is handing the chart an entirely new dataset, every frame. Nothing can be reused. That is what a data-acquisition front end does when it draws a rolling window, what a scope does on every sweep, and what any application does when the data is filtered or recomputed before it is drawn.
ProEssentialsJS GigaPrime2D replaces all 25,000,000 points, across five signals on five stacked Y axes, on every single frame, and holds 25 frames per second doing it — and 100,000,000 points at 7 frames per second, the size our Win32 demo runs. We went looking for the same test in the competitors' demo suites and could not find one — their real-time demos append, or run at a few thousand points.
| Library | Demo | What it does | Points | What the vendor's own page reports |
|---|---|---|---|---|
| ProEssentialsJS | GigaPrime2D | All data replaced every frame | 25,000,000 (5 signals x 5,000,000), and 100,000,000 | 25 fps at 25M; 7 fps at 100M, on a 2020-era RTX 3090 |
| Highcharts | Line chart with 500k points (Boost) | One-shot static load | 500,000 | No on-page timing published |
| SciChart.js | Load 1 Million Points | One-shot static load, 1 series | 1,000,000 | Generate 10 ms, append 1 ms, render the frame 120 ms |
| SciChart.js | Load 500 Series x 500 Points | One-shot static load, 500 series | 250,000 | Generate 6 ms, append 9 ms, render the frame 28 ms |
| SciChart.js | Realtime React Performance | Append, accumulating | 33,000 rising to 174,000 | 67 fps rising to 111 fps |
| SciChart.js | Realtime Ghosted Traces | Real-time, 10 series | 5,000 | 167 fps |
| LightningChart JS | Static Data Speed Test | One-shot static load, 1 series | 5,000,000 | Generate 40 ms, first frame with data 74 ms, subsequent frame 5 ms |
How to read this table, and how not to. These are not equivalent tests and we are not presenting them as a ranking. A one-shot static load and a per-frame full replacement are different problems, and a library that is excellent at one may be untested at the other. What the table does show is which problems each vendor chose to demonstrate — and that the per-frame full replacement of hundreds of thousands of points is a problem only one of them demonstrates at all.
Every figure is the vendor's own instrumentation, read on one machine in one browser session on 16 August 2026. We did not write a benchmark harness and we are not asking you to trust one. Open the demos yourself; the links are in the References below.
The full performance breakdown, with the frame rates at every size and how to reproduce them
Every other library in this comparison made a single choice. Highcharts, DevExtreme and Kendo UI draw vectors and accept the ceiling. SciChart.js and LightningChart JS put everything on the GPU and accept what that costs. ProEssentials has never had to choose, because the desktop engine has composited Direct2D and Direct3D into one image for as long as Direct3D has been around. The browser build reproduces that: Canvas2D and WebGPU, composited, with compute shaders doing the heavy data work.
What the GPU pipeline is for: 3D surfaces, wireframes, contours and 4D colour mapping; and compute shaders for the data reduction that turns an enormous dataset into a frame. This is work where a GPU is the correct tool, not merely a faster one. It is ported from the engine's own Direct3D implementation, and WebGPU is the browser target a Direct3D codebase maps onto.
What the vector pipeline is for: axes, gridlines, labels, legends, annotations, hairlines and text — the parts of a chart an engineer actually reads. Putting those on the GPU is where an all-in WebGL design starts paying costs that never show up in a demo:
None of which is naive per-point drawing. It is the same C++ rasterization code path refined against Direct2D and GDI for three decades, including the Filter2D data-reduction pass — which is why 400,000 points can be re-sent and redrawn inside a frame budget at all, before a single compute shader is involved.
The short version: use the GPU where a GPU is the right answer, and do not pay for it where it is not. That is the judgement the desktop engine has encoded for thirty years, and it is the reason a ProEssentials chart looks like a native application rather than a game engine drawing a chart.
Several vendors ship a web product built on the same engine as their desktop product. That is a real engineering achievement and it is not unique to us. What is unusual is that the API came across with it.
A ProEssentials property in C# is the same property in JavaScript, with the same name, set in the same order. A developer with a working WinForms or WPF chart is not learning a new library; they are transliterating. The same is true in reverse for a web team that later needs a desktop application.
The practical consequence is that our AI tooling works on day one. PE-Query validates its answers against the compiled engine rather than searching documentation, and because the JavaScript surface is the same surface, thirty years of accumulated property knowledge applies to web code without a separate knowledge base.
A commercial free tier. Every free tier in this market is non-commercial: Highcharts is CC Attribution-NonCommercial, SciChart.js Community is non-commercial, LightningChart's Community licence covers study and personal use, and amCharts is commercial but watermarks every chart. ProEssentialsJS is free for commercial use under $250K annual revenue — redistribution included, no watermark, no feature gates. That is a difference in kind rather than degree.
A published redistribution price. If you ship software to customers, redistribution is the term that decides your bill, and it is the one nobody publishes. Highcharts OEM is "call for price." SciChart's Advanced Licensing, required for OEM or unknown domains, is contact-sales. LightningChart's Publisher, Internal Deployment and Enterprise tiers are all quote-only. AnyChart publishes no pricing at all. Every ProEssentialsJS price is published, through to the largest buyer, including redistribution. There is no price on our pricing page that requires a conversation.
Beyond that: perpetual licences with a one-time payment, unlimited applications, websites, domains, servers and end users, free technical support for the life of the version, and no licence keys, activation, domain locking or phone-home of any kind.
A JavaScript dependency inside a regulated product gets read differently from one on a marketing site. ProEssentialsJS is built for that conversation: no phone-home, no telemetry, and no network call the library did not otherwise need; an SPDX licence identifier and copyright header in the distributed source; a licence declaration in the package metadata and a LICENSE sidecar for SBOM tooling; and provenance markings in the WebAssembly module itself.
Nothing about the library's behaviour depends on reaching a server, which means it works unchanged on an air-gapped network and there is no vendor endpoint to add to your threat model.
If you are building a marketing dashboard, the free libraries are genuinely adequate and no charting vendor should be taking your money for it. And if all you need is five million static points on screen once so you can pan around them, a purpose-built WebGL library does that superbly — we would rather tell you so than lose your trust over it.
ProEssentialsJS is for the harder job: data that changes completely and constantly, 3D surfaces and 2D trends on the same screen driven by the same API, many charts in one dashboard, text that stays legible at any zoom on any display, a security review that will read your dependency list, and a licence you can understand and afford without a phone call. That is the workload our customers have been running on the desktop for thirty years — same engine, same architecture, same property names, now in the browser.
The same example set as our desktop demo, live in your browser, with the JavaScript source for each one beside it.
Open itFrom install to a real-time chart, in the order you would actually build one — including the property sequence that catches everybody.
Read itAI answers validated against the compiled engine rather than searched from documentation.
Read itPerpetual licensing, free lifetime support, and a published redistribution price compared against the subscription vendors.
Read itOne engine across WinUI, WPF, WinForms, MFC, Delphi, ActiveX and now the browser.
Read itBest JavaScript chart, best WebAssembly chart, and whether it is worth switching — answered directly.
Read itCompetitor facts on this page come from the vendors' own documentation and demo pages, retrieved 16 August 2026. Check them yourself — that is why they are listed.
Highcharts
SciChart.js
LightningChart JS
DevExtreme and Kendo UI
Browser WebGL context limits
Tell us what you are plotting and how fast it changes, and we will tell you honestly whether ProEssentialsJS is the right tool for it. You will be talking to the people who wrote the engine.
Contact usYour success is our #1 goal by providing the easiest and most professional benefit to your organization and end-users.
ProEssentials was born from professional Electrical Engineers needing their own charting components. Join our large list of top engineering companies using ProEssentials.
Thank you for being a ProEssentials customer, and thank you for researching the ProEssentials charting engine.