Helix Vizforge
A Unity-native data-visualization platform — 28 + 2D chart types and 3D, three render backends from one geometry pipeline, plus scientific, financial, BI and telemetry tooling. Use it from code, or build a complete chart entirely in the Inspector with no scripts.
🖱 Chart in 30 seconds, no code
Add ChartView, pick a type, drop a dataset, choose columns. Live preview, zero scripts.
📊 28 + 3D chart types
Line family, bars, radial, statistical, relational, financial and 3D — one component.
🎨 Three backends
UGUI, UI Toolkit and world-space from a single tessellation core.
🗃 CSV / JSON import
Columnar datasets with transforms; CSV import auto-detects the delimiter.
🔬 Science & finance
Curve fits with R², FFT, contours, candlesticks, SMA/EMA/RSI/MACD.
💾 Export & WebGL
PNG / SVG / CSV / JSON export, managed-only and WebGL-friendly.
New here? Start with the Installation and the no-code quick start. Prefer code? Jump to the code quick start or the Scripting API.
Installation
Import once, add a component (or open the welcome window). No setup wizard required.
In
Window → Package Manager → My Assets, download and import Helix Vizforge. It lands at Assets/Helix/.It opens automatically the first time. Re-open it any time from
Window → Helix Vizforge → Welcome for one-click links to the docs, the demo and the Chart Wizard.GameObject → Helix Vizforge → Chart (Line) drops a Canvas + ChartView into the scene, ready to configure.Open
Assets/Helix/Demo/Scenes/HelixVizforge_InteractiveDemo.unity and press Play to browse every feature hands-on.Requirements
- Unity 6.0 LTS (
6000.0or newer). - URP recommended for world-space / 3D charts; Built-in works for screen-space charts.
- UGUI (
com.unity.ugui) — the default chart surface renders on a Canvas. - No third-party dependencies. CSV/JSON parsing, statistics, FFT, regression and SVG/PNG export are all in-package.
What gets installed
Assets/Helix/
Runtime/ // Core, Data, Viz pipeline, Charts (28 + 3D generators),
// Rendering (UGui / UIToolkit / WorldSpace), Theme, Scales,
// Scientific, Financial, Analytics, BI, Telemetry, Interaction, Export
Editor/ // Welcome window, Chart Wizard, ChartView / Dataset / Theme inspectors
Demos/ // the interactive showcase scene (every feature, module by module)
Documentation/ // You are here
Tests/ // EditMode + PlayMode (run headless via Unity -runTests)Project
ChartView component. Remove it and nothing is rewritten on disk.Quick Start: No Code
A complete, data-bound chart from the Inspector — no scripts.
Assets → Create → Helix → Dataset, then click Import CSV… in its inspector and pick a file. The delimiter (comma / semicolon / tab) is auto-detected and column types are inferred.GameObject → Helix Vizforge → Chart (Line) — this creates a Canvas and a ChartView.In the ChartView inspector set Chart Type (Bar, Pie, Line…) and drag your dataset asset into the Data slot.
The X / Category and Y / Value fields become dropdowns listing your dataset's columns. Pick them — the chart previews live in the Scene/Game view.
Create a Theme (
Assets → Create → Helix → Theme), pick a preset, and drop it into the Theme slot. Press Play — the chart builds itself.ChartView.Chart(new SomeGenerator{…}). See Chart Catalog.Quick Start: Code
The same engine via a fluent builder — data, type, axes, theme, render.
using UnityEngine;
using Helix.Data;
using Helix.Charts;
using Helix.Theming;
public sealed class FirstChart : MonoBehaviour
{
void Start()
{
// A Canvas to draw on (Screen Space - Overlay).
var canvas = new GameObject("Canvas", typeof(Canvas),
typeof(UnityEngine.UI.CanvasScaler), typeof(UnityEngine.UI.GraphicRaycaster))
.GetComponent<Canvas>();
canvas.renderMode = RenderMode.ScreenSpaceOverlay;
// Some data, built inline.
var data = Dataset.Inline("sales")
.Numbers("x", 0, 1, 2, 3, 4, 5)
.Numbers("y", 42, 55, 38, 61, 47, 58);
// data -> bar -> axes -> theme -> render.
ChartView.Create(canvas.transform, "My Chart")
.WithData(data)
.Bar("x", "y")
.Axes(true)
.Themed(Theme.Dark())
.Build(); // Build() calls Render() for you.
}
}C#
Swap .Bar(…) for .Line, .Scatter, .Area, .Spline, .Step or .Sparkline; for any other type use .Chart(new PieGenerator{ YColumn = "y" }). See the Scripting API.
Chart Catalog
28 two-dimensional chart types plus three 3D types, all from one ChartView.
| Family | Types | Bind |
|---|---|---|
| Line | Line, Area, Spline, Step, Sparkline | X + Y |
| Bar | Bar, Horizontal Bar, Stacked, Grouped, Waterfall, Funnel | X + Y (or value columns) |
| Radial | Pie, Donut, Radar, Polar, Sunburst | value (Y) |
| Statistical | Histogram, Box Plot, Violin, Heatmap, Gauge, Progress | value / grid |
| Relational | Parallel Coords, Treemap, Sankey, Timeline, Gantt | specialized |
| Financial | Candlestick (+ OHLC / Volume / indicators) | OHLC |
| 3D | Bar3D, Scatter3D, Surface3D | grid / XYZ |
XColumn / YColumn; multi-series bars take ValueColumns; radial types read the value from YColumn. The Inspector dropdown covers the 15 most common; the rest are one line of code with .Chart(…).Render Backends
One tessellation core, three ways to draw — the same chart, identical pixels.
| Backend | Surface | Use for |
|---|---|---|
| UGUI default | UGuiChartSurface | Classic Canvas UI; auto-attached by ChartView. |
| UI Toolkit | VizforgeChartElement | Unity's modern retained-mode UI (UI Documents). |
| World-space | WorldSpaceChartSurface | Charts in the 3D scene or an XR rig (true depth). |
Scales & Axes
Linear, log, symlog, time and band scales with automatic, formatter-driven ticks.
- Scales:
LinearScale,LogScale,SymlogScale(spans zero),TimeScale,BandScale(categorical), power. - Formatters: plain number, SI-prefix (k / M), currency, percent, date-time — chosen automatically per scale, or set explicitly.
- Axes: toggle X / Y axes, gridlines and tick labels independently on
ChartView(DrawAxes,ShowXAxis,ShowYAxis,ShowGrid,ShowAxisLabels).
LogScale/TimeScale by hand only when you need a non-default domain.Datasets & Import
A columnar data model with transforms and CSV / JSON import.
Dataset
A Dataset is a set of co-indexed typed columns (DataSeries): numbers, categories, text, booleans and time. Build one inline, import it, or author a Dataset asset.
var ds = Dataset.Inline("sales")
.Categories("month", "Jan", "Feb", "Mar")
.Numbers("sales", 42, 55, 38);C#
CSV / JSON import
Use the Dataset asset inspector's Import CSV button, or in code:
Dataset a = CsvImporter.Parse(csvText); // delimiter auto-detected
Dataset b = JsonImporter.ParseRecords(jsonText);C#
CsvImporter.Parse auto-detects the separator (comma, semicolon, tab or pipe) from the header — so spreadsheets exported in locales that use ; import correctly with no configuration. Pass an explicit delimiter to force one.Transforms
Chain non-destructive transforms over a dataset: FilterTransform, SortTransform, AggregateTransform, BinTransform, map and join. Each returns a new dataset.
Theming & Palettes
Design-token themes, series palettes and accessibility helpers.
- Presets:
Theme.Dark(),Light(),Scientific(),Financial(),HighContrast(),ColorBlindSafe()(Okabe–Ito). - Theme asset:
Assets → Create → Helix → Theme— pick a preset, edit tokens (background, surface, axis, grid, text, stroke widths) and series colors in the inspector, then drop it into a ChartView's Theme slot. - Accessibility: a WCAG contrast read-out and a color-blind-safe palette ship in the box.
No-Code Workflow
Everything a chart needs, configured by clicking.
The ChartView inspector has two parts:
- Chart Setup — a Chart Type dropdown, Data (Dataset asset) and Theme (Theme asset) slots, X / Y column pickers sourced from the assigned dataset, a value-columns list for stacked/grouped bars, and Auto-build on Play.
- Axes & Animation — draw-axes toggle (with per-axis / gridline / tick-label sub-toggles) and a reveal slider.
Changing any field rebuilds and re-renders live in the Scene/Game view; a Rebuild / Preview button forces a refresh. At runtime the chart builds itself on Start.
Data, Generator or Theme in code, the inspector path defers to it and never overrides your values.Wizard & Assets
Menus and inspectors that scaffold and author without code.
| Menu | What it does |
|---|---|
| Window → Helix Vizforge → Welcome | The onboarding window (links to docs, demo, wizard). |
| Window → Helix Vizforge → Chart Wizard | Scaffold a chart with sample data into the scene. |
| GameObject → Helix Vizforge → Chart (Line) | Drop a Canvas + ChartView in one click. |
| Assets → Create → Helix → Dataset | A Dataset asset with a CSV import button. |
| Assets → Create → Helix → Theme | A Theme asset with preset buttons and a swatch preview. |
Scientific
Fitting, smoothing, spectra and statistical overlays.
- Curve fits with R²: linear, polynomial, exponential, power, logarithmic.
- Smoothing: moving-average and Savitzky–Golay.
- FFT power spectrum (radix-2), marching-squares contours, confidence bands and error bars.
- Analytics: k-means clustering, exponential / linear forecasting, cohort retention.
Financial
Price views and the standard technical indicators.
- Price: candlestick, OHLC bars, volume.
- Indicators: SMA, EMA, Bollinger bands, RSI, MACD.
BI & Dashboards
Pivot, KPIs, drill-down and cross-filtered dashboards.
- Pivot tables with Sum / Mean / Min / Max / Count (and more).
- KPI scorecards with value, target, delta and on-target state.
- Drill-down through dimension levels and cross-filter that drops rows from the rendered geometry.
Telemetry & Interaction
Live data and pointer interaction.
- Telemetry: allocation-free ring-buffer time series, a
TelemetryHubwith sources (FPS, frame time, memory) and edge-triggered threshold alerts. - Interaction: pan/zoom view windows, pointer hit-testing, tooltips and a selection model.
Export
Headless, dependency-free export to images, vectors and data.
- PNG (CPU rasterizer with a built-in bitmap font) and SVG (vector).
- CSV and JSON data export.
- Managed-only and WebGL-compatible; on WebGL, saves trigger a browser download.
Scripting API
The few entry points you'll use most.
ChartView
// Fluent builder
ChartView.Create(parent)
.WithData(ds)
.Line("x", "y") // or .Bar / .Scatter / .Area / .Spline / .Step
.Chart(new PieGenerator{ YColumn = "y" }) // any catalog type
.Axes(true)
.Themed(Theme.Dark())
.Build();
// No-code: build from inspector fields (data asset + kind + columns)
view.RebuildFromInspector();
IGeometryGenerator g = ChartView.GeneratorFor(ChartKind.Bar, "x", "y", null);C#
Dataset, DataSeries, CsvImporter, JsonImporter, DatasetAsset, transforms.
Theme, Palette, ThemeAsset, design tokens, contrast.
IGeometryGenerator, ChartGeneratorBase and 30 + concrete types.
IRenderSurface: UGUI, UI Toolkit, world-space.
Troubleshooting
The usual first checks.
My chart is blank
Confirm the ChartView is under a Canvas and has a non-zero size. With a data asset, make sure the X / Y columns point at real columns (use the dropdowns). In code, confirm you called .Build() / Render() and that the column names match your dataset — a misspelled column logs a Console warning ("column not found").
My CSV imported as one column
That happens when the separator isn't a comma. Helix auto-detects comma / semicolon / tab / pipe from the header — re-import and it will split correctly. If you parse in code, you can pass an explicit delimiter to CsvImporter.Parse.
The chart doesn't update when I change data
Rendering is explicit: call view.Render() after changing data in code (the inspector does this for you on every change). In the no-code path, Auto-build on Play rebuilds on Start.
World-space / 3D chart is blank in a headless build
World-space surfaces render through a camera into a texture and need a GPU at runtime — they don't produce pixels under -nographics. They work in the editor and in player builds.
FAQ
Common questions.
Do I have to write code?
No. Add a ChartView, pick a type, assign a Dataset asset and choose columns — the chart builds and renders itself. Code is optional for advanced cases.
Does it work on WebGL / mobile?
Yes. The pipeline is managed-only (no Burst/Jobs required) and WebGL-compatible; the demo ships a verified WebGL build.
Any third-party dependencies?
None. CSV/JSON parsing, statistics, FFT, regression and SVG/PNG export are all implemented in-package.
Can I add my own chart type?
Yes — implement IGeometryGenerator (or derive ChartGeneratorBase) and pass it to ChartView.Chart(…). The extensibility SDK covers custom generators, scales and transforms.
Support
Need help? We're here for you.
Get in Touch
Bug reports, feature requests, charting or data questions — reach out and we'll get back to you.
✉ szekipapa77@gmail.comWe typically respond within 24–48 hours.
- Check the Troubleshooting section
- Confirm the chart is under a Canvas with a non-zero size
- Verify the column names match your dataset
- Check the Console for any parse / "column not found" messages
- Unity version (e.g.
6000.0.30f1) - Helix Vizforge version (v1.0)
- Render pipeline (Built-in / URP / HDRP)
- The chart type + a small sample dataset
Helix Vizforge v1.0 · Built for Unity 6.0+ · Pure C#, no dependencies
Support: szekipapa77@gmail.com