SciChart® the market leader in Fast WPF Charts, WPF 3D Charts, iOS Chart, Android Chart and JavaScript Chart Components

Hey everyone!

Even though the release of SciChart WPF v4.2 is barely a day old(!) we are already hard at work on v4.3, where we intend to add some new features for SciChart WPF 3D Charts as well as several 2D Chart features. We want to get some information from you, our userbase, as to what requirements are most important to you. We also need to ask you a few questions about how you would expect correct usage of the 3D Chart.

Features Planned for v4.3

We are planning the following features for v4.3 of SciChart WPF and we need your feedback on them. Some questions and explanation are found below.

  1. SC3D-218 Support for contours on 3D Surface Mesh charts
  2. SC3D-336 Support for nulls (transparent cells) or override cell colours on 3D Surface Mesh charts
  3. SC3D-338 Support for Waterfall 3D Charts
  4. SC3D-337 Possibly: Support for non-uniform mesh sizes (pending feasibility)
  5. SC3D-326 Possibly: Virtualization of Surface Mesh where size exceeds 4096*4096 (pending feasibilty)
SC3D-218 Contours on Meshes

We can add contours on surface plots quite easily. Something like this:


This is quite easy to do, but we would like to know from you if (a) it is important, (b) you need to be able to configure the contour colours dynamically (per contour, as opposed to one colour for all), (c) whether you have any special requirements for placing contours, or if you would like SciChart to choose and (d) any other comments or suggestions for the API as we build it.

Can you contact us if this feature is important to you? Your input into the requirements would be greatly appreciated.

SC3D-336 Support for Nulls in Surface Meshes

A number of users have asked for nulls (transparent cells) in surface meshes. This sounds easy on the surface, but it isn’t … Nevertheless we want to deliver it. We do have some questions though.

Given a surface mesh with 8×8 data values, we end up with something like this (below). The data-points are shown by orange dots. The cells are the squares next to the dots.

8x8 Surface Mesh. Data-values are marked as orange points

8×8 Surface Mesh. Data-values are marked as orange points

As you can see, cell colour is specified by interpolating the four points surrounding a cell. For example, the cell in the top right has a data-value of Y=1 so it should be red, but it isn’t, it’s yellow, because it has two other edges which are only at Y=0.5.

Now if a user wants to specify a cell as transparent, for example the cell at X=1, Z=6, them you end up with this:

When one data-point is null at X=1,Z=6, four cells become transparent.

When one data-point is null at X=1,Z=6, four cells become transparent.

Now this obviously isn’t ideal. We thought about how to solve this.

We could allow you to specify a separate texture for the mask to ‘null’ certain cells, however you will notice that there are 8×8 data-points in the mesh, but only 7×7 cells, so the texture size doesn’t actually match the data size. This would allow you to mask out certain cells but it would also give you a clunky API and raise questions of accuracy because of the mismatch of sizes.

Another way is we could change how we are drawing the cell textures. We could offset the texture so that each square in the texture surrounds the data-point, for example:

Proposed solution: offsetting cell positions so the centre of the cell is over the data-point

Proposed solution: offsetting cell positions so the centre of the cell is over the data-point

This would be a nice solution except it raises two problems.

  1. At the edges you get half a cell. Might look wierd.
  2. The wireframe position (which goes through the data-points) no longer matches the cell edges. When SurfaceMeshRenderableSeries3D.MeshPaletteMode is HeightMapInterpolated, but might look odd when SurfaceMeshRenderableSeries3D.MeshPaletteMode is HeightMapSolidCells.

We invite your comment/feedback on this proposed solution and whether it seems correct. It is very important to us that our scientific WPF Charts are both intuitive and accurate.

SC3D-337 Uneven Spacing of Surface Mesh Data-Points

Several users have requested that we allow uneven spacing of surface mesh data-points. However, we have a question. Which sort of spacing are you expecting, (A) or (B)?

(A) Uneven spacing of mesh points with each point in a row, column the same as the other points

