CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

threejs-performance

Measuring and optimizing three.js speed: render statistics, memory counters, fewer draw calls via merging, instancing, batching and LOD, fill rate, shadows, CPU work per frame, shader stalls and GPU compute for particles, WebGL or WebGPU with TSL. Use when a scene is slow, janks or exceeds memory.

Quality

88%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Passed

No findings from the security scan

SKILL.md
Quality
Evals
Security

Quality

Content

82%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

A strong, highly actionable performance skill: executable code for every lever, measurement-first framing, and valuable non-obvious details (counter reset semantics, Clock deprecation, shadow counter behavior). Its weaknesses are mild — some boilerplate in Quick Start, no explicit counter-to-lever diagnostic map, and no use of reference files for advanced material.

Suggestions

Trim the Quick Start boilerplate (renderer/scene/camera/light setup) down to the minimal loop that demonstrates reading renderer.info after render().

Add a short diagnostic table mapping high counter values to the matching section (e.g. info.render.calls high -> merge/instance/batch; info.memory high -> KTX2/dispose; frame time high with low CPU -> fill rate).

Move the WebGPU/TSL section and the KTX2 format detail into a references/ file, keeping a brief pointer plus the counter-name differences in the main body.

DimensionReasoningScore

Conciseness

The body is dense and assumes Claude's competence — no basic three.js or rendering explanations — with terse, high-value code comments (e.g. 'the counters reset at the start of every render() call'). The Quick Start block includes boilerplate renderer/scene/camera setup that could be trimmed, keeping it below the 'every token earns its place' anchor.

4 / 5

Actionability

Every section provides copy-paste-ready executable code with specific APIs — renderer.info counters, mergeGeometries, InstancedMesh, BatchedMesh, LOD, KTX2Loader, compileAsync, shadow-map freezing, TSL compute — and the examples cover the common optimization cases end to end.

5 / 5

Workflow Clarity

'Measure First' establishes a clear diagnostic sequence, and verification checkpoints appear (checking info.memory after dispose, averaging Timer over 60 frames, separating CPU vs GPU time). A minor gap: there is no explicit counter-to-lever mapping that would guide choosing between sections when a specific number is high.

4 / 5

Progressive Disclosure

The single file is well-sectioned and easily navigable, with clearly signaled one-level See Also links to sibling skills. However, all detail is inlined in a ~390-line file; advanced material such as the WebGPU/TSL compute example or the KTX2 format matrix could be split into reference files.

4 / 5

Total

17

/

20

Passed

Description

88%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

A strong description: third-person, concrete, and comprehensive over the measure/optimize domain, with an explicit and specific 'Use when' trigger clause. The only gaps are a few missing natural synonyms (fps, frame rate) and minor topical overlap with sibling three.js skills.

DimensionReasoningScore

Specificity

'Measuring and optimizing three.js speed: render statistics, memory counters, fewer draw calls via merging, instancing, batching and LOD, fill rate, shadows, CPU work per frame, shader stalls and GPU compute for particles' lists multiple concrete capabilities covering both measurement and optimization comprehensively, with no vague filler.

5 / 5

Completeness

The 'what' is explicit and enumerated (measure via render statistics and memory counters; optimize via merging, instancing, batching, LOD, fill rate, shadows, CPU work, shader stalls, GPU compute), and the 'when' is an explicit trigger clause: 'Use when a scene is slow, janks or exceeds memory.'

5 / 5

Trigger Term Quality

Natural user phrases are present ('three.js', 'slow', 'janks', 'exceeds memory'), but common synonyms such as 'fps' or 'frame rate' that users would naturally say are missing, matching the 'good keyword coverage; a few natural terms missing' anchor.

4 / 5

Distinctiveness Conflict Risk

The performance niche is clear and the triggers (slow, jank, memory) are distinctly performance-oriented, but listed topics like 'shadows' overlap with closely related sibling skills (threejs-lighting, threejs-geometry), matching the 'minor overlap risk with closely related skills' anchor.

4 / 5

Total

18

/

20

Passed

Validation

100%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 16 / 16 Passed

Validation for skill structure

No warnings or errors.

Repository

CloudAI-X/threejs-skills

Path

skills/threejs-performance/SKILL.md

Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.