creating-shapes
Creating Shapes
MCP Tools
worldedit_generation- sphere, cylinder, pyramid, conebuild(code=...)- Python code that generates commands (RECOMMENDED)worldedit_deform- Math expressions
build() Code Mode (RECOMMENDED)
Sphere
build(code="""
commands = []
cx, cy, cz, radius = 105, 70, 205, 10
for x in range(cx - radius, cx + radius + 1):
for y in range(cy - radius, cy + radius + 1):
for z in range(cz - radius, cz + radius + 1):
if ((x-cx)**2 + (y-cy)**2 + (z-cz)**2)**0.5 <= radius:
commands.append(f'/setblock {x} {y} {z} stone')
""", description="Solid sphere")
Hollow Sphere
# Add: if radius - thickness <= dist <= radius:
Dome (Half Sphere)
# Limit y range: for y in range(base_y, base_y + radius + 1):
# Use: dist = ((x-cx)**2 + (y-base_y)**2 + (z-cz)**2)**0.5
Cylinder
build(code="""
commands = []
cx, cz, base_y, radius, height = 105, 205, 64, 8, 20
for y in range(base_y, base_y + height):
for x in range(cx - radius, cx + radius + 1):
for z in range(cz - radius, cz + radius + 1):
if ((x-cx)**2 + (z-cz)**2)**0.5 <= radius:
commands.append(f'/setblock {x} {y} {z} stone_bricks')
""", description="Solid cylinder")
# Hollow: if radius - thickness <= dist <= radius:
Cone
# Per layer: radius = base_radius * (1 - (y - base_y) / height)
Pyramid
build(code="""
commands = []
cx, cz, base_y, half = 105, 205, 64, 10
for layer in range(half + 1):
size = half - layer
for x in range(cx - size, cx + size + 1):
for z in range(cz - size, cz + size + 1):
commands.append(f'/setblock {x} {base_y + layer} {z} sandstone')
""", description="Pyramid")
Torus (Donut)
build(code="""
commands = []
cx, cy, cz, major_r, minor_r = 105, 70, 205, 12, 4
for x in range(cx - major_r - minor_r, cx + major_r + minor_r + 1):
for y in range(cy - minor_r, cy + minor_r + 1):
for z in range(cz - major_r - minor_r, cz + major_r + minor_r + 1):
dist_xz = ((x-cx)**2 + (z-cz)**2)**0.5
tube_dist = ((dist_xz - major_r)**2 + (y-cy)**2)**0.5
if tube_dist <= minor_r:
commands.append(f'/setblock {x} {y} {z} gold_block')
""", description="Torus")
Spiral Staircase
# Use: angle = step * (2 * pi / steps_per_rotation)
# x = cx + cos(angle) * radius, z = cz + sin(angle) * radius
# Facing based on angle quadrant
Arched Bridge
# Use: arc = sin(progress * pi) * arc_height where progress = (x - start) / length
WorldEdit Shapes
/sphere stone 10 # Solid sphere r=10
/hsphere glass 10 # Hollow sphere
/cyl stone 5 10 # Cylinder r=5 h=10
/hcyl glass 5 10 # Hollow cylinder
/pyramid sandstone 15 # Pyramid
Expression Shapes
/generate gold_block (sqrt(x*x+z*z)-12)^2+y*y<16 # Torus
/generate stone (x*x)/100+(y*y)/25+(z*z)/100<1 # Ellipsoid
/generate stone y<sin(x/5)*3+64 # Sine wave
Code Sandbox Limits
Allowed: for loops, list comprehensions, math ops, math module
NOT Allowed: while, def, lambda, imports (except math), try/except
Limits: 10,000 commands max, 100,000 iterations max
Distance Functions
# Euclidean (spheres): ((x-cx)**2 + (y-cy)**2 + (z-cz)**2)**0.5
# 2D (cylinders): ((x-cx)**2 + (z-cz)**2)**0.5
# Manhattan (diamonds): abs(x-cx) + abs(y-cy) + abs(z-cz)
# Chebyshev (cubes): max(abs(x-cx), abs(y-cy), abs(z-cz))
Shape Formulas
| Shape | Formula |
|---|---|
| Sphere | x² + y² + z² ≤ r² |
| Ellipsoid | (x/a)² + (y/b)² + (z/c)² ≤ 1 |
| Cylinder | x² + z² ≤ r² |
| Cone | x² + z² ≤ (r(1-y/h))² |
| Torus | (√(x²+z²) - R)² + y² ≤ r² |
Tips
- Hollow > Solid (fewer blocks)
- Preview first:
build(preview_only=True) - Use /fill for rectangular parts
More from amenti-labs/vibecraft
placing-furniture
Places furniture and decorates Minecraft interiors using JSON schematics. Use when furnishing rooms, placing tables, chairs, beds, lamps, decorations, or designing interior spaces. Reference furniture_catalog.md for 80+ ready-to-use designs.
19choosing-materials
Chooses Minecraft block materials, color palettes, and textures using VibeCraft MCP tools. Use when selecting materials for builds, creating color schemes, matching architectural styles, or asking about block combinations and palettes.
4building-with-schematics
PRIMARY BUILDING METHOD - Use for ALL construction tasks. Build structures using declarative JSON schematics with 2D layer grids. Describe WHAT to build, the server handles HOW. Supports COMPACT FORMAT (70% fewer tokens) with run-length encoding. Use this instead of WorldEdit commands for reliable, predictable builds.
4building-structures
Builds Minecraft structures using VibeCraft MCP tools. Use when building houses, castles, towers, cottages, temples, or any architectural structure. Works with build_schematic for precise control. Handles room dimensions, floor placement, wall construction, roofing, and architectural style matching.
4using-worldedit
WorldEdit commands for BULK operations - terrain modification, large fills, copy/paste, spheres/cylinders. For detailed structures with oriented blocks (doors, stairs), use build_schematic instead. WorldEdit is best for terrain, large regions, and geometric shapes.
3generating-terrain
Generates Minecraft terrain and landscapes using VibeCraft MCP tools. Use when creating hills, mountains, valleys, rivers, caves, cliffs, or natural terrain features. Handles procedural generation, noise functions, and terrain texturing.
3