Model Lab

io.github.hpdkhoa由 GitHub 帳號 hpdkhoa 發布v0.2.0更新於 Oct 24, 2026

Draws rigged game gun models in Blender from parameters, checked against the real gun

發布方自己的服務:model.tools — Zero-Auth Agent Utilities

已驗證STDIO僅桌面開發者工具媒體與設計

概覽

AI 產生的概覽

依參數在 Blender 中產生帶骨架綁定的 AR-15 系列遊戲槍械模型,並內建自檢與實槍照片輪廓比對。

可以做什麼
  • 列出預設槍型、槍族、參數說明以及導軌與 M-LOK 配件類別
  • 依預設或槍族建構槍械,可調整參數,並可選擇產生動作 GIF
  • 產生經過量測的動畫片段(拉槍機、射擊、換彈、槍托位置),輸出 FBX 與 GIF
  • 將建構結果的輪廓與內附實槍參考照片進行比對
  • 列出歷來建構並讀取其事實資料、標記點與檢查結果
適用情境
適合需要帶骨架、配件插槽與動畫片段的佔位或原型遊戲武器素材,並希望幾何外形能對照公開尺寸與參考照片驗證的情況。面向製作 AR-15 類步槍的遊戲美術與開發者,不適用於其他槍族或製造資料需求。
執行需求
以 Python 套件(modellab-mcp)透過 uvx 或 pip 在本機以 stdio 執行。需要 Python 3.10 以上與 Blender 4.2 以上。選用環境變數:MODELLAB_BLENDER 指定 Blender 執行檔路徑,MODELLAB_OUT 指定唯一輸出資料夾(預設 ~/.modellab),MODELLAB_WAIT_FOR 在指定程序執行時暫緩建構。僅支援桌面端。
安裝前請注意
建構會寫入檔案(FBX、.blend、PNG、JSON)到 MODELLAB_OUT 指定的資料夾,請指向可接受寫入的位置。它會啟動本機 Blender 程序,可能佔用較多電腦資源;MODELLAB_WAIT_FOR 可在其他程序執行時暫緩建構。輸出僅限遊戲模型外形與活動部件,不含內部結構或製造資料,且許多尺寸是依照片估算。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Model Lab,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

Model Lab

Game gun models drawn in Blender from parameters, rigged and checked against the real gun.

[license: MIT] [Python 3.10+] [PyPI: modellab-mcp] [MCP Registry: modellab-mcp] [Blender: 4.2+] [tools: 10] [presets: 5 AR-15s]

An MCP server that draws game gun models in Blender from a few parameters. Each build has real parts at real proportions, one bone a moving part, its clips, and the facts a game needs. Every build checks itself, and a second check measures its outline against a photo of the real gun.

[An AR-15 with a holographic sight, a magnifier, a light and a vertical grip]

Ask for "an M4A1 with a red dot and a light on the right rail" and Model Lab writes a rigged FBX, an FBX for each attachment, a .blend, a sheet of pictures and a facts.json with every mark in gun space. It tells you which checks failed, if any. It makes game models only: outside shapes and moving parts. It draws no working internals and writes no fabrication data.

What a build gives you

You getWhat it is
SK_<name>_Rig.fbxthe gun on its rig: Bolt, ChargingHandle, DustCover, BoltCatch, MagRelease, Selector, Trigger, ForwardAssist, Magazine, MagRound, Stock, each with its real pivot and travel
SM_<name>_Magazine.fbxthe magazine alone, its origin on the feed lips, for the hand
one FBX an attachmentits origin on its recoil lug; SK_ when it has moving parts (folding sights, flip caps, a flip magnifier)
<name>.blendeverything, with the moving parts' cycle as an action
facts.jsonthe marks (chamber, port, magazine well, feed lips, grip, support hand, muzzle, sights), the rails and their slots, the attachments and their sockets, the parts table, every check
sheet.pnglabelled views: both sides, the top, the front, close views, the open action, the sight picture

Gun space: centimetres, +X the gun's left, +Y forward, +Z up. The origin is the bolt face at rest on the bore.

[An M4A1 from its right side]

Install

Model Lab needs Python 3.10 or later and Blender 4.2 or later.

uvx modellab-mcp

or

pip install modellab-mcp

Add it to your MCP client (Claude Code, Claude Desktop, or any client that runs stdio servers):

json
{  "mcpServers": {    "modellab": {      "command": "uvx",      "args": ["modellab-mcp"],      "env": { "MODELLAB_BLENDER": "C:/Program Files/Blender Foundation/Blender 4.2/blender.exe" }    }  }}
SettingWhat it does
MODELLAB_BLENDERBlender's executable. Leave it out when Blender is on the PATH or in its usual install folder.
MODELLAB_OUTThe only folder Model Lab writes to. Defaults to ~/.modellab.
MODELLAB_WAIT_FOROptional process names that hold the machine, such as UnrealEditor.exe,blender.exe. A build refuses to start while one runs. Off by default.
MODELLAB_IDLE_OKWith MODELLAB_WAIT_FOR: parts of a command line that mark a long-lived worker (default poselab_mcp). Such a worker counts only while it is busy.

The tools

ToolWhat it does
list_presetsThe ready guns: M4A1, M16A2, AR15, M4A1_Kitted, AR15_Optic.
list_platforms, describe_paramsThe gun families and every parameter: its range or choices, its unit, its meaning, and the sources of the real numbers.
list_attachmentsNine attachment classes for the rails and M-LOK slots.
build_gunBuilds a gun from a preset or a platform, with any parameter changed. motion=true adds GIFs of the cycle.
build_gun_clipsThe gun's own clips on a build's rig, measured, one FBX and one GIF each.
list_references, compare_to_referenceThe real-gun check: a build's outline against a photo.
list_builds, read_buildThe builds so far and their facts.

