Individual skill
3d-paper-material
Build a paper sheet in Three.js that reads as paper up close — washi, cotton rag or kraft with baked fibre and tooth relief, laid and chain lines, a torn deckle edge with frayed fibres, four-layer thickness, a rolled corner and crease, ink that wicks along the fibres, toasted aged edges, contact shadows and back-lit translucency. Use for a hung sheet, scroll, page, label, shoji pane or card that must survive a macro close-up, or when paper looks like a flat white plane, has ruler-straight edges, no thickness, or does not glow when lit from behind. Use 3d-wood-material, 3d-cloth-material or 3d-metal-material for those materials, and paper-cinder-transition for burning paper.
agent-skills/3d/3d-paper-material/SKILL.md
Source commit 5ea1661a0e05d82b054553daaa6baf6d0233c33c
What was checked
- Matches the observed repository HEAD
- Yes
- Scanner rules are current
- Yes
- Repository scan complete
- No
- Skill scan complete
- Yes
- Observed behavior
- Network or broad shell
- Last checked
- Nov 9, 2026
These are observations at the recorded commit, not a guarantee of safety. Review the source before running it.
Install this skill
Choose an agent in your Stack or copy a command below. Commands fetch the pinned commit and copy only this skill directory. Existing destinations are refused. Copying a command does not install anything.
An install command is unavailable: current rules, complete repository and skill scans, an eligible behavior level and a permitted license are required.
Repository context
- Repository stars (not skill ratings)
- 7,353
- Repository last updated
- Nov 8, 2026
- License
- MIT
Observed agent integration: No specific integration evidence. Standard SKILL.md installation does not imply verified compatibility.
- research Derived category
Files and excerpt
File metadata and permitted, redacted excerpts come from the recorded scan. Source links are pinned to that commit.
Browse files
PROMPT.mddoc · 3,301 bytesSKILL.mdcore · 9,448 bytesagents/openai.yamlasset · 318 bytesdemo.htmlasset · 52,376 bytespreview.jpgasset · 127,049 bytes
Read excerpt
# 3D Paper Material
Paper is a fibre field cut out by a torn outline: a height map of laid fibres and formation clouds gives the surface, an alpha mask with pulled-out fibres gives the edge, offset copies give the thickness, and the back light is transmitted by how thin the formation is at each pixel. Drop any one and the sheet is a white plane.
Reach for `paper-cinder-transition` when the paper burns or is revealed by fire; this skill is the unburnt sheet. It is a hung or laid sheet in a scene. A page-turning book needs a bend rig this skill does not provide.
Read `demo.html` for a working build: MeshPhysicalMaterial patched with `onBeforeCompile`, maps baked once into half-float targets, masks painted with Canvas 2D. Its `NOISE` GLSL, formation, kozo-fibre and bark-fleck expressions, back-light transmission, `tearLine` and the fray loop are ported unchanged from the Kibori workshop page (`kibori.html`, `washiMat`, `footTear`).
## The pipeline
1. **Bake fibres (GPU, once).** One full-screen pass writes `R height, G formation, B fibre, A fleck` to a half-float target. Height is `0.5 + fibre*0.34 + (tooth-0.5)*0.1 - fleck*0.2 - crease*0.55`. Keep `samples: 0` on the target and mipmaps on.
2. **Warp the lattice.** Domain-warp the fibre coordinates by 0.014 unit and rotate them by `(gnoise(q*2.1)-0.5)*1.5` rad. Add a finer, fainter fibre set at 2.7x frequency (max 0.55).
3. **Paint the mask (Canvas 2D, on stock change).** `R` thin strip inside the tear, `G` silhouette plus fray fibres, `B` ink with a low-alpha bleed halo, `A` the silhouette blurred by a shadow drawn off to the side (edge age). Read back with `getImageData` and write into a `DataTexture`, rows flipped, alpha as data.
4. **Shape the sheet.** A 168 x 240 plane: hung bow, a mountain crease, pin dimples, and a cylinder roll (radius 0.23, angle `2.6*curl`) that keeps length. Add three copies offset along the normal by `thick/3`, `2thick/3`, `thick`.