返回市场
mcp_三维地形

mcp_三维地形

作者:Bigchx11 星标更新:2025-04-27

项目介绍

MCP STL 3D浮雕生成器

<div align="center">

中文 · MCP简介 · Wiki

</div>

该项目提供了一个MCP服务器,可以将2D图像转换为STL格式的3D浮雕模型,适用于3D打印或渲染。

特性

  • 将任意图像转换为3D浮雕模型
  • 控制模型尺寸(宽度、厚度)
  • 向3D模型添加可选底座
  • 反转深度以获得不同的浮雕效果
  • 快速处理并提供即时下载链接

安装

先决条件

  • Python 3.10+
  • uv

方案1:本地安装

  1. 克隆仓库:
git clone https://github.com/bigchx/mcp_3d_relief.git
cd mcp_3d_relief
  1. 安装依赖项:
uv pip sync requirements.txt
  1. 运行/检查服务器:
mcp run server.py
mcp dev server.py

使用方法

JSON配置

{
  "mcpServers": {
    "mcp_3d_relief": {
      "command": "uv",
      "args": ["--directory", "{填入你的路径}", "run", "server.py"]
    }
  }
}

MCP工具参数

  • image_path:输入图像文件的本地路径或网络URL
  • model_width:3D模型的宽度(单位:毫米,默认值:50.0)
  • model_thickness:3D模型的最大厚度/高度(单位:毫米,默认值:5.0)
  • base_thickness:底座的厚度(单位:毫米,默认值:2.0)
  • skip_depth:是否直接使用图像或生成深度图(默认值:true)
  • invert_depth:反转浮雕(亮区变为低而不是高)(默认值:false)
  • detail_level:控制处理图像的分辨率(默认值:1.0)。当detail_level=1.0时,图像将以320像素的分辨率进行处理,通常生成的STL文件大小在100MB以下。更高的值会提高细节质量,但显著增加处理时间和STL文件大小。例如,将detail_level加倍可能会使文件大小增加4倍以上。谨慎使用。

响应

MCP工具返回一个JSON响应,包含:

{
  "status": "success",
  "depth_map_path": "path/to/yourimage_depth_map.png",
  "stl_path": "path/to/yourimage.stl"
}

LLMs可以从这个MCP服务器访问生成的文件,使用提供的URL。

命令行

你也可以直接从命令行使用脚本,从图像生成浮雕模型:

python3 relief.py path/to/your/image.jpg

外部深度图生成

为了生成更高品质的深度图,你可以使用外部深度图生成服务,如Depth-Anything-V2。该服务可以生成更准确的深度图,然后你可以将其与本项目一起使用:

  1. 访问https://huggingface.co/spaces/depth-anything/Depth-Anything-V2
  2. 上传你的图像以生成深度图
  3. 下载生成的深度图
  4. 设置skip_depth=false,使用我们的转换器

这种方法可以提供更好的3D浮雕模型,特别是对于复杂的图像。

工作原理

  1. 图像被处理以创建深度图(较暗的像素=较低,较亮的像素=较高)
  2. 深度图被转换为具有三角面片的3D网格
  3. 在模型底部添加底座
  4. 模型保存为STL文件

我们的合作伙伴

<div style="display: flex; justify-content: center; align-items: center; gap: 20px; margin: 30px 0;"> <div style="flex: 1; text-align: center; padding: 15px; border-radius: 8px; box-shadow: 0 4px 12px rgba(0,0,0,0.1); transition: all 0.2s ease-in-out; max-width: 300px; hover:transform: translateY(-5px); hover:box-shadow: 0 6px 16px rgba(0,0,0,0.15);"> <a href="https://www.voxeldance.com/" style="display: block; height: 100%;"> <img src="images/voxeldance.png" alt="voxeldance" style="max-width: 100%; height: auto; object-fit: contain; transition: opacity 0.2s ease-in-out;"> </a> </div> <div style="flex: 1; text-align: center; padding: 15px; border-radius: 8px; box-shadow: 0 4px 12px rgba(0,0,0,0.1); transition: all 0.2s ease-in-out; max-width: 300px; hover:transform: translateY(-5px); hover:box-shadow: 0 6px 16px rgba(0,0,0,0.15);"> <a href="https://www.3dzyk.cn/" style="display: block; height: 100%;"> <img src="images/3dzyk.png" alt="3dzyk" style="max-width: 100%; height: auto; object-fit: contain; transition: opacity 0.2s ease-in-out;"> </a> </div> </div>