Coating Lab

io.github.hpdkhoa由 GitHub 账号 hpdkhoa 发布v0.1.0更新于 Oct 24, 2026

Real surface finishes for game gun models: sourced finishes, variants, wear baked from use

已验证STDIO仅桌面开发者工具媒体与设计

概览

AI 生成的概览

本地 MCP 服务器,为游戏枪械模型提供基于物理的表面处理,并在 Blender 中将磨损遮罩烘焙到顶点颜色。

可以做什么
浏览并读取带来源说明的饰面库,查看每种饰面的备注与来源,并可用自备饰面 JSON 按物理渲染规则检查饰面。列出磨损等级与现成变体模板,为 Model Lab 构建生成涂装规格。校验规格中的缺失饰面或饰面与材质不匹配问题。在 Blender 中把边缘、握持、摩擦、污垢等磨损遮罩烘焙到模型副本,再按等级检查各变体的磨损。生成 look-dev 渲染与图集,并按槽位导出变体数值供引擎材质使用。
适用场景
适用于为游戏武器模型制作贴图、希望获得一致且有据可查的饰面与磨损等级而非手绘遮罩的场景,尤其适合已用 Model Lab 建模并希望直接从构建生成涂装规格的用户。
运行要求
通过 stdio 本地运行;需安装 coatinglab-mcp Python 包(Python 3.10 或更高版本)并具备 Blender 4.2 或更高版本。可选环境变量:COATINGLAB_BLENDER 指定非标准 Blender 路径,COATINGLAB_LIBRARY 提供自备饰面 JSON,COATINGLAB_OUT 指定输出目录(默认 ~/.coatinglab),COATINGLAB_WAIT_FOR 指定烘焙前不得运行的进程名。
安装前请注意
烘焙会写入文件,但仅写入 COATINGLAB_OUT 指定的目录。它会在本机运行 Blender,且当 COATINGLAB_WAIT_FOR 中列出的进程正在运行时会拒绝烘焙。许多数值明确为估算:全部粗糙度、多数颜色以及磨损量,因此结果合理但并非实测。COATINGLAB_LIBRARY 提供的自备饰面 JSON 会合并覆盖内置库。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Coating Lab,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

Coating Lab

Real surface finishes for game gun models, worn where use wears a gun.

[license: MIT] [Python 3.10+] [PyPI: coatinglab-mcp] [MCP Registry: coatinglab-mcp] [Blender: 4.2+] [tools: 13] [finishes: 21 sourced]

An MCP server that gives game gun models real surface finishes, worn where use wears a gun.

  • A finish library with sources. Anodized aluminium, manganese and zinc phosphate, blued and nitrided steel, ceramic coatings (FDE, OD green, tungsten, graphite, coyote), stainless, polymer, rubber, brass, copper, lead, walnut. Each is a physically based value (linear colour, metallic, roughness) with what shows when it wears through and the sources of its numbers. Values reasoned from descriptions are marked as estimates.
  • Coating variants. A spec puts a finish on each material slot of a model, in as many variants as you want (an issued rifle, a two-tone FDE build, an abused one), each at a wear level: new, issued, worn or abused.
  • Wear from evidence, baked once. In Blender, into the model's vertex colours: exposed edges, where the hands work the gun (its grip, the support hand, the controls), where parts slide (a magazine in its well, a stock on its tube), and dirt where the surface is occluded and round the muzzle and the port. Every variant reads the same masks, so a new variant costs nothing.
  • Checks. Every finish against the rules physically based rendering rests on. Every variant's worn share against its level, and no wear inside corners.
  • One formula everywhere. The checks, the look-dev renders and an engine's material compute wear the same way (coat.py), so what passes is what the player sees.

[Six AR-15 coatings on one Model Lab build]

Model Lab (modellab-mcp) builds give their own slots (upper, lower, barrel and more), marks and parts: spec_for_modellab makes a coating spec from a build in one call.

Install

Python 3.10 or later and Blender 4.2 or later.

pip install coatinglab-mcp
json
{"mcpServers": {"coatinglab": {"command": "coatinglab-mcp"}}}
SettingMeaning
COATINGLAB_OUTThe only folder Coating Lab writes to. ~/.coatinglab by default.
COATINGLAB_BLENDERBlender, when it is not on the PATH or in the usual install folder.
COATINGLAB_LIBRARYA finishes JSON of your own, merged over the built-in library.
COATINGLAB_WAIT_FORProcess names that hold the machine. A bake waits for none of them to run.

Tools

ToolWhat it does
list_finishes, read_finishThe library, and one finish with its notes and sources.
check_library, check_finishThe library, or a finish of your own, against the physical rules.
list_wear_levels, list_templatesThe wear levels, and the ready variant sets.
spec_for_modellabA coating spec for a Model Lab build.
validate_specA spec's problems: a slot without a finish, a finish on the wrong material.
bakeBakes the wear masks into a copy of the model.
check_coatingEach variant's wear against its level, and wear kept out of corners.
render_variantsLook-dev renders and a sheet.
engine_paramsA variant's values by slot for an engine material.

The masks and the formula

The bake writes the vertex colour Col:

ChannelMeaning
REdge: 1 on flat ground, 0 on a sharp exposed edge
GHandling: 1 where the hands work the gun
BRub: 1 along the lines parts slide on
ADirt: 1 where the surface is occluded, and round the muzzle and the port

An engine's material follows the formula in src/coatinglab/coat.py. A wear level is a threshold: the higher the level, the weaker the mask that already wears through. A grunge texture breaks wear up but never makes wear.

What is estimated

  • Every roughness value. No source maps a finish's surface to a rendering roughness.
  • The colours of the anodized, phosphate, blued, nitrided and most ceramic finishes. The standards set processes, not colours. OD green and coyote come from FED-STD-595 colour numbers.
  • The wear amounts. Sources say where guns wear, not how fast. Each level is set so Model Lab's M4A1 lands in the middle of its band.
  • A hand's zone is a sphere: on a round handguard the support hand's wear reaches its top as well as its underside.

License

MIT

来源:README.md,提交 9d8c26a

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

1
  1. v0.1.0最新Oct 15, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分