소스 정보
- 저장소
- 18816132863/xiaoyi-claw-omega-final
- 최근 소스 활동
- 2026년 4월 25일 15:25
- 감지된 SKILL.md 언어
- 중국어
- 스타
- 2
- 포크
- 0
설치 방법
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
소스 파일 검토
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
메뉴
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
직접 명령은 검토 Prompt를 거치지 않습니다. 실행하기 전에 소스를 확인하세요.
npx skills add https://github.com/18816132863/xiaoyi-claw-omega-final --skill gesture-html명령은 한 줄로 유지됩니다. 복사하기 전에 가로로 스크롤해 전체 내용을 확인하세요.
로컬 사본을 원하시나요? SkillsMP에서 현재 제공할 수 있는 파일을 다운로드하세요.
Market prediction skill using Kronos. Use when user needs finance market time-series forecasting or news-aware finance market adjustments.
同花顺i问财综合金融数据查询技能。整合行情查询、财务查询、基金查询、宏观查询、指数查询、A股选股、期货选股、公告搜索、新闻搜索、研报搜索等十大核心能力。支持股票、ETF、基金、期货、宏观经济等多维度金融数据查询,以及公告、新闻、研报等资讯搜索。当用户需要查询股票行情、财务数据、基金信息、宏观数据、选股筛选、公告新闻研报时,使用此技能。
Natural language task and project management. Use when the user talks about things they need to do, projects they're working on, tasks, deadlines, or asks for a project overview / dashboard. Captures tasks from conversation, organises them into projects, tracks progress, and serves a local Kanban dashboard.
SOC 직업 분류 기준
SKILL.md 표시 중
| name | gesture-html |
| description | 创建一个通过摄像头进行手势交互的网页,利用MediaPipe实时识别手势,实现对网页元素的直观操控。当需要「通过摄像头识别手势」与网页交互时使用这个Skill。 |
若要通过摄像头进行手势识别,除非用户原始请求指定特定库,必须使用MediaPipe,可参考以下JS代码(需在中国可访问,因此所有jsdelivr的CDN地址必须为示例中的jsdmirror) 若用户要生成地球仪,优先使用以下超链接图片作为地球仪的纹理: https://cdn.jsdmirror.com/npm/three-globe@2.45.0/example/img/earth-blue-marble.jpg
import {{ HandLandmarker, FilesetResolver }} from 'https://cdn.jsdmirror.com/npm/@mediapipe/tasks-vision@0.10.3';
// 1. 先加载 Wasm 运行时 (必须步骤)
const vision = await FilesetResolver.forVisionTasks(
"https://cdn.jsdmirror.com/npm/@mediapipe/tasks-vision@0.10.3/wasm"
);
// 2. 异步创建检测器
const handLandmarker = await HandLandmarker.createFromOptions(vision, {{
baseOptions: {{
modelAssetPath: "https://storage.googleapis.com/mediapipe-models/hand_landmarker/hand_landmarker/float16/1/hand_landmarker.task",
delegate: "GPU"
}},
runningMode: "VIDEO",
numHands: 2
}});
// 3. 执行检测
const results = handLandmarker.detectForVideo(video, performance.now());
【MediaPipe注意事项】 MediaPipe的HandLandmarker的检测结果,处理时需要注意,手部关键点坐标以已经根据图像的宽度和高度归一化到[0.0, 1.0]范围内。
【摄像头画面的处理规范】 Web API (navigator.mediaDevices.getUserMedia) 获取的摄像头原始画面默认是“客观视角”,而非“镜子视角”。为符合用户直觉,必须实现“镜像”效果:
<video> 元素必须设置 transform: scaleX(-1);
<canvas> 元素保持默认(严禁翻转,防止文字反向)。x通常为 0~1) 必须首先在X轴上进行反转计算,以匹配CSS翻转后的画面,如:screenX = 1 - normalizedX;
y坐标保持不变;【缩放旋转注意事项】 在摄像头交互中,若用户没有指定缩放旋转方式,默认使用单手的拇指与食指的欧几里得距离变化进行捏合缩放,用单手食指的位置变化进行旋转。 缩放旋转等均使用Lerp平滑。 参考代码:
// --- 手势识别逻辑 --- let previousPinchDistance = null; let targetScale = 1.0; let previousHandPosition = null; let targetRotation = { x: 0, y: 0 };
function processGestures(results) {{ if (results.landmarks && results.landmarks.length > 0) {{ const landmarks = results.landmarks[0]; // 取第一个手 const mirroredLandmarks = landmarks.map(point => ({{ ...point, x: 1.0 - point.x }})); const thumb = mirroredLandmarks[4]; // 拇指指尖 const index = mirroredLandmarks[8]; // 食指指尖
// 1. 计算两点之间的欧几里得距离(用于缩放)
const distance = Math.hypot(thumb.x - index.x, thumb.y - index.y);
const currentX = index.x;
const currentY = index.y;
// 初始化基准值(第一帧或重置时)
if (!previousPinchDistance) {{
previousPinchDistance = distance;
previousHandPosition = { x: currentX, y: currentY };
return;
}}
// 2. 计算缩放比例 (当前距离 / 基准距离)
// 阈值保护:距离变化太小忽略,防止抖动
if (Math.abs(distance - previousPinchDistance) > 0.01) {{
const zoomFactor = distance / previousPinchDistance;
// 限制缩放范围 (例如 0.5x 到 3x)
targetScale = Math.min(Math.max(targetScale * zoomFactor, 0.5), 3);
// 重置基准距离,实现连续缩放
previousPinchDistance = distance;
}}
// 3. 计算旋转弧度
const deltaX = currentX - previousHandPosition.x;
const deltaY = currentY - previousHandPosition.y;
// 更新目标旋转弧度 (注意坐标系映射)
// 手向左/右动 -> 地球绕Y轴转
// 手向上/下动 -> 地球绕X轴转
// 乘以系数 2*Math.PI 增加灵敏度,代表划过整屏幕时转一圈
targetRotation.y += deltaX * 2 * Math.PI;
targetRotation.x += deltaY * 2 * Math.PI;
previousHandPosition = { x: currentX, y: currentY };
}} else {{
// 如果没有检测到手,重置追踪状态,防止瞬移
let previousPinchDistance = null;
let previousHandPosition = null;
}}
// 4. 应用到物体 (示例:更新Three.js对象),旋转缩放等均使用Lerp平滑
updateElementTransform(targetScale, targetRotation);
}}
【手指伸出的判断标准】 MediaPipe 提供 21 个手部骨骼关键点(Landmarks)。请按以下逻辑判断每一根手指是否伸出:
Tip.y < PIP.y (注意:Canvas坐标系中Y轴向下为正,所以数值越小位置越高),则判定为伸出。指尖距离 > IP关节距离,则判定为伸出。