Performance issue with aggregateAttributeValues in GaussianSplatPrimitive
- 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
### 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
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