From metashape-mcp
Guides dense reconstruction in Metashape MCP: builds depth maps, point clouds, meshes, textures, DEMs, orthomosaics post-alignment with optimal GPU/CPU settings via blocking MCP calls.
npx claudepluginhub jenkinsm13/claude-plugins --plugin metashape-mcpThis skill uses the workspace's default tool permissions.
Build dense products from aligned cameras in Metashape using MCP tools. This covers everything AFTER alignment: depth maps, dense point cloud, mesh, texture, DEM, and orthomosaic. All MCP tool calls block until complete — no polling, no timeouts.
Guides UV mapping, texture atlas generation, color calibration, and quality optimization in Metashape MCP server for 3D meshes. Used after mesh building, covers blending modes, ghosting filter, and artifacts.
Generate depth maps from 2D images using each::sense AI API for 3D effects, parallax animations, VR/AR apps, bokeh, focus stacking, and stereo images.
Guides Adobe Substance 3D Painter workflows for PBR material creation, web-optimized texture export to Three.js, Babylon.js, Unity, Unreal, and Python API batch automation.
Share bugs, ideas, or general feedback.
Build dense products from aligned cameras in Metashape using MCP tools. This covers everything AFTER alignment: depth maps, dense point cloud, mesh, texture, DEM, and orthomosaic. All MCP tool calls block until complete — no polling, no timeouts.
set_gpu_config(cpu_enable=False) before depth maps, point cloud, meshing, texturing, DEM, orthomosaic. CPU slows GPU operations. CPU is ONLY for alignment (match_photos, align_cameras).get_processing_status in a loop.save_project() after major operations.get_alignment_stats()
# Check: alignment_rate should be >95%
# Check: tie_point_count_valid should be reasonable
set_gpu_config(cpu_enable=False)
build_depth_maps(
downscale=2, # 1=Ultra, 2=High, 4=Medium, 8=Low, 16=Lowest
filter_mode="mild", # mild for complex terrain, moderate default, aggressive for clean scenes
reuse_depth=True # Reuse existing depth maps for aligned cameras
)
Quality guide:
downscale=1 (Ultra): Final production, small projects. Very slow.downscale=2 (High): Standard production quality. Good balance.downscale=4 (Medium): Quick results, large projects, testing.build_point_cloud(
point_colors=True,
point_confidence=True
)
Skip if going directly to mesh from depth maps.
Only needed for terrain/DEM workflows:
classify_ground_points(
max_angle=15.0,
max_distance=1.0,
cell_size=50.0
)
build_model(
surface_type="arbitrary", # "arbitrary" for 3D, "height_field" for terrain/DEM
source_data="depth_maps", # "depth_maps", "point_cloud", "depth_maps_and_laser_scans"
interpolation="enabled", # "disabled", "enabled", "extrapolated"
vertex_colors=True,
vertex_confidence=True,
volumetric_masks=False,
keep_depth=True
)
face_count_custom=0 is hardcoded (unlimited faces)trimming_radius=0 is hardcoded (no trimming)classes=[2] (ground only)build_uv(
mapping_mode="generic", # "generic", "adaptive_orthophoto", "orthophoto", "camera"
texture_size=8192 # Power of 2: 4096, 8192, 16384
)
build_texture(
blending_mode="natural", # "natural" (default, best quality), "mosaic", "average", "max", "min"
texture_size=8192,
ghosting_filter=True
)
DEM:
build_dem(
source_data="point_cloud", # or "mesh"
interpolation="enabled",
classes=[2] # Ground only, if classified
)
Orthomosaic:
build_orthomosaic(
surface_data="dem", # or "mesh", "none"
blending_mode="mosaic",
ghosting_filter=True
)
| Use Case | surface_type | source_data |
|---|---|---|
| 3D object/scene | arbitrary | depth_maps |
| Terrain/landscape | height_field | depth_maps |
| With laser scans | arbitrary | depth_maps_and_laser_scans |
| From dense cloud | arbitrary | point_cloud |
| Quick preview | arbitrary | tie_points |
| Mode | When to Use |
|---|---|
| mild | Complex terrain, vegetation, rock faces — preserves detail |
| moderate | Default, good for most scenes |
| aggressive | Clean/flat surfaces, buildings — removes more noise |
| Mode | When to Use |
|---|---|
| natural | Default. Best color continuity across seams |
| mosaic | Sharpest detail per-patch but visible seams |
| average | Smooth blending, can be slightly blurry |
For testing/preview: downscale=4 depth maps, texture_size=4096
For production: downscale=2 depth maps, texture_size=8192
For ultra quality: downscale=1 depth maps, texture_size=16384
Road corridor captures commonly produce tunnel/dome mesh artifacts where the sky gets closed. This is because depth map interpolation ignores masks.
Quick fix: Build mesh from point cloud instead of depth maps:
build_point_cloud(point_colors=True, point_confidence=True)
build_model(source_data="point_cloud", surface_type="arbitrary", classes=[0, 1, 2, 6])
clean_model(criterion="component_size", level=75)
For the full decision tree and all 5 strategies, see the sky-artifact-prevention skill.
For UV mapping, texture atlas settings, blending modes, and texture artifact diagnosis, see the texturing-pipeline skill.
Quick reference:
build_uv(mapping_mode="generic", texture_size=8192)
build_texture(blending_mode="mosaic", texture_size=8192, ghosting_filter=True)
downscale (e.g., 2→4). Ultra (1) requires significant VRAM.interpolation="extrapolated" or build from point cloud instead of depth maps.sky-artifact-prevention skill.texture_size, or try blending_mode="mosaic". See texturing-pipeline skill.decimate_model(face_count=target) after building.