Blender MCP
resmiBlender için hafif bir MCP (Model Context Protocol) sunucusu. Blender'ın Python API'si ile doğal dil arayüzü sunarak dokümantasyona erişimi iyileştirir ve kullanıcıların karmaşık kurulumları keşfetmesine ve anlamasına olanak tanır.
Blender MCP ile neler yapabilirsiniz?
- Sahne performansını analiz et — Asistanın, kamera görünümünden ekran boyutlarına göre en yüksek poligon sayısına sahip nesneleri bulmasını isteyin.
- Veri bloklarını yeniden adlandır — Nesneler, ışıklar, kameralar, dokular ve diğer veri blokları arasında yazım hatalarını düzeltin veya açıklayıcı adlandırma kuralları uygulayın.
- Veri ilişkilerini sorgula — Hangi nesnelerin belirli bir malzemeyi kullandığını veya veri bloklarının nasıl bağlandığını sormak için doğal dil kullanın.
- Sahne sorunlarını hata ayıkla — Açık dosyadaki en yüksek poligon sayısına sahip nesneleri, manifold olmayan ağları veya diğer yaygın sorunları belirleyin.
- Geometry Nodes kurulumlarını belgele — Bir düğüm grubunun ne yaptığını ve nasıl yapılandırıldığını açıklayan satır içi dokümantasyon çerçeveleri ve bir metin veri bloğu oluşturun.
Dokümantasyon
Blender için hafif bir MCP (Model Context Protocol) sunucusu. Blender'ın Python API'sine doğal dil arayüzü sunar, dokümantasyona erişimi iyileştirir ve kullanıcıların karmaşık kurulumları keşfetmesine ve anlamasına olanak tanır.
Mimari hakkında teknik detaylar ve dokümantasyon için kaynak kodunu inceleyin.
Güvenlik Uyarısı
MCP sunucusu, LLM tarafından üretilen kodu Blender'da, verilerinizin silinmesini veya uzak bir konuma gönderilmesini engelleyecek herhangi bir koruma olmaksızın çalıştıracaktır. Verilerinizi güvende tutmak için sanal makine veya hassas bilgilere erişimi olmayan bir sistem kullanmanız önerilir.
Kurulum
Blender, LLM'lere bağlanmak için herhangi bir yerleşik işlevselliğe sahip değildir.
Blender'ın LLM'lerle bağlantı kurabilmesi için üç harici araç manuel olarak indirilmeli, kurulmalı ve çalıştırılmalıdır.
Gereksinimler:
- Blender 5.1 veya daha yenisi
- Eklenti
- LLM İstemcisi
- MCP Sunucusu
Eklenti
Blender oturumunuzla etkileşim kurabilmek için MCP Sunucusu entegrasyonuna özel bir eklenti yüklemeniz gerekir.
Blender'a Sürükle ve Bırak
…veya Diskten İndir ve Kur
Blender'a sürükleyip bırakırsanız bunu iki kez yapmanız gerekecektir. İlki Blender Lab deposunu eklemek için, ikincisi eklentinin kendisini yüklemek için. Bu yöntem, bu eklentinin yeni bir sürümü mevcut olduğunda güncelleme bildirimleri almanızı sağlar.
LLM İstemcisi
MCP Sunucuları iyi tanımlanmış bir standardı takip eder ve çok sayıda istemciyle uyumludur. Lütfen LLama.cpp dokümantasyonunu takip edin veya tercih ettiğiniz bir LLM istemcisini kurun.
MCP Sunucusu
LLM istemcinizin yeteneklerine bağlı olarak MCP Sunucusunu kurmanın farklı yolları vardır.
- MCP Paketi:
.mcpbdosyalarını destekleyen daha yeni istemciler için, sürüm sayfasından en son paketi indirin. Llama.cpp henüz bunu desteklemiyor. - MCP Sunucusu: Kaynak kodundan kurulum için Llama.cpp dokümantasyonuna veya kurulum talimatlarına bakın.
Çalıştırma
MCP Sunucunuzu LLM İstemciniz içinde kurduktan sonra, Blender sahnelerinizi keşfetmeye başlayabilirsiniz.
blender-mcp sunucusunu çalıştıran llama.cpp web arayüzü.
Örnek 1: Sahne Analizi
MCP, sahneyi performans darboğazları için programatik olarak analiz etmek amacıyla kullanılabilir. Örneğin Classroom demo dosyasını ele alalım:
Classroom demo dosyası.
Bu sahne, Blender kıyaslama dosyalarından biridir. Bu dosyaların kıyaslamada yer almasının nedeni, sanatçılar tarafından oluşturulan gerçek prodüksiyon dosyalarının iyi bir temsili olmalarıdır. Ve optimize edilmeye yatkın nesneler içermesi şaşırtıcı değildir.
Poligon sayısını kontrol etmek genellikle yeterli olsa da, poligon sayısını nihai renderda ne kadar büyük göründüklerine göre çizmek daha da ilginçtir. Bu, aşağıdaki istemle elde edilebilir.
Analyze the scene and list the outliers: objects with highest polygon count but smaller size from the camera point of view.
Çizilen sonuç verileri, diğerlerinden açıkça öne çıkan iki nesneyi gösterir: alphabet ve coat 1:
Classroom demo sahnesi için ekran alanı başına poligon sayısının grafik analizi.
alphabet nesnesi 20 bin poligona sahiptir. Düz yerleşimi nedeniyle, nihai sonuca çok az olumsuz etkiyle bir doku ile değiştirilebilir. coat 1 nesnesi, Subsurf değiştiricisi nedeniyle 37 bin poligona sahiptir. Sisteminizde darboğaz bellek ise, alt bölüm seviyesini düşürmek sahneyi rahatlatabilir.
Alfabe sahnenin arkasında yer alır ve kolayca bir doku ile değiştirilebilir. Ceket de, ağ yapısı basitleştirilebilecek kadar uzaktadır.
Bu sonuçlar ne kadar güvenilir?
LLM tarafından döndürülen ilk analiz, yalnızca görünüm alanını etkileyen değiştiricileri dikkate aldı. coat 1 nesnesi, poligon sayısını ikiye katlayan bir Solidify değiştiricisine sahiptir, bu da onu daha da aykırı bir değer haline getirir. Ve bu sahnede Simplify etkin olmasa da, bu ayar nihai analizi de etkilerdi.
Örnek 2: Çeşitli İstemler
Bunlar test edilen diğer kullanım durumlarından bazılarıdır. Çalışmaları için "İstem" içeriğinin tamamını yapıştırmanız gerekecektir. Başlangıç noktası olarak ilgili demo dosyasını kullanmalısınız. İşlemin başarısı kullanılan modele bağlı olacaktır.
| Kullanım Durumu | İstem | Demo Dosyası | Sonuç |
|---|---|---|---|
| Veri bloğu yeniden adlandırma: yazım hatalarını düzelt | Şu anki açık Blender dosyasındaki tüm veri bloklarının adlarını yazım hatalarını giderecek şekilde düzelt. Hangi veri bloklarının düzeltildiğini raporla. | Scattering Pebbles | GRP-rocks → GRP-pebble, LGT-Lights → LGT-lights, Compositing Nodetree → Compositing Node Tree |
| Veri bloğu yeniden adlandırma: daha iyi adlar | Şu anki açık Blender dosyasındaki tüm veri blokları için açıklayıcı adlar öner ve onaylanırsa uygula. | Scattering Pebbles | Camera → CAM-main, Area → LGT-sun-key, Area.001 → LGT-sun-fill, Area.002 → LGT-area-rim, GEO-pebble.001 → GEO-pebble-B, … |
| Doğal dil kullanarak veri ilişkilerini sorgulama | Hangi nesneler şu malzemeyi kullanıyor: pebbles | Scattering Pebbles | 7 nesne: GEO-pebble, GEO-pebble.001, GEO-pebble.002, GEO-pebble.003, GEO-pebble.004, GEO-pebble.005, GEO-pebble.006 |
| Sahne hata ayıklama | Bu dosyadaki en yüksek poligon sayısına sahip nesne hangisidir? Herhangi bir sahneye bağlı olmayan nesneleri yoksay. | Scattering Pebbles | 4.096 yüze sahip GEO-ground. |
| Geometri Düğümleri Dokümantasyonu | Şu anki açık Blender dosyasındaki ana geometri düğümleri kurulumunun ne yaptığını açıkla. Çerçeve öğeleriyle satır içi dokümantasyon ekle. Analiz sonucunu içeren bir Metin veri bloğu oluştur. | Scattering Pebbles | 4 ana renk kodlu çerçeve + açıklama içeren metin dosyası. |
Henüz keşfedilmemiş diğer istemler:
- Tüm veri bloklarını Fransızca'dan İngilizce'ye çevir.
- Ağ yapım, armatürüm tarafından deforme edilmiyor, bunu nasıl düzeltebilirim?
- Blender bu sahneyi renderlarken bellek yetersiz kalıyor, nasıl optimize edebilirim?
- Bu ağ yapısında garip gölgelendirme bozuklukları var, bunu nasıl düzeltebilirsin?
- Kötü normallere sahip ağ yapıları olan nesneleri bul.
- Sah nemi düzgün olmayan şekilde dönüştürülmüş ağ nesneleri için kontrol et.
- Dışa aktardığım video web tarayıcılarımda oynatılmıyor, hangi ayarları değiştirmeliyim?
- Ağaç dalları oluşturmak ve detaylandırmak için hangi heykel fırçalarını kullanmalıyım?
- Görüntümü hem SDR hem de HDR olarak kaydetmek için compositing düğümlerini kur.
- Bu kontrol listesini doğrula:: ağ yapıları manifold olmalı, tüm nesnelerin malzemeleri olmalı, adlandırma kurala uymalı, mutlak yol olmamalı, … Veri bloğu yeniden adlandırma: yazım hatalarını düzelt
GRP-rocks → GRP-pebbles (sahne kaya değil, yalnızca çakıl nesneleri içerir).
LGT-Lights → LGT-lights (tutarsız büyük/küçük harf kullanımı).
Compositing Nodetree → Compositing Node Tree (Nodetree birleşik kelime hatasıdır).
Veri bloğu yeniden adlandırma: daha iyi adlar
Nesneler:
Camera→CAM-mainArea→LGT-sun-keyArea.001→LGT-sun-fillArea.002→LGT-area-rimGEO-pebble.001→GEO-pebble-BGEO-pebble.002→GEO-pebble-CGEO-pebble.003→GEO-pebble-DGEO-pebble.004→GEO-pebble-EGEO-pebble.005→GEO-pebble-FGEO-pebble.006→GEO-pebble-G
Işık Veri Blokları:
Area→LGT-sun-keyArea.001→LGT-sun-fillArea.002→LGT-area-rim
Kamera Veri Bloğu:
Camera→CAM-main
Dokular:
Texture→TEX-ground-cloudsTexture.001→TEX-ground-image
Sahne & Dünya:
World→WLD-environmentScene→SCN-mainGeometri Düğümleri Dokümantasyonu
Oluşturulan Yeni Çerçeveler:
Geometri düğümleri kurulumuna eklenen dokümantasyon çerçeveleri.
Metin Veri Bloğu:
GEOMETRY NODES ANALYSIS -- "Pebble Scattering Nodes"
Applied to object: GEO-ground | Modifier: Pebbles
========================================================
OVERVIEW
--------
This node group scatters three size categories of pebble meshes across
the faces of a ground mesh. Each category uses its own density mask
and a global Factor multiplier so that coverage can be art-directed
per-layer without touching the raw mask textures. The three resulting
instance layers are merged with the original ground geometry and sent
to the Group Output.
INPUTS (Group Interface)
------------------------
Geometry -- The ground mesh to scatter pebbles on.
Large Pebbles Mask -- Float mask (e.g. vertex colour / texture) that
defines WHERE large pebbles may appear.
Medium Pebbles Mask-- Float mask for medium pebble placement regions.
Small Pebbles Mask -- Float mask for small pebble placement regions.
Factor -- Global density multiplier shared by all three
lanes (appears three times in the interface,
one per lane).
NODE GRAPH -- LANE BY LANE
--------------------------
+- LARGE PEBBLES LANE -----------------------------------------------------+
| Source object : GEO-pebble |
| Group Input.001 |
| +- Geometry ------------------------> Distribute Points on Faces |
| +- Large Pebbles Mask ------------> Distribute Points on Faces |
| | (Density Factor socket) |
| +- Factor --> Math.003 (x) -------> Distribute Points on Faces |
| (Density Max socket) |
| Distribute Points on Faces ----------> Instance on Points |
| Object Info (GEO-pebble) -----------> Instance on Points (Instance) |
| Random Rotation.001 [-pi, +pi] -----> Instance on Points (Rotation) |
| Random Value [0.25 - 0.60] -------> Instance on Points (Scale) |
| Instance on Points ------------------> Join Geometry.003 |
+--------------------------------------------------------------------------+
+- MEDIUM PEBBLES LANE ----------------------------------------------------+
| Source object : GEO-pebble.004 |
| Group Input.002 |
| +- Geometry ------------------------> Distribute Points on Faces.001 |
| +- Medium Pebbles Mask -----------> Math.004 (x) --> Math.005 (x) |
| +- Factor ------------------------> Math.005 (x) |
| Math.005 output --------------> Distribute Points on Faces.001 |
| (Density socket) |
| Distribute Points on Faces.001 -----> Instance on Points.001 |
| Object Info.001 (GEO-pebble.004) --> Instance on Points.001 |
| Random Rotation.002 [-pi, +pi] ----> Instance on Points.001 |
| Random Value.002 [0.25 - 0.45] -----> Instance on Points.001 |
| Instance on Points.001 -------------> Join Geometry.003 |
+--------------------------------------------------------------------------+
+- SMALL PEBBLES LANE -----------------------------------------------------+
| Source object : GEO-pebble.002 |
| Group Input.003 |
| +- Geometry ------------------------> Distribute Points on Faces.002 |
| +- Small Pebbles Mask -----------> Math.006 (x) --> Math.007 (x) |
| +- Factor ------------------------> Math.006 (x) |
| Math.007 output --------------> Distribute Points on Faces.002 |
| (Density socket) |
| Distribute Points on Faces.002 -----> Instance on Points.002 |
| Object Info.002 (GEO-pebble.002) --> Instance on Points.002 |
| Random Rotation [-pi, +pi] ----> Instance on Points.002 |
| Random Value.003 [0.10 - 0.35] -----> Instance on Points.002 |
| Instance on Points.002 -------------> Join Geometry.003 |
+--------------------------------------------------------------------------+
+- MERGE & OUTPUT ---------------------------------------------------------+
| Group Input.004 |
| +- Geometry (pass-through) --------> Join Geometry.003 |
| Join Geometry.003 |
| (inputs: large instances + medium instances + |
| small instances + original ground geo) |
| +- Geometry -----------------------> Group Output |
+--------------------------------------------------------------------------+
SCALE RANGES (uniform, per lane)
---------------------------------
Large pebbles : 0.25 - 0.60
Medium pebbles : 0.25 - 0.45
Small pebbles : 0.10 - 0.35
ROTATION (all lanes)
---------------------
All three axes randomised independently over [-pi, +pi],
giving each pebble instance a fully random orientation.
DENSITY CONTROL PATTERN (Medium & Small lanes)
-----------------------------------------------
The mask value and the Factor are first multiplied together
(Math.004 / Math.006), then that product is multiplied again
by a second value (Math.005 / Math.007) before being fed into
the Density socket. This two-stage multiply gives a non-linear
response curve, making the density fall off more aggressively
near the mask edges.
The Large lane uses a different (single-stage) approach:
the Density Factor socket receives the mask directly, and the
Factor is only used to scale Density Max via Math.003.
NOTES & SUGGESTIONS
--------------------
* The node group has no Seed input exposed; adding one would allow
re-randomising all three layers simultaneously without touching
individual nodes.
* The Factor input currently appears three times (once per lane).
Merging them into a single shared socket would simplify the
modifier panel.
* Consider labelling the unlabelled Math nodes (Math.003-.007)
and Random Value nodes to aid future maintenance.