Blender MCP (headless 3D/BIM) — جسر Blender بالوكلاء
بُني 2026-10-19 (نشرة تقنية، بأمر د. وائل). أصيل headless — مستلهم من فكرة blender-mcp (ahujasid 3D) لكن الرسمي يشترط viewport GUI، فبنينا بديلاً يعمل على السيرفر headless عبر blender -b --python (background، صفر GUI).
متى تُستخدم (auto)
أي طلب 3D/BIM يحتاج: قراءة ملف 3D · تحويل صيغة · render معاينة · تعديل/توليد إجرائي. يُثري:- design-to-bim + bim-4d-engine (تحويل/render نماذج BIM)
- image-to-3d (post-process للـ glb المولّد من Trellis)
- 3d-generation (تعديل/render المخرجات)
المحرّك
/usr/bin/python3 skills/blender-mcp/blender_engine.py {selftest|info <file>|convert <src> <dst>|render <file> <out.png> [res]|run <script.py>}
- info: إحصاءات (.blend/.obj/.fbx/.gltf/.glb/.stl/.ply): كائنات/مضلّعات/رؤوس/مواد
- convert: obj↔fbx↔gltf↔glb↔stl↔ply
- render: PNG من ملف 3D (كاميرا+إضاءة تلقائية، Eevee headless) — معاينة/توثيق as-built
- run: سكربت bpy جاهز (توليد/تعديل إجرائي متقدّم)
خادم MCP (للوكلاء Claude Code/Codex)
/usr/bin/python3 skills/blender-mcp/blender_mcp_server.py (stdio) — 4 أدوات: blender_info · blender_convert · blender_render · blender_run_script. مُسجّل في config/mcporter.json (blender-headless).البنية
- Blender 5.2.1 LTS:
/data/blender-5.2.1-linux-x64/blender(مثبّت، default مطفأ — يُشغّل background عند الطلب ثم ينتهي). - never-stop: أي عملية تفشل → رسالة واضحة exit≠0 بلا انهيار.
🔴 الخط الأحمر
- run_script ينفّذ كود bpy داخل Blender background → للمحتوى الموثوق فقط (لا كود مستأجرين/خارجي غير مفحوص).
- Blender default مطفأ (حفظ موارد — يُشغّل background لثوانٍ عند الطلب فقط).
- المستأجرون: يرثون info/convert/render (آمنة)؛ run_script admin-only حذراً.
مُختبَر E2E (2026-10-19)
- blender_engine SELFTEST 4/4 (installed + bpy background + export obj 920B + convert obj→glb 1788B)
- MCP server MCP_SELFTEST_OK (handshake + tools/list=4) + حيّ عبر stdin (initialize + tools/list)