interledger / interledger/reports

perf: pause globe rendering when offscreen

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

Nobody has claimed this yet.

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

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.

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.

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.

Assessment

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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.