Skip to content

GaussianSplatNode3D API Reference

Purpose

Use GaussianSplatNode3D to render Gaussian splat assets or procedural splat arrays in a Node3D scene (modules/gaussian_splatting/nodes/gaussian_splat_node_3d.h:73).

Usage

Task Primary API Implementation
Assign preprocessed asset. set_splat_asset(asset) modules/gaussian_splatting/nodes/gaussian_splat_node_3d.cpp:511
Load from file path (compatibility path). set_ply_file_path(path), set_auto_load(enabled) modules/gaussian_splatting/nodes/gaussian_splat_node_3d.cpp:496
Push procedural data. set_splat_data(...) modules/gaussian_splatting/nodes/gaussian_splat_node_3d.cpp:548
Run manual updates. set_update_mode(UPDATE_MODE_MANUAL), update_splats() modules/gaussian_splatting/nodes/gaussian_splat_node_3d.cpp:881
Inspect live metrics. get_visible_splat_count(), get_statistics() modules/gaussian_splatting/nodes/gaussian_splat_node_3d.cpp:988

API

Enums

Enum Values Source
QualityPreset QUALITY_PERFORMANCE, QUALITY_BALANCED, QUALITY_QUALITY, QUALITY_CUSTOM modules/gaussian_splatting/nodes/gaussian_splat_node_3d.h:81
ViewportUpdateMode UPDATE_MODE_ALWAYS, UPDATE_MODE_WHEN_VISIBLE, UPDATE_MODE_WHEN_PARENT_VISIBLE, UPDATE_MODE_MANUAL modules/gaussian_splatting/nodes/gaussian_splat_node_3d.h:92
DebugDrawMode DEBUG_DRAW_OFF, DEBUG_DRAW_WIREFRAME, DEBUG_DRAW_POINTS, DEBUG_DRAW_HEATMAP modules/gaussian_splatting/nodes/gaussian_splat_node_3d.h:103

Properties

Inspector path Type Accessors Notes Source
ply_file_path String set_ply_file_path, get_ply_file_path Deprecated compatibility path. Accepts .ply and .spz by file hint, but new scene workflows should prefer splat_asset. modules/gaussian_splatting/nodes/gaussian_splat_node_3d.cpp:89
splat_asset GaussianSplatAsset set_splat_asset, get_splat_asset Assign a preprocessed resource instead of a file path. modules/gaussian_splatting/nodes/gaussian_splat_node_3d.cpp:93
auto_load bool set_auto_load, is_auto_load_enabled Loads automatically only when the node is inside the tree. modules/gaussian_splatting/nodes/gaussian_splat_node_3d.cpp:536
quality/preset int (QualityPreset) set_quality_preset, get_quality_preset Preset values are applied through quality helper config. modules/gaussian_splatting/nodes/gaussian_splat_node_helpers.cpp:913
quality/lod_bias float set_lod_bias, get_lod_bias Clamped to 0.1..4.0. modules/gaussian_splatting/nodes/gaussian_splat_node_3d.cpp:798
quality/max_render_distance float set_max_render_distance, get_max_render_distance Clamped to >= 0.0. modules/gaussian_splatting/nodes/gaussian_splat_node_3d.cpp:804
quality/max_splat_count int set_max_splat_count, get_max_splat_count Clamped to >= 1000. modules/gaussian_splatting/nodes/gaussian_splat_node_3d.cpp:810
painterly/enabled bool set_enable_painterly, is_painterly_enabled Enables painterly tuning and streaming flags. modules/gaussian_splatting/nodes/gaussian_splat_node_3d.cpp:819
painterly/edge_threshold float set_edge_threshold, get_edge_threshold Clamped to 0.0..1.0. modules/gaussian_splatting/nodes/gaussian_splat_node_3d.cpp:833
painterly/stroke_opacity float set_stroke_opacity, get_stroke_opacity Clamped to 0.0..1.0. modules/gaussian_splatting/nodes/gaussian_splat_node_3d.cpp:842
painterly/stroke_width float set_stroke_width, get_stroke_width Clamped to 0.1..5.0. modules/gaussian_splatting/nodes/gaussian_splat_node_3d.cpp:850
painterly/temporal_blend float set_temporal_blend, get_temporal_blend Clamped to 0.01..1.0. modules/gaussian_splatting/nodes/gaussian_splat_node_3d.cpp:866
painterly/seed int set_painterly_seed, get_painterly_seed Clamped to 0..65535. modules/gaussian_splatting/nodes/gaussian_splat_node_3d.cpp:875
rendering/update_mode int (ViewportUpdateMode) set_update_mode, get_update_mode Manual mode disables automatic processing. modules/gaussian_splatting/nodes/gaussian_splat_node_3d.cpp:895
rendering/cast_shadow bool set_cast_shadow, get_cast_shadow Applies cast shadow state to render instance. modules/gaussian_splatting/nodes/gaussian_splat_node_3d.cpp:902
rendering/frustum_culling bool set_use_frustum_culling, is_frustum_culling_enabled Applies immediately to renderer settings. modules/gaussian_splatting/nodes/gaussian_splat_node_3d.cpp:916
rendering/opacity float set_opacity, get_opacity Clamped to 0.0..1.0. modules/gaussian_splatting/nodes/gaussian_splat_node_3d.cpp:927
rendering/color_grading ColorGradingResource set_color_grading, get_color_grading Used by real-time grading and baking API. modules/gaussian_splatting/nodes/gaussian_splat_node_3d.cpp:1788
debug/preview_enabled bool set_preview_enabled, is_preview_enabled Controls editor preview visibility path. modules/gaussian_splatting/nodes/gaussian_splat_node_3d.cpp:935
debug/show_bounds bool set_show_bounds, is_showing_bounds Toggles gizmo bounds rendering. modules/gaussian_splatting/nodes/gaussian_splat_node_3d.cpp:941
debug/show_statistics bool set_show_statistics, is_showing_statistics Exposes read-only stats/* inspector fields when active. modules/gaussian_splatting/nodes/gaussian_splat_node_3d.cpp:486
debug/show_tile_grid bool set_show_tile_grid, is_showing_tile_grid Persists via settings manager and updates renderer when allowed. modules/gaussian_splatting/nodes/gaussian_splat_node_helpers.cpp:585
debug/show_density_heatmap bool set_show_density_heatmap, is_showing_density_heatmap Persists via settings manager and updates renderer when allowed. modules/gaussian_splatting/nodes/gaussian_splat_node_helpers.cpp:599
debug/show_performance_hud bool set_show_performance_hud, is_showing_performance_hud Persists via settings manager and updates renderer when allowed. modules/gaussian_splatting/nodes/gaussian_splat_node_helpers.cpp:613
debug/show_lod_spheres bool set_show_lod_spheres, is_showing_lod_spheres Updates gizmos only. modules/gaussian_splatting/nodes/gaussian_splat_node_helpers.cpp:631
debug/show_performance_overlay bool set_show_performance_overlay, is_showing_performance_overlay Updates gizmos only. modules/gaussian_splatting/nodes/gaussian_splat_node_helpers.cpp:640
debug/overlay_opacity float set_debug_overlay_opacity, get_debug_overlay_opacity Clamped to 0.0..1.0. modules/gaussian_splatting/nodes/gaussian_splat_node_helpers.cpp:649
debug/debug_draw_mode int (DebugDrawMode) set_debug_draw_mode, get_debug_draw_mode Swaps renderer preview mode unless runtime preview override is enabled. modules/gaussian_splatting/nodes/gaussian_splat_node_helpers.cpp:662
debug/runtime_preview bool set_runtime_preview_enabled, is_runtime_preview_enabled Temporarily forces runtime modification preview mode in renderer. modules/gaussian_splatting/nodes/gaussian_splat_node_helpers.cpp:682
debug/show_residency_hud bool set_show_residency_hud, is_showing_residency_hud Persists via settings manager and updates renderer when allowed. modules/gaussian_splatting/nodes/gaussian_splat_node_helpers.cpp:701

Methods

Method Behavior Source
reload_asset() Triggers the same load path as setting a new file path. modules/gaussian_splatting/nodes/gaussian_splat_node_3d.cpp:544
is_asset_loading() Returns asynchronous load state managed by the asset helper. modules/gaussian_splatting/nodes/gaussian_splat_node_helpers.cpp:90
set_splat_data(...) Builds a runtime asset from arrays after validating all optional array lengths. modules/gaussian_splatting/nodes/gaussian_splat_node_3d.cpp:589
bake_color_grading() Bakes grading into data, disables grading resource, and returns Error. modules/gaussian_splatting/nodes/gaussian_splat_node_3d.cpp:1794
restore_color_grading() Restores original colors and re-enables grading resource if present. modules/gaussian_splatting/nodes/gaussian_splat_node_3d.cpp:1821
is_color_grading_baked() Reports whether bake state is present in current renderer data. modules/gaussian_splatting/nodes/gaussian_splat_node_3d.cpp:1837
get_visible_splat_count() Returns node-level visible splat count after sync with renderer stats. modules/gaussian_splatting/nodes/gaussian_splat_node_3d.cpp:1106
get_total_splat_count() Returns node-level total splat count from asset or procedural data. modules/gaussian_splatting/nodes/gaussian_splat_node_3d.cpp:1111
get_last_update_time_ms() Returns elapsed update time measured in update_splats(). modules/gaussian_splatting/nodes/gaussian_splat_node_3d.cpp:1230
get_gpu_memory_mb() Returns estimated GPU memory derived from loaded or procedural buffers. modules/gaussian_splatting/nodes/gaussian_splat_node_3d.cpp:1129
get_statistics() Returns node counters and merges any renderer stats dictionary keys. modules/gaussian_splatting/nodes/gaussian_splat_node_3d.cpp:988
get_configuration_warnings() Returns warnings for missing assets, missing files, zero distance, and non-uniform scale. modules/gaussian_splatting/nodes/gaussian_splat_node_3d.cpp:1273
get_renderer() Returns the shared renderer instance for the node world. modules/gaussian_splatting/nodes/gaussian_splat_node_3d.cpp:1779
update_splats() Performs the full render update path and refreshes timing and metrics. modules/gaussian_splatting/nodes/gaussian_splat_node_3d.cpp:1026
force_update() Calls update_splats() and emits viewport_visibility_changed. modules/gaussian_splatting/nodes/gaussian_splat_node_3d.cpp:1268

Signals

Signal Parameters Source
asset_loaded None modules/gaussian_splatting/nodes/gaussian_splat_node_3d.cpp:281
asset_loading_failed error: String modules/gaussian_splatting/nodes/gaussian_splat_node_3d.cpp:282
viewport_visibility_changed visible: bool modules/gaussian_splatting/nodes/gaussian_splat_node_3d.cpp:283

Examples

extends Node3D

@onready var splat: GaussianSplatNode3D = $GaussianSplatNode3D

func _ready() -> void:
    var asset := load("res://splats/scene.ply") as GaussianSplatAsset
    splat.set_splat_asset(asset)
    splat.set_quality_preset(GaussianSplatNode3D.QUALITY_BALANCED)
    splat.set_update_mode(GaussianSplatNode3D.UPDATE_MODE_WHEN_VISIBLE)
extends Node3D

@onready var splat: GaussianSplatNode3D = $GaussianSplatNode3D

func _ready() -> void:
    var positions := PackedVector3Array([Vector3.ZERO])
    var colors := PackedColorArray([Color(1.0, 1.0, 1.0, 1.0)])
    splat.set_splat_data(positions, colors)
    splat.set_update_mode(GaussianSplatNode3D.UPDATE_MODE_MANUAL)
    splat.update_splats()

Troubleshooting

Problem Action Source
No splats appear after scene start. Check get_configuration_warnings() for missing asset/path and zero render distance cases. modules/gaussian_splatting/nodes/gaussian_splat_node_3d.cpp:1273
set_splat_data() does nothing. Ensure every optional array has the same length as positions when provided. modules/gaussian_splatting/nodes/gaussian_splat_node_3d.cpp:589