skills/blender-interactive/SKILL.md
Blender 양방향 소켓 통신 스킬. TCP 소켓 서버로 실시간 씬 조작, 상태 조회, Poly Haven/Sketchfab 에셋 통합. 기존 blender-pipeline (배치 처리)와 상호보완 — 복잡한 씬 구축, 반복 조작, 실시간 피드백에 사용. 트리거: Blender 실시간 조작, 씬 상태 확인, Poly Haven 에셋, Sketchfab 모델, 양방향 Blender 통신.
npx skillsauth add kjaylee/misskim-skills blender-interactiveInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
TCP 소켓 기반 양방향 통신으로 Blender를 실시간 조작하는 스킬. MiniPC의 headless Blender 5.0.1에서 실행.
┌─────────────┐ nodes.run ┌──────────────────────┐
│ Clawdbot │ ──────────────────>│ MiniPC │
│ (맥스튜디오)│ │ │
│ │ blender_client │ ┌────────────────┐ │
│ │ ──────────────────>│ │ Blender 5.0.1 │ │
│ │ TCP :9876 │ │ (headless) │ │
│ │ <──────────────────│ │ │ │
│ │ JSON response │ │ socket_addon │ │
└─────────────┘ │ └────────────────┘ │
└──────────────────────┘
| 스킬 | 용도 | 패턴 | |------|------|------| | blender-pipeline | 배치 변환, 스프라이트시트, 프로시저럴 | 1회성 스크립트 실행 | | blender-interactive | 실시간 조작, 씬 구축, 상태 조회 | 상주 소켓 서버 |
선택 기준:
# nodes.run으로 서버 시작
nodes.run(node="MiniPC", command=[
"bash", "-c",
"blender -b --factory-startup --python $HOME/blender-interactive/blender_socket_addon.py -- --port 9876 &"
])
# 또는 start_server.sh 사용
nodes.run(node="MiniPC", command=[
"bash", "$HOME/blender-interactive/scripts/start_server.sh", "--background"
])
# ping
nodes.run(node="MiniPC", command=[
"python3", "$HOME/blender-interactive/scripts/blender_client.py",
"ping"
])
# 씬 정보 조회
nodes.run(node="MiniPC", command=[
"python3", "$HOME/blender-interactive/scripts/blender_client.py",
"get_scene_info", "--pretty"
])
# 오브젝트 생성
nodes.run(node="MiniPC", command=[
"python3", "$HOME/blender-interactive/scripts/blender_client.py",
"create_object", "--params", "{\"type\":\"SPHERE\",\"name\":\"Earth\",\"location\":[0,0,0]}"
])
# 머티리얼 설정
nodes.run(node="MiniPC", command=[
"python3", "$HOME/blender-interactive/scripts/blender_client.py",
"set_material", "--params", "{\"object_name\":\"Earth\",\"color\":[0.2,0.4,0.8],\"metallic\":0.0,\"roughness\":0.7}"
])
# 렌더링 프리뷰
nodes.run(node="MiniPC", command=[
"python3", "$HOME/blender-interactive/scripts/blender_client.py",
"render_preview", "--params", "{\"output_path\":\"/tmp/preview.png\",\"resolution_x\":512,\"resolution_y\":512,\"samples\":32}"
])
nodes.run(node="MiniPC", command=[
"bash", "$HOME/blender-interactive/scripts/start_server.sh", "--stop"
])
| 명령 | 파라미터 | 설명 |
|------|----------|------|
| ping | — | 서버 상태 확인 + 명령 목록 |
| 명령 | 파라미터 | 설명 |
|------|----------|------|
| get_scene_info | — | 전체 씬 상태 (오브젝트, 카메라, 라이트, 해상도 등) |
| get_object_info | name | 특정 오브젝트 상세 (메시, 머티리얼, 바운딩박스) |
| 명령 | 파라미터 | 설명 |
|------|----------|------|
| create_object | type, name?, location?, scale? | 기본 메시 생성 (CUBE/SPHERE/PLANE/CYLINDER/CONE/TORUS/MONKEY) |
| delete_object | name | 오브젝트 삭제 |
| modify_object | name, location?, rotation?, scale?, visible? | 변환 수정 |
| 명령 | 파라미터 | 설명 |
|------|----------|------|
| set_material | object_name, color?, metallic?, roughness?, material_name? | PBR 머티리얼 설정 |
| 명령 | 파라미터 | 설명 |
|------|----------|------|
| render_preview | output_path?, resolution_x?, resolution_y?, samples?, engine? | 빠른 프리뷰 (512x512, 32 samples) |
| render_to_file | output_path, format?, resolution_x?, resolution_y?, samples?, engine? | 고품질 렌더 |
| 명령 | 파라미터 | 설명 |
|------|----------|------|
| save_blend | filepath | .blend 저장 |
| load_blend | filepath | .blend 로드 |
| import_model | filepath, format? | 모델 임포트 (glTF/FBX/OBJ/STL/PLY) |
| export_model | filepath, format?, selected_only? | 모델 내보내기 |
| clear_scene | keep_camera?, keep_lights? | 씬 초기화 |
| 명령 | 파라미터 | 설명 |
|------|----------|------|
| execute_code | code | 임의 Python 코드 실행 (최대 유연성) |
CC0 무료 에셋 (HDRI, 텍스처, 3D 모델) 검색/다운로드.
# 텍스처 카테고리 조회
nodes.run(node="MiniPC", command=[
"python3", "$HOME/blender-interactive/scripts/polyhaven.py",
"categories", "textures"
])
# 벽돌 텍스처 검색
nodes.run(node="MiniPC", command=[
"python3", "$HOME/blender-interactive/scripts/polyhaven.py",
"search", "--type", "textures", "--categories", "brick"
])
# 텍스처 다운로드 (1k 해상도)
nodes.run(node="MiniPC", command=[
"python3", "$HOME/blender-interactive/scripts/polyhaven.py",
"download", "rock_wall_08", "--type", "textures", "--resolution", "1k",
"--output", "/tmp/polyhaven/textures/"
])
# HDRI 다운로드
nodes.run(node="MiniPC", command=[
"python3", "$HOME/blender-interactive/scripts/polyhaven.py",
"download", "meadow", "--type", "hdris", "--resolution", "2k",
"--format", "hdr", "--output", "/tmp/polyhaven/hdri/"
])
# 3D 모델 다운로드
nodes.run(node="MiniPC", command=[
"python3", "$HOME/blender-interactive/scripts/polyhaven.py",
"download", "food_apple_01", "--type", "models", "--resolution", "1k",
"--format", "gltf", "--output", "/tmp/polyhaven/models/"
])
# 1. 텍스처 다운로드
polyhaven.py download rock_wall_08 --type textures --resolution 1k --output /tmp/ph/
# 2. Blender에서 평면 생성 + 텍스처 적용 (execute_code 사용)
blender_client.py execute_code --params '{
"code": "import bpy\nimport os\n\n# 평면 생성\nbpy.ops.mesh.primitive_plane_add(size=10)\nplane = bpy.context.active_object\nplane.name = \"Ground\"\n\n# 머티리얼 + 텍스처\nmat = bpy.data.materials.new(\"RockWall\")\nmat.use_nodes = True\nnodes = mat.node_tree.nodes\nlinks = mat.node_tree.links\n\nbsdf = nodes[\"Principled BSDF\"]\ntex = nodes.new(\"ShaderNodeTexImage\")\ntex.image = bpy.data.images.load(\"/tmp/ph/rock_wall_08_Diffuse_1k.jpg\")\nlinks.new(tex.outputs[\"Color\"], bsdf.inputs[\"Base Color\"])\n\nplane.data.materials.append(mat)"
}'
{
"type": "command_name",
"params": {
"key": "value"
}
}
{
"status": "success",
"result": { ... }
}
{
"status": "error",
"message": "Error description"
}
# 1. 스킬 폴더를 MiniPC에 복사
# nodes.run으로 base64 전송 또는 scp
scp -r skills/blender-interactive/ <user>@<MINIPC_IP>:$HOME/blender-interactive/
# $HOME/.config/systemd/user/blender-socket.service
[Unit]
Description=Blender Interactive Socket Server
After=network.target
[Service]
Type=simple
ExecStart=/snap/bin/blender -b --factory-startup --python $HOME/blender-interactive/blender_socket_addon.py -- --port 9876
ExecStop=/bin/kill -TERM $MAINPID
Restart=on-failure
RestartSec=10
[Install]
WantedBy=default.target
systemctl --user daemon-reload
systemctl --user enable blender-socket
systemctl --user start blender-socket
render_preview로 Cycles CPU 렌더링 (느리지만 정확)execute_code는 임의 코드 실행 가능 — 우리 환경(제어된 MiniPC)에서는 OK--host 127.0.0.1로 로컬만 바인딩blender-interactive/
├── SKILL.md # 이 문서
├── blender_socket_addon.py # Blender 소켓 서버 (핵심)
└── scripts/
├── blender_client.py # 명령 전송 클라이언트
├── polyhaven.py # Poly Haven API 클라이언트
└── start_server.sh # 서버 시작/중지 스크립트
testing
게임 아이디어를 검토해 와우 팩터 5개를 추가하고, 스펙→TC→구현→QA→런칭까지 한 번에 밀어붙이는 일일 게임 런칭 써클. 기존 자동 게임 파이프라인을 대체/승격할 때 사용.
data-ai
Advanced YouTube analysis, transcripts, and metadata extraction.
development
Modern web design engineering skills including design tokens, advanced UI/UX methodologies, accessibility, and game-specific UI patterns. Use for building commercial-grade, performant, and accessible web interfaces.
development
Review UI code for Web Interface Guidelines compliance. Use when asked to "review my UI", "check accessibility", "audit design", "review UX", or "check my site against best practices".