Pre loader

Tag: SciChart3DSurface

Welcome to the SciChart Forums!

  • Please read our Question Asking Guidelines for how to format a good question
  • Some reputation is required to post answers. Get up-voted to avoid the spam filter!
  • We welcome community answers and upvotes. Every Q&A improves SciChart for everyone

WPF Forums | JavaScript Forums | Android Forums | iOS Forums

1 vote

I must be missing something here.
I’ve followed the tooltips and hit test 3d chart examples.
All I need is the X, Y, Z coordinates that you get with the tooltip.
The only example I’ve found is for scatter points using VertexSelectionModifier3D and OnScatterDataChanged event.
But I cant figure out how to do something similar with GridDataSeries (Uniform or non-uniform).
I’ve tried the “ToolTipOpening” event but it doesn’t trigger when the tooltip opens.
This is the last thing I need before I commit to a licence.
The chart is working fine for my use case otherwise.

  • Blaz Majcen asked 11 months ago
  • last active 11 months ago
0 votes


I am working on a live graph similar to the sparse impulse series 3D and would like to add live annotations to the plotted data points to display the Y axis value.

Does the SciChart3DSurface support annotations?

If not I would like to instead use the TooltipModifier3D, but would like to force the tooltip to be displayed all the time and reduce the amount of data displayed to a single Y-Axis value. Does this sound reasonable.



1 vote

I am trying to create a plot that animates ODS (Operating Deflection Shape) using FRF (Frequency Response Function) data. Is ODS animation possible using scichart’s gemoetry 3D plot?

  • kim2 kim asked 1 year ago
  • last active 1 year ago
0 votes

Hi, we got performance problems with 3D chart on UniformGridDataSeries3D when size of mesh is bigger than 400×400.
The rendering is fine, but it have weird behavior when controlling from mouse: rendering is lags behind mouse movement and it’s hard to rotate the surface accurate.

To reproduce it you can use SciChart_SurfaceMesh3DNonUniformData scichart example and set the surface size to 500×500 for example.

Perfectly we are planning to use 1500×1500 mesh but currently we had to downsample it to 250×250.

Is there is some workaround for this?

1 vote