(A) Uneven spacing of mesh points with each point in a row, column the same as the other points

(B) Uneven spacing of mesh points with decoupled placement of points

(B) Uneven spacing of mesh points with decoupled placement of points

SC3D-338 Waterfall Charts 3D

In SciChart WPF v4.3 we intend to add Waterfall Charts 3D. For clarification, we intend to create a hardware-accelerated version of our WPF Waterfall Chart Example using SciChart3D:

The SciChart WPF Waterfall Chart is simulated using 2D Charts

The SciChart WPF Waterfall Chart is simulated using 2D Charts

If we do this, we will likely bind it to our UniformGridDataSeries3D type. This means the data-source will be a 2-dimensional Double[][] array of Y-values only. But what sort of requirements do you need for this chart type? Do you need for example:

  • To be able to space values in X unevenly or will the spacing be uniform?
  • To have different numbers of points on each ‘slice’ or the same point count on all slices?
  • Do you need to scroll left/right as if this were many slices of a timeseries?

We’re assuming you need realtime performance & being able to scroll in the Z-direction (time) …

SC3D-326 Virtualization of Large Surfaces

The current limit for the size of the 3D Surface Mesh chart is limited by the maximum texture size on your GPU, which in most cases is 4096*4096 and on some GPUs is larger, up to 16k * 16k.

Some customers have contacted us and asked for larger surface sizes, but we would just like to know how many so that we can prioritise this complex piece of work.


Those are all the questions we have about SciChart 3D Surface Mesh for now. If you are a current customer of SciChart WPF 3D, or you are considering to purchase this software, please get in contact with your feedback. It is extremely valuable that we build software that you actually want to use and meets your requirements!

Best regards,
[SciChart Team]


Andrew Burnett-Thompson
Andrew Burnett-Thompson
CEO / Founder of SciChart & SciTrader. Masters (MEng) and PhD in Electronics & Signal Processing.


  1. oemer says:

    SC3D-336 Support for Nulls in Surface Meshes

    ok let’s do some vocabulary first:

    – data point = The dots in your example picture
    – visual cell = the colorized squares in your example picture
    – data cell = the cell from data point to data point

    the approach with the center of the “visual cell” over the data point perfectly fits our requirement. Indeed we have a lots of visualization code in our company where we exactly do that.

    We suggest as follows:
    1. User defines data matrix as before -> No Null values are allowed, the user must provide valid floating values in order to correctly draw the contour(height profile)
    – To do for us: we must provide a “healthy” data matrix. Here we will interpolate “Invalid/Null” data points with their “healthy” neighbors
    2. SciChart will colorize the visual cells according to the provided color palette and data point values
    –> Currently we are using HeightMapInterpolated. So actually nothing changes in our image with your new approach?!
    3. Now we will call an additional API such as mesh[x, z] = Red or whatever. This will colorize the visual cell over the data point WITHOUT affecting the neighboring visual cells. So basically this is a simple overwrite.

    The circumstance that “half cells” occur is fine. The feedback of the other user do not met our requirements.
    The question is where to place the wireframe. Along the data points or visual cells?

    SC3D-337 Uneven Spacing of Surface Mesh Data-Points

    A is enough

    • Andrew says:

      Thanks for the valuable feedback! This is almost precisely the approach we are going for. We have actually implemented a prototype, but have not centred the Visual Cell on the Data-Point yet. Instead, we blank out the Data-Cell. However, it’s an easy thing to change (or to make configurable).

  2. Gavrilo Mumovic says:

    SC3D-218 Contours on Meshes

    We are looking into your product mainly because of the Point-Line 3D capabilities, but Contour Maps would be very useful as well.
    I imagine them not only to be drawn on the Surface Mesh, but to a be a standalone chart type (2D view of 3D data).
    Please take a look at how Infragistics did it:
    This looks cool, but I do not think it is possible to see only the contour without the surface.


Leave a Reply