ether-threejs
Skill0 starsChanged 28 days agoMITView on GitHub
Premium three.js technique reference for studio-grade WebGL. Use this skill BEFORE writing any three.js code on a premium-tier deliverable. Contains reference work, technique recipes, GLSL snippets, and a slop checklist. Triggers on writing three.js code, building WebGL scenes, designing 3D web experiences, scene architecture, geometry strategy, instancing, camera and render-loop setup, performance budgets, scroll-driven 3D, multi-beat camera moves across a scroll story, a canvas or scene persisting across pages and route changes, scene lifecycle between pages, premium agency-grade WebGL. Do NOT use for non-3D TypeScript, plain DOM/CSS animation, or review-only passes — use the threejs-audit command to critique existing 3D code. For GLSL, fragment/vertex shaders, ShaderMaterial, the iridescent material, vertex displacement, MSDF/extruded 3D text, or the bloom+dither postprocessing composer, use ether-shaders instead. For the Lenis/ScrollTrigger bridge or a single scroll-progress value, use ether-scroll.
- Installs packages
In this repository3 other files it gives its agents.
- ether-scrollSkill
- ether-shadersSkill
- studio-onboardSkill
The file
We split this skill into the rules it gives an agent
5 rules. About 0 are common, 2 are distinctive, and 3 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈2
Distinctive · estimate
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 16
Read slop-checklist.md first and classify the scene's tier (1 utility, 2 branded, 3 hero) from its tier table.
- Very specific: line 18
Read references.md to find a studio working in the relevant aesthetic.
- Very specific: line 19
Read the relevant techniques/ file for a code recipe and required tuning parameters.
- Distinctive: line 21
After writing code, re-run the slop checklist for the tier.
- Distinctive: line 33
Add new techniques here as you encounter them in the wild.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
ether-threejs
Persistent technique reference and slop-prevention library for premium three.js work. Built for a studio site redesign and reusable across premium projects.
When to use
Invoke this skill before any three.js work on premium-tier deliverables. The skill exists because Claude's default three.js output is generic — torus knots, default materials, no postprocessing — and that output is unacceptable for a studio that sells against AI-generated work.
How to use
- Read
slop-checklist.mdfirst and classify the scene's tier (1 utility, 2 branded, 3 hero) from its tier table. If your planned approach trips a check for that tier, change the plan before coding. On an existing scene, make the smallest change that clears the check. - Build scenes on ether's Scene contract, usually by extending
BaseScenefromether/core:enterTransition,exitTransition,tick(time, deltaTime)(seconds) anddispose, with every geometry, material, texture and render target registered throughthis.track(). SceneManager owns the renderer and the one render loop, so a scene never creates aWebGLRendereror its ownrequestAnimationFrame. Hop order, the per-scene contract and lifecycle pitfalls (interrupted intros, teardown before the firstawait) are intechniques/persistent-canvas-routing.md. - Read
references.mdto find a studio working in the relevant aesthetic. Open its live site for ground truth. - Read the relevant
techniques/file for a code recipe and required tuning parameters. - Pull GLSL snippets from
shaders/and import them by the project's configured convention (see the ether-shaders hard rule); don't mix strategies without a reason. The samples use?raw, which returns the file verbatim. If the project registersvite-plugin-glsl, a?rawimport bypasses the plugin and gets no#includeexpansion. - After writing code, re-run the slop checklist for the tier. Capture a screenshot. Have the user review before committing the rendered scene.
Index
references.md— annotated list of premium agencies and what each does wellslop-checklist.md— tier table and concrete anti-patterns. Classify, then run before commit.performance.md— budgets, profiling techniques, mobile checklisttechniques/— one file per reusable technique with code recipesshaders/—.glslsnippets (e.g. imported via?raw).fresnel.glsl,curl-noise.glslandcolor-grade.glslare standalone reference snippets the engine does not ship (the engine grades throughloadLUTandLUT3DEffect). The 8×8 Bayer dither chunk is not copied here; import the engine's:import { dither } from 'ether/shaders'(string) orimport dither from 'ether/shaders/dither.glsl?raw'(file). Those are the specifiers for a git orfile:install; an npm install (not yet published) uses@jonathanbeck1/ether/shadersand@jonathanbeck1/ether/shaders/dither.glsl?raw.
Maintenance
Add new techniques here as you encounter them in the wild. Re-verify the reference annotations periodically; agency sites change. When you find yourself doing the same shader trick twice, pull it into shaders/ and add a techniques/ file describing when to use it.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