I am trying out SciCharts and am looking to recreate the example 3D uniform surface mesh chart example and don’t have a good hold on the architecture yet. I don’t see directions as to which file to paste the example code into. I’m looking at the code example where it creates a “final camera3D camera – schiChart3DBuilder.newCamera3D().build();” and goes from there. (…/webframe.html#The%20Surface%20Mesh%203E%20Chart%20Type.html)

I have the 3D surface created and rendering. I just need to get started to go from there. Thank you.

0 votes

Hello, SciChart team
i’m having an issue using SciCHart Examples Suite, and implementinting 3D charts
so when i choose some of 3d examples in Examples Suite i see a pitch black field instead of chart. after experiments with settings i figured out that 3D charts appear if i set “Use Alternative Fill Source” setting to true, which is in the 2D section of settings (not so obvious solution)
so the question is – how do i implement 3dcharts and ensure that they will run on clients’ workstations?
i’ve just updated SciChart to v5.1.1.11473
i have nvidia gtx 1050ti and fresh 398.82 drivers
i attach images of Examples Suite

0 votes

I have a license for 2D plots and now I am trying to evaluate the 3D plots. I used the most basic example provided to plot 3 axis.

import { useEffect, useRef } from "react";
import React from 'react'
import {
} from "scichart"

const createChart = async (divElementId) => {
    const { wasmContext, sciChart3DSurface } = await SciChart3DSurface.createSingle(divElementId, {
        //theme: new SciChartJsNavyTheme(),
        worldDimensions: new Vector3(300, 200, 300),
        cameraOptions: {
            position: new Vector3(300, 300, 300),
            target: new Vector3(0, 50, 0),
    sciChart3DSurface.xAxis = new NumericAxis3D(wasmContext, {
        drawMajorGridLines: true,
        drawMinorGridLines: true,
        drawLabels: true,
        axisTitle: "X Axis, 4-decimal places",
        visibleRange: new NumberRange(0, 1000),
        labelFormat: ENumericFormat.Scientific,
        cursorLabelFormat: ENumericFormat.Decimal,
        labelPrecision: 4,
        maxAutoTicks: 5,
        titleOffset: 50,
        tickLabelsOffset: 10,
    sciChart3DSurface.yAxis = new NumericAxis3D(wasmContext, {
        axisTitle: "Y Axis, 2 dp, prefix & postfix",
        labelPrecision: 2,
        labelPrefix: "$",
        labelPostfix: " USD",
        visibleRange: new NumberRange(10, 1000),
        maxAutoTicks: 5,
        titleOffset: 50,
        tickLabelsOffset: 10,
    sciChart3DSurface.zAxis = new NumericAxis3D(wasmContext, {
        axisTitle: "Z Axis, 0 dp",
        visibleRange: new NumberRange(0, 1000),
        labelPrecision: 0,
        labelPostfix: " kWh",
        maxAutoTicks: 5,
        titleOffset: 50,
        tickLabelsOffset: 10,
    //sciChart3DSurface.zAxis = new NumericAxis3D(wasmContext, { axisTitle: "Z Axis" });
        new MouseWheelZoomModifier3D(), // provides camera zoom on mouse wheel
        new OrbitModifier3D(), // provides 3d rotation on left mouse drag
        new ResetCamera3DModifier()); // resets camera position on double-click
    return sciChart3DSurface

const ThreeDPlotTemplate = (props) => {
    const sciChart3DSurfaceRef = useRef()
    useEffect(() => {
        sciChart3DSurfaceRef.current = createChart(`scichart-root-${}`); // Note, does not delete on unmount (todo later)
        console.log(sciChart3DSurfaceRef.current.then(value => console.log(value)))
    }, []);

    return (
                width: "100%",
                height: "100%",
                position: "relative",
                    width: "100%",
                    height: "100%",
                    position: "relative",
                    position: "absolute",
                    width: "100%",
                    top: "35%",
                    textAlign: "center",
                    pointerEvents: "none",
                    color: "#ffffff77"
                <p className="title">SciChart.js 3D Chart Example</p>
                <p className="subTitle">Drag the mouse to rotate, use MouseWheel to zoom</p>
                <p className="subTitle">Double-click to reset zoom</p>
        </div >

export default ThreeDPlotTemplate

But i am getting just a blank screen Please see attached image. Is this an issue we licensing? or am i missing something?



2 votes

Hello, I am currently importing and displaying a .obj file as a ObjectModel3D object similar to the following syntax of the code provided in the AddObjectsToA3DChart.xaml example:

object:ObjectModel3D TextureSource=”{StaticResource BlackTexture}” Source=”{StaticResource KnightLowObj3DSource}” Position=”0.0625, 0.6, 0.8125″ CoordinateMode=”Relative” Scale=”0.2, 0.2, 0.2″ Rotation=”{StaticResource ObjRotationState}”

Where ObjRotationState is : object:Rotation3D x:Key=”ObjRotationState” Axis=”YAxis” Angle=”180″

The above code excerpt sets the rotation angle at 180 degrees on the Y-axis only for the ObjectModel3D object.

However, I would like to set the rotation angle for the X, Y, and Z axis of the ObjectModel3D object at the same time. Is it possible to set the rotational angle for multiple axis as described? If not, are there suggested workarounds to achieve the same behavior?

Thank you for your assistance.

1 vote


is there any way I can set in the XAML that the walls of the axis cube will be visible independent of how the cube is rotated? I’m rendering a drilling hole in 3D space and want to the ground plane(the top wall) and the two back planes to always be visible even if the user rotates the cube so they are infront of the rendered line. Is that possible?

Kind regards,

0 votes


My name is Harold Ramírez and I have a question I would like you to answer because I don’t find any doucmentation about it online.

I have a WPF application with several charts, some of them in 3D. These 3D charts have the X axis in horizontal, Y in vertical and the Z in depth. I want only to keep the labels on the X and Y axis, on the left and bottom of the chart.

The only documentation I have found is this page:, and only shows how to make it in XAML, but I need it to do it programatically in C#.

Thank you for your time.


0 votes

Hi, how do I disable Visual Xccelerator Engine for SciChart3DSurface?
I tried with the following code

<s3D:SciChart3DSurface x:Name="View3D"  s:VisualXcceleratorEngine.IsEnabled="False"/>

But it gives compilation error:

Property ‘IsEnabled’ is not attachable to elements of type ‘SciChart3DSurface’.

So how do I generally enable/disable Visual Xccelerator Engine for SciChart3DSurface?

0 votes

Hi, on our data SciChart3DSurface seems a bit laggy while rotating camera, FPS is low. What are general way to improve SciChart3DSurface performance?

0 votes

If I create a UniformGridDataSeries3D:

 new UniformGridDataSeries3D<float>(1, 3);

The 3D surface is blank. If x > 1 it draws correctly.

This is basically like a 2D histogram plot.

Before having to provide an example, is this a limitation of using a UniformGridDataSeries3D, and if so, is there a workaround?

0 votes
0 answers

Hello, SciChart team!
i’m having some troubles with dated 3D charts.
so what do i need is to display samples which have 65k double points and a DateTime
Firstly i thought waterfall series would fill my needs, but i encountered these problems:
1. Charts wouln’t render Large series like 10 slices with 65k points per slice, 15k is ok (the charts just hang and don’t display anything for tens of minutes)
2. so the series would appear 10×15000, but i had issues with autorange and zooming when interval between slices is as small as 2 seconds (AutoRange is set to always)
my guess is that i need to set properties StepZ and StartZ correctly, but I couldn’t figure it out. i thought “StepZ” should be TimeSpan or smth like that, but it is DateTime too, so i tried some variations and didn’t succeed. could you please explain these properties’ use?
3. maybe this is feature but why do series go below 0 in the Y direction?

so then i reallized that i don’t always need to fill series with color and Waterfall series don’t quite fit ( even with transparent fill they have border lines on series start and end, and i thought i would add several PointLine RenderableSeries, one for each sample with fixed Z Datetime, but when i added such Renderable Series i get “SciChart3DSurface didn’t render, because an exception was thrown: Exception thrown: ‘System.IndexOutOfRangeException’ in SciChart.Charting3D.dll”
i played with example from latest SciChart version and attached altered solution to this post
so hit sidebar’s “Test” button and try both methods AddPointLineRenderSeries and AddWaterfallRenderSeries

Thanks in advance!
Best regards,

Showing 14 results