CesiumGS / CesiumGS/cesium

Performance issue with aggregateAttributeValues in GaussianSplatPrimitive

Open
#12,797 4 comments 0 reactions 0 assignees View on GitHub
category - gaussian splatting category - memory/performance type - bug
Dominant language
JavaScript
Stars
15.8k
Forks
3.9k
Avg merge
4d 6h
Merged PRs (30d)
34

Description

### What happened?

The aggregateAttributeValues function in GaussianSplatPrimitive has performance issues when handling moderately large datasets.
This synchronous code blocks the browser’s rendering process, causing noticeable UI stuttering and lag.

Perhaps it could be implemented in a worker, but Primitive is not a transferable object.

https://github.com/user-attachments/assets/7bf4431b-1344-48b0-9ed9-e42c76cf07c0

Image

Image

### Reproduction steps

load a GaussianSplat tileset
then move camera

### Sandcastle example

_No response_

### Environment

Browser: Chrome 138.0.7204.169
CesiumJS Version: 1.132
Operating System: win 11

Contributor guide

Open the contributing guide

Research direction

Start by locating aggregateAttributeValues in GaussianSplatPrimitive and reproduce the stuttering by loading a GaussianSplat tileset and moving the camera in Chrome. Investigate how the synchronous work blocks rendering and evaluate an approach that accounts for Primitive not being transferable. Done means the operation no longer causes noticeable UI stuttering on moderately large datasets.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript
Domain
computer-graphics, performance, web-dev
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.