What's New? > What's New in SciChart WPF SDK v9
What's New in SciChart WPF SDK v9

SciChart WPF v9 has been released and brings exciting new chart types, a significantly improved MVVM API, new featured examples, and performance improvements to the SciChart WPF 2D & 3D Chart control suite! We outline the main enhancements and features below.

The release news article is available at: scichart.com/scichart-wpf-v9-released

New Chart Type: Vector Field Renderable Series

SciChart v9 introduces the VectorFieldRenderableSeries — a new 2D chart type for rendering collections of arrows (vectors) on a plane. Each arrow originates at a data point (X, Y) and extends in the direction and magnitude defined by its displacement components (DX, DY). Vector fields are widely used to visualize directional quantities such as wind, fluid flow, electric fields, or gradient distributions.

Two data series types are provided: UniformVectorFieldDataSeries for vectors on a regular grid (ideal for simulation output and meteorological data), and NonUniformVectorFieldDataSeries for scattered sample points (suitable for sensor readings and particle simulations). Both support polar data input.

Key features of the Vector Field series include:

  • Three color modes: Solid, ByMagnitude (colormap lookup by vector length), and ByDirection (colormap lookup by angle)
  • Three vector length modes: DataUnits (faithful to data coordinates), MagnitudePixels (screen-space length proportional to magnitude), and FixedPixels (uniform arrow length, direction only)
  • Configurable arrowhead geometry (length, width, filled/open)
  • Built-in level-of-detail culling for large datasets
  • Hit-testing and individual vector selection, as well as tooltips via Chart Modifiers
  • Full MVVM support via VectorFieldRenderableSeriesViewModel

Three new examples are included in the Examples Demo: a static Vector Field Chart with uniform and non-uniform field types, a Realtime Vector Field Chart with animated flow, and a Realtime Scattered Vector Field Chart demonstrating particle simulation with multiple palette presets.

New Chart Type: Stacked Box Plot Renderable Series

SciChart v9 adds the StackedBoxPlotRenderableSeries — a box plot chart type that supports rendering multiple box plot bars side-by-side at the same X position. This makes it straightforward to compare statistical distributions across categories or experimental conditions.

Like StackedColumnRenderableSeries, the new series uses a StackedGroupId property to control grouping. Series with the same StackedGroupId are laid out side-by-side and the available DataPointWidth is divided equally among all series in the group. The Spacing property controls the pixel gap between adjacent boxes.

StackedBoxPlotRenderableSeries uses the existing BoxPlotDataSeries for its data model (X, Median, Minimum, LowerQuartile, UpperQuartile, Maximum) and supports full MVVM via StackedBoxPlotRenderableSeriesViewModel.

MVVM Axis Synchronization API

SciChart v9 introduces a purely MVVM range-synchronization mechanism for linking axis VisibleRanges across multiple charts. This is essential for dashboards where zooming or panning on one chart should update the others, and it requires no code-behind or event wiring.

Every IAxisViewModel now exposes a RangeSyncGroupId property. Axes that share the same non-null group ID are automatically linked: when any axis in the group changes its VisibleRange, the new range is propagated to every other axis in the same group. Propagation is managed internally and requires no manual subscription.

Range Transforms for Different Units

When synchronized axes represent different physical units (e.g., distance vs. time, or Celsius vs. Fahrenheit), a direct range copy is incorrect. The new IRangeSyncTransform interface solves this: assign a transform to any axis whose units differ from the canonical group unit. The synchronization flow becomes: sender range → ToGroupRange() → canonical group range → FromGroupRange() → target range.

RangeSyncSourceOnZoomExtents

During ZoomExtents, range synchronization is automatically suppressed to prevent charts from fighting over conflicting extents. For scenarios where ZoomExtents on one chart should propagate to all synchronized peers, set RangeSyncSourceOnZoomExtents = true on the authoritative axis. That axis’s computed extents are then broadcast to the sync group, transformed through each peer’s IRangeSyncTransform as usual.

A new tutorial, “Tutorial 10b: Synchronizing Axis Ranges with MVVM”, demonstrates RangeSyncGroupId, IRangeSyncTransform with a Celsius/Fahrenheit conversion, and RangeSyncSourceOnZoomExtents.

MVVM ZoomExtentsWhenReady API

In MVVM applications, Series ViewModels and their data are typically created before the SciChartSurface has attached the view models to actual RenderableSeries. Calling SciChartSurface.ZoomExtents() at this point has no effect.

SciChart v9 adds ZoomExtentsWhenReady() — an extension method on IRenderableSeriesViewModel (and IEnumerable) that defers ZoomExtents until all specified series are attached to a surface and ready for manipulation. This can be called directly from a ViewModel constructor with no reference to the SciChartSurface needed:

Using ZoomExtentsWhenReady()
Copy Code
RenderableSeries.Add(new LineRenderableSeriesViewModel
{
    DataSeries = ds,
    Stroke = Colors.CornflowerBlue
});
// Deferred ZoomExtents — fires once the surface is ready
RenderableSeries.ZoomExtentsWhenReady();

An async overload, ZoomExtentsWhenReadyAsync(), is also available for scenarios where the caller needs to know whether the operation succeeded or timed out.

MVVM Axes API Performance Improvements

The MVVM Axes API has received significant performance optimization in v9, delivering approximately 30% faster layout and rendering for charts that use AxesBinding. This improvement is especially noticeable in dashboard-style applications with many axes per surface and multiple tabs or views that trigger frequent visual tree recreation.

New Featured Example: Directional Antenna Gain 3D Chart

A new featured example demonstrates how to use SciChart 3D to create a custom 3D mesh, used to visualize a directional antenna radiation pattern. The example combines the 3D mesh with interactive 2D charts: a fan chart and gain coverage heatmap on the left, the 3D radiation pattern in the center, and E-plane and H-plane polar charts on the right.

The 3D scene includes a custom mesh entity rendered from a polar gain dataset, interactive phi and theta cut rings with adjustable opacity, and angle indicator arcs with text labels. Toolbar sliders control the cut angles, and draggable annotation lines on the gain heatmap are two-way bound to the sliders for seamless cross-chart interaction.

Other Changes

New Examples, Tutorials, and Documentation

SciChart v9 includes new examples in the SciChart Examples Demo, new tutorials in the Sandbox, and new documentation articles:

New Examples

  • Vector Field Chart — static vector field with uniform and non-uniform data, color modes, length modes, and LOD culling controls
  • Realtime Vector Field Chart — animated uniform-grid vector field
  • Realtime Scattered Vector Field Chart — particle simulation with multiple palette presets
  • Directional Antenna Radiation Pattern 3D Chart — featured application combining 3D mesh, fan chart, heatmap, and polar charts
  • Racing Telemetry Dashboard Demo — featured multi-chart dashboard with synchronized axes, distance and time domain charts, and a MVVM-bound series and demonstrates RangeSyncGroupId and IRangeSyncTransform across linked charts

New Tutorials

New Documentation Articles

Other Minor Features and Enhancements

We’ve added minor improvements and enhancements throughout the library.

More details can be found in the full changelog at
https://www.scichart.com/changelog/scichart-wpf/