{"id":"88229cac-6e9c-40ed-b47d-964b3021f2c5","slug":"joshsanger-threejs-expert","name":"threejs-expert","description":"Expert guide for generating modern Three.js code (v0.160+), focusing on WebGPU, TSL (Three.js Shading Language), and Import Maps.","canonicalUrl":"https://www.xpersona.co/skill/joshsanger-threejs-expert","sourceUrl":"https://github.com/joshsanger/threejs-expert","homepage":null,"source":"GITHUB_OPENCLEW","vendor":{"slug":"joshsanger","label":"Joshsanger","url":"https://github.com/joshsanger/threejs-expert"},"protocols":["OPENCLEW"],"capabilities":[],"trustScore":null,"trustConfidence":"unknown","artifactCount":0,"benchmarkCount":0,"lastRelease":null,"freshnessAt":"2026-04-15T01:14:34.017Z","freshnessLabel":"Apr 15, 2026","securityReviewed":true,"openapiReady":false,"stats":[{"label":"Trust score","value":"Unknown"},{"label":"Compatibility","value":"OpenClaw"},{"label":"Freshness","value":"Apr 15, 2026"},{"label":"Vendor","value":"Joshsanger"},{"label":"Artifacts","value":"0"},{"label":"Benchmarks","value":"0"},{"label":"Last release","value":"Unpublished"}],"factsPreview":[{"factKey":"docs_crawl","label":"Crawlable docs","value":"6 indexed pages on the official domain","category":"integration","href":"https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar","sourceUrl":"https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar","sourceType":"search_document","confidence":"medium","observedAt":"2026-04-15T05:03:46.393Z","isPublic":true,"metadata":{}},{"factKey":"vendor","label":"Vendor","value":"Joshsanger","category":"vendor","href":"https://github.com/joshsanger/threejs-expert","sourceUrl":"https://github.com/joshsanger/threejs-expert","sourceType":"profile","confidence":"medium","observedAt":"2026-04-15T01:14:34.408Z","isPublic":true,"metadata":{}},{"factKey":"protocols","label":"Protocol compatibility","value":"OpenClaw","category":"compatibility","href":"https://www.xpersona.co/api/v1/agents/joshsanger-threejs-expert/contract","sourceUrl":"https://www.xpersona.co/api/v1/agents/joshsanger-threejs-expert/contract","sourceType":"contract","confidence":"medium","observedAt":"2026-04-15T01:14:34.408Z","isPublic":true,"metadata":{}},{"factKey":"traction","label":"Adoption signal","value":"2 GitHub stars","category":"adoption","href":"https://github.com/joshsanger/threejs-expert","sourceUrl":"https://github.com/joshsanger/threejs-expert","sourceType":"profile","confidence":"medium","observedAt":"2026-04-15T01:14:34.408Z","isPublic":true,"metadata":{}},{"factKey":"handshake_status","label":"Handshake status","value":"UNKNOWN","category":"security","href":"https://www.xpersona.co/api/v1/agents/joshsanger-threejs-expert/trust","sourceUrl":"https://www.xpersona.co/api/v1/agents/joshsanger-threejs-expert/trust","sourceType":"trust","confidence":"medium","observedAt":null,"isPublic":true,"metadata":{}}],"highlights":["2 GitHub stars","Trust evidence available"],"agentCard":{"name":"threejs-expert","description":"Expert guide for generating modern Three.js code (v0.160+), focusing on WebGPU, TSL (Three.js Shading Language), and Import Maps.","source":"GITHUB_OPENCLEW","sourceId":"github:1160978258","repository":"https://github.com/joshsanger/threejs-expert","documentation":"https://www.xpersona.co/skill/joshsanger-threejs-expert/agent/joshsanger-threejs-expert","protocols":["OPENCLEW"],"languages":["typescript"],"install":{"command":"git clone https://github.com/joshsanger/threejs-expert.git","ecosystem":"git"},"examples":[{"kind":"example","language":"html","snippet":"<script type=\"importmap\">\n{\n  \"imports\": {\n    \"three\": \"<THREE_JS_BUILD_URL>\",\n    \"three/tsl\": \"<THREE_JS_TSL_URL>\",\n    \"three/addons/\": \"<THREE_JS_ADDONS_URL>\"\n  }\n}\n</script>\n<script type=\"module\">\n  import * as THREE from 'three';\n  import { OrbitControls } from 'three/addons/controls/OrbitControls.js';\n  // ...\n</script>"},{"kind":"example","language":"js","snippet":"import { texture, uv, color, mix, positionLocal, time, sin } from 'three/tsl';\n\nconst material = new THREE.MeshStandardNodeMaterial();\n// Mix texture with a color\nmaterial.colorNode = texture(myTexture).mul(color(0xff0000));\n\n// Animate position\nmaterial.positionNode = positionLocal.add(sin(time).mul(0.1));"}]}}