dynamic-res-scaler
Implement dynamic resolution scaling for React Three Fiber / Three.js by adjusting DPR based on measured FPS. Use when asked to add adaptive performance scaling, automatic DPR tuning, or a DynamicResScaler-style component in a R3F scene.
$ 安裝
git clone https://github.com/majiayu000/claude-skill-registry /tmp/claude-skill-registry && cp -r /tmp/claude-skill-registry/skills/development/dynamic-res-scaler ~/.claude/skills/claude-skill-registry// tip: Run this command in your terminal to install the skill
SKILL.md
name: dynamic-res-scaler description: Implement dynamic resolution scaling for React Three Fiber / Three.js by adjusting DPR based on measured FPS. Use when asked to add adaptive performance scaling, automatic DPR tuning, or a DynamicResScaler-style component in a R3F scene.
Dynamic Res Scaler
Overview
Implement a small R3F component that monitors frame rate and adjusts device pixel ratio (DPR) at runtime to balance visual quality and performance.
Workflow
- Locate the main
Canvasand decide where to mount the scaler (typically near the root of the scene so it always runs). - Create or update a
DynamicResScalercomponent usinguseFrame+useThree. - Track FPS over a short interval using refs (avoid state to prevent re-renders).
- Adjust DPR in small steps within min/max bounds and call
setDpronly when it changes. - Mount the component inside the
Canvasand verify behavior in dev builds.
Tuning Guidelines
- TARGET_FPS / FPS_TOLERANCE: adjust how aggressively the scaler reacts (e.g., 60 ± 5).
- CHECK_INTERVAL: 300–700ms keeps changes responsive without thrashing.
- STEP: 0.05–0.15 is typical; smaller steps reduce visible jumps.
- MIN_DPR / MAX_DPR: clamp to protect performance; cap MAX_DPR to devicePixelRatio or 2.
Resources
Use references/dynamic-res-scaler.md for the drop-in implementation and configuration notes based on DynamicResScaler.tsx.
Repository

majiayu000
Author
majiayu000/claude-skill-registry/skills/development/dynamic-res-scaler
0
Stars
0
Forks
Updated1d ago
Added1w ago