The same calls run from a shell: modellab presets, modellab build M4A1 stock_pos=2 name=MyM4, modellab clips <build>, modellab compare. Run modellab help for the list.

Every build checks itself

A build reports each check with its value. The checks:

  • the length against the published figure (the M4A1 at 29.75 and 33 in, the M16A2 at 39.63 in);
  • the chamber on the bore;
  • the dust cover: closed over the whole port, hinged on its bottom edge, and open against the lower, not through it (the build swings it a degree at a time and stops it where it first touches);
  • the magazine clear of its well's walls and seated;
  • the bolt's travel past the top round;
  • the sight line: the rear aperture and the front post at one height;
  • each attachment on a rail it fits, clear of the gun in every state, and its optic on the iron sight line;
  • every visible part with its real features (parts_complete). The parts table lists each part a person sees on the real gun and the features that make it read as that part: the charging handle's swept wings, finger hooks, latch and roll pin; the bolt catch's serrations; the castle nut's notches; the front sight base's bayonet lug, swivel and taper pins; and so on. A missing feature fails the build. Marks such as rail numbers are listed as texture, not shape.

[Close views: the charging handle]

The real-gun check

compare_to_reference draws the build's side outline at a reference photo's own scale. It lines the build up on the muzzle and the bore, measures both outlines column by column, and names the parts where they differ. The overlay shows the model in see-through red over the photo: dark photo showing through is real gun the model misses.

[The M4A1's outline over the reference photo]

This check found the faults the self-checks could not: the lower 1.55 cm too far back, the front sight base 2.4 cm back and the wrong shape, the stock's outline, the magazine's curve, and the rail's height. Now no stretch of the gun's outline over 1.75 cm long is more than 1 cm off. Attachments are classes, not the photo's exact models, so the check keeps their outline apart.

The reference ships with the package: a photo of an M4A1 carbine from PEO Soldier, File:M4A1-flattop.jpg on Wikimedia Commons, in the public domain as a work of the US Federal Government. The check reads its scale from the rail's teeth, 0.394 in apart.

Attachments on sockets

Each rail reports its slots at the Picatinny pitch (MIL-STD-1913), slot 0 at the rear. M-LOK handguards report their slots too (32 by 7 mm, 40 mm apart). Pass attachments by name, or as {item, rail, slot, state, options}:

{"preset": "M4A1", "params": {"attachments": [{"item": "flip_rear", "state": "down"}, "red_dot", "weapon_light"]}}

The nine classes: folding rear and front sights, the M4's carry handle, a 30 mm red dot with flip caps, a holographic sight, a 3x magnifier on a flip mount, a 4x32 prism sight, a vertical grip, a weapon light. A build checks that each fits its rail, clears the gun in every state, and clears the others as shown. When one blocks another's move, the build lists it: behind a magnifier, the rear sight goes up only after the magnifier swings aside.

[The sight picture through a red dot, the A2 post in its middle]

Motion and clips

Every .blend holds the cycle as an action. motion=true renders it as GIFs: the charging handle drawn back, the cover springing open, the carrier flying home, the magazine out and in, then the attachments' own moves.

[The cycle on an AR-15 with a magnifier and a holographic sight]

build_gun_clips keys the gun's clips at 60 frames a second from real timings: charge, chamber check, fire (a 75 ms cycle), the last shot (the bolt held on its catch), reload, empty reload, and the stock's positions. Each clip is measured: every part on its own axis, the full stroke, the cover open before the carrier has moved 1 cm, the magazine out of the well and seated, the bolt held until the magazine is in.

[An empty reload: the bolt held open until the new magazine is seated]

Next: soft edges where a hand holds

The owner, 2026-10-21: "the grip is no sharp edge, this will be the next improvement for Model Lab when read on the manual or images, make the corner round a bit, especially the places that human grab and hold, most of the time they will no sharp edge because sharp edges will hurt the hand/human, make them softer so hand can hold it".

  • Every part a hand grabs or holds gets rounded edges: the grip, the pistol grip's panels, the handguard, the magazine, the charging handle, the stock's cheek and butt.
  • Each radius is read from the manual, drawing or photo when it shows one. Otherwise it comes from a named human-engineering source, recorded with the part.
  • The real-gun check compares these edges too.

Why it matters, measured: on a digitized M1911A1 the grip safety was a square extrusion. A hand placed on the grip had the safety's edge 0.42 cm in its palm (the palm gives 0.27 cm). Rounding the grip parts by 0.75 mm, the least MIL-STD-1472G 5.7.7.6 allows, cut that to 0.09 cm past the give. Red: before (sharp). Blue: after (rounded). Below, close-ups of the spot before and after.

[The palm's clip against the grip safety, sharp and rounded]

Limits

  • One platform so far: the AR-15 family. Others will follow.
  • One reference photo: the M4A1 from its right side.
  • The clips are the gun's side only. A hand's clips need an arms rig.
  • No selector clip yet: the lever's direction at SAFE is not yet checked against a source.
  • Many numbers are estimates sized from photographs. describe_params lists every source and every estimate.

Trademarks

M-LOK is a trademark of Magpul Industries. Model Lab draws M-LOK slots to their published dimensions and is not connected with Magpul. AR-15 is a trademark of Colt's Manufacturing; here it names the rifle family in its common sense. Military designations (M4A1, M16A2, M68) name the guns and parts Model Lab copies. No product is endorsed.

License

MIT. See LICENSE.

來源:README.md,提交 b5098b8

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

2
  1. v0.2.0最新Oct 15, 2026
  2. v0.1.0Oct 14, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分

其他 Model 整合