Skip to main content
v2.2

Scrolling Surface

Scrolling 3D Scrolling Surface

Series for visualizing a 3D scrolling surface Grid inside Chart3D, with API for pushing data in a scrolling manner (append new data on top of existing data).

Surface Scrolling Grid SeriesSurface Scrolling Grid Series

Creating 3D Scrolling Surface

series = chart.add_surface_scrolling_grid_series(columns=3, rows=3)

Configuring Scrolling 3D Scrolling Surface Coordinates

These methods allow you to define the spatial positioning of 3D scrolling surface samples.

Set Start Coordinate

# Set the start coordinate to (0, 0)
series.set_start(x=0, z=0)

Set Step Between Samples

# Set the step between samples to 10 in X and 5 in Z
series.set_step(x=10, z=5)

Intensity Interpolation

Set surface intensity interpolation mode.

# Enable smooth intensity interpolation:
series.set_intensity_interpolation(True)

Appending Scrolling Data

Use add_values(...) to push new rows of heights (Y) and/or intensities into the scrolling surface:

# Prepare one “frame” worth of rows:
new_heights = [
[1.0, 1.5, 2.0],
[1.2, 1.7, 2.2],
[1.4, 1.9, 2.4],
]
new_intensities = [
[10, 20, 30],
[15, 25, 35],
[20, 30, 40],
]

# Append both Y (height) and intensity at once or it is possible to add one of them:
series.add_values(
y_values=new_heights,
intensity_values=new_intensities
)

Customizing Fill Coloring

Set Palette Coloring

import lightningchart as lc
# Create a palette that transitions from blue to red:

series.set_palette_coloring(
steps=[
{'value': 0, 'color': '#0000FF'},
{'value': 50, 'color': 'red'}
],
look_up_property='value',
interpolate=True
)

# With formatted legend display:
series.set_palette_coloring(
steps=[
{'value': 0, 'color': '#0000FF'},
{'value': 100, 'color': '#FF0000'},
],
look_up_property='value',
formatter_precision=2, # Decimal places
formatter_unit='mag', # Unit suffix
formatter_scale=1.5, # Scale values
formatter_type='scientific', # 'standard', 'compact', 'engineering', 'scientific'
formatter_operation='floor', # 'none', 'round', 'ceil', 'floor'
)

Solid Fill Color

import lightningchart as lc

# Set the fill color to a light gray:
series.set_color((200, 200, 200))

Removing Color

# Remove the fill color:
series.set_empty_color_fill()

Culling, Depth Test & Shading

Control back-face/front-face culling, depth buffering, and shading style on the 3D scrolling surface:

# Disable culling to render both sides of surface polygons
series.set_cull_mode('disabled') # options: 'disabled', 'cull-back', 'cull-front'

# Turn off depth testing so overlapping parts draw in append order
series.set_depth_test_enabled(False)

# Choose between Phong (smooth) or simple flat shading
series.set_color_shading_style(
phong_shading=True, # True = Phong, False = flat
specular_reflection=0.5, # specular strength [0–1]
specular_color='#FFFFFF' # highlight color
)
  • set_cull_mode(mode) Controls which polygon faces to discard:

    • "cull-back" (default) discards faces pointing away from camera
    • "cull-front" discards faces pointing toward camera
    • "disabled" renders both sides
  • set_depth_test_enabled(enabled) Enables/disables GPU depth buffering (occlusion) for this mesh.

  • set_color_shading_style(phong_shading, specular_reflection, specular_color) Switches between realistic Phong shading and a simple lighting model, with tunable specular highlight.

Wireframe Configuration

Set Wireframe Stroke

import lightningchart as lc

# Set a wireframe with 2px thickness in black:
series.set_wireframe_stroke(thickness=2, color='black')

Hide Wireframe

# Hide the 3D scrolling surface wireframe:
series.hide_wireframe()

Series Utility Methods

This section works the same as for Line, to avoid duplication of guides, please refer to the section under Line

Legend

Please see common legend section.

Examples

Link to the examples