CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

3d-wood-material

Build convincing timber for Three.js as one procedural MeshPhysicalMaterial with growth rings, cathedral figure, pores, medullary rays, checks, tool marks, end grain, and oil, wax, or lacquer finishes, so the grain follows the form and survives macro close-ups without image textures. Use for wood boards, benches, carved panels, tool handles, joinery, floors, and any request to make 3D wood look real, detailed, or less like a tiled photo or plastic.

70

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

71%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 dense, expert recipe: exact constants, per-species tables, and a strong failure-mode catalogue make it highly actionable for reconstructing the shader. The main weaknesses are the missing demo.html/PROMPT.md bundle files the text depends on, and the absence of a complete copy-paste shader snippet.

Suggestions

Ship `demo.html` and `PROMPT.md` in the bundle (e.g. under assets/) or remove the "Run `demo.html` first" instruction, since neither file exists next to SKILL.md and the references currently dangle.

Inline the complete `onBeforeCompile` patch (the W struct plus the `map_fragment`, `roughnessmap_fragment`, and `normal_fragment_maps` replacements) as one copy-paste GLSL block so the shader doesn't have to be assembled from prose.

Add inline checkpoints to the recipe (e.g. after step 5, "verify at a grazing angle and 3 m that no layer shimmers") so validation is sequenced into the workflow rather than only available in the separate failures catalogue.

DimensionReasoningScore

Conciseness

The body is telegraphic and never explains concepts Claude already knows ("Patch, do not replace", "Bake one field", exact constants throughout), but the "Self-score of this material" section is evaluative meta rather than instruction and could be trimmed, matching the minor-trim anchor at 4 rather than every-token-earns-its-place at 5.

4 / 5

Actionability

Guidance is exact and near-executable ("`lateWidth=0.065+annual*0.21`", "`#include <roughnessmap_fragment>` sets `roughnessFactor=clamp(roughness*W.rough,0.35,1)`", per-species hex colors, chamfer radius formula), but there is no complete copy-paste shader block and the generators live in `demo.html`, which is not in the bundle — concrete with gaps, not fully executable.

4 / 5

Workflow Clarity

The 10-step recipe is clearly sequenced and the "Anchored failures" section provides symptom→cause→fix recovery loops ("A repeated tile is visible at the second board … Sample object-space position, seed per material"), but validation checkpoints sit in a separate catalogue instead of inline verify-after-step-N steps.

4 / 5

Progressive Disclosure

The single file is well-sectioned (Recipe, Species constants, Anchored failures, Budgets), but the body instructs "Run `demo.html` first" and "`PROMPT.md` recreates it" while neither file exists in the bundle (no references/, scripts/, or assets/ directories) — clearly signaled references that don't resolve.

3 / 5

Total

15

/

20

Passed

Description

100%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.

The description is exemplary: it states a concrete capability list, an explicit 'Use for…' trigger clause with natural user phrasing, and a distinct niche (procedural, texture-free Three.js wood). It reads like the reference good examples with no padding or over-claims.

DimensionReasoningScore

Specificity

"Build convincing timber for Three.js as one procedural MeshPhysicalMaterial with growth rings, cathedral figure, pores, medullary rays, checks, tool marks, end grain, and oil, wax, or lacquer finishes" enumerates many concrete capabilities with no coverage gaps, matching the comprehensive-actions anchor rather than the minor-gaps anchor at 4.

5 / 5

Completeness

Both halves are explicit: the what ("one procedural MeshPhysicalMaterial with growth rings … without image textures") and the when ("Use for wood boards … or any request to make 3D wood look real, detailed, or less like a tiled photo or plastic") with concrete trigger phrases.

5 / 5

Trigger Term Quality

"Use for wood boards, benches, carved panels, tool handles, joinery, floors, and any request to make 3D wood look real, detailed, or less like a tiled photo or plastic" covers the natural phrasings a user would say (object types, "look real", "tiled photo", "plastic") plus the framework name; it exceeds the good-coverage anchor at 4.

5 / 5

Distinctiveness Conflict Risk

"Three.js", "procedural MeshPhysicalMaterial", and "without image textures" carve a clear niche distinct from image-texture PBR or geometry skills, and the trigger objects are all wood-specific, so conflict risk is minimal.

5 / 5

Total

20

/

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

MengTo/Skills

Path

agent-skills/3d/3d-wood-material/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.