用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/Tresjs/tres --skill new-experiment命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
正在显示 SKILL.md
基于 SOC 职业分类
| name | new-experiment |
| description | Create a new experiment in TresJS Lab with all necessary files |
Create a new experiment in the TresJS Lab app with all necessary files and structure.
Parse arguments: Extract experiment name from $ARGUMENTS. If second argument is shaders or true, enable shader support.
Convert naming: Convert kebab-case to PascalCase for component naming (e.g., wobble-sphere → WobbleSphere).
Create markdown file: Create apps/lab/content/experiments/{experiment-name}.md with frontmatter:
---
title: {Experiment Title}
author: {your-github-username}
description: {Brief description}
thumbnail: /experiments/{experiment-name}.png
tags: []
date: {current-date}
lastUpdated: {current-date}
---
Create component directory: apps/lab/app/components/{experiment-name}/
Create index.global.vue:
<script setup lang="ts">
// TODO: Implement experiment logic
</script>
<template>
<TresCanvas>
<TresPerspectiveCamera :position="[0, 0, 10]" :look-at="[0, 0, 0]" />
<{ExperimentName}The{PascalCaseName} />
<OrbitControls />
<TheScreenshot />
</TresCanvas>
</template>
Create experiment component: The{PascalCaseName}.vue with basic structure.
If shaders enabled:
shaders/ directory inside component foldershaders/vertex.glsl:
uniform float uTime;
uniform vec2 uResolution;
void main() {
vec4 modelPosition = modelMatrix * vec4(position, 1.0);
vec4 viewPosition = viewMatrix * modelPosition;
vec4 projectedPosition = projectionMatrix * viewPosition;
gl_Position = projectedPosition;
}
shaders/fragment.glsl:
uniform float uTime;
void main() {
gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0);
}
The{PascalCaseName}.vue:
<script setup lang="ts">
import vertexShader from './shaders/vertex.glsl';
import fragmentShader from './shaders/fragment.glsl';
const uniforms = {
uTime: { value: 0 },
uResolution: { value: new Vector2(window.innerWidth, window.innerHeight) },
}
</script>
<template>
<TresMesh>
<TresPlaneGeometry />
<TresShaderMaterial :uniforms="uniforms" :vertex-shader="vertexShader" :fragment-shader="fragmentShader" />
</TresMesh>
</template>
# Basic experiment without shaders
/new-experiment my-cool-effect
# Experiment with shader support
/new-experiment wobble-sphere shaders
WobbleSphereTheWobbleSphere)