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