perf: pause globe rendering when offscreen

Open Beginner friendly
#1 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
2/5
Estimated time
1-3 hours
Newbie friendliness
78/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Active
Tech stack
three.js

Research direction

Inspect src/lib/Globe.svelte around the referenced lines and trace how the Three.js render loop and controls().autoRotate are managed. Reproduce the availability page behavior in Chrome, then verify that rendering pauses when the globe is offscreen or inactive and no longer runs continuously.

Written by the indexing model from the issue text.

Description

Opening https://interledger.github.io/reports/availability makes Chrome consume memory until my computer becomes unresponsive, sometimes requiring a forced restart.

The likely trigger is the Three.js globe's permanent WebGL render loop. The page only toggles controls().autoRotate, which stops rotation but not rendering—even when the globe is offscreen:

https://github.com/interledger/reports/blob/77b9b14f9e7a0f711d747db7a0385b83820184b6/src/lib/Globe.svelte#L27-L31

The extreme memory growth may be Chrome/GPU-driver-specific, but the continuous rendering is unnecessary and triggers it.

Please pause the renderer with globe.pauseAnimation() when it is offscreen or inactive. Disabling automatic rotation, loading the globe only on user request, or using a static SVG map would be safer.

Dominant language
Svelte
Stars
1
Forks
0
PR merge metrics
No merged PRs in 30d

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Similar issues

More Data Visualization issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.