In the last post, I used Terraform to automate the construction of a 4x4 log cabin in Minecraft using only two primitive modules: a pillar and a cuboid. This time, I’m going a level deeper — into architecture. To give the cabin more character, I decomposed its structure into more expressive building blocks: a wall with a window, a wall with double doors, and a small enclosing space I called the hut. All built with Terraform modules.

Wall with Window Module

Walls are more than just flat surfaces — they’re opportunities for detail. The wall with a window module was my first step in introducing visual complexity.

Inputs

variable "start_position" {
  type = object({
    x = number
    y = number
    z = number
  })
}

variable "material" {
  description = "Material used for the frame (e.g. dirt)"
  type        = string
}

variable "door_material" {
  description = "Material used for the window (e.g. glass)"
  type        = string
}

variable "direction" {
  type        = string
  description = "Direction of wall: 'east' (along x) or 'north' (along z)"
  default     = "east"
}

This wall is composed of two 4x1 horizontal pillars (top and bottom of the frame) and two 1x2 vertical pillars (sides of the window). In the center, a 2x2 window made of glass blocks.

Alt

To keep the module generic, I added a direction variable to let me place the wall either east-west (using the X-axis) or north-south (using the Z-axis). The math wasn’t complex, but it required some conditional logic to make sure the coordinates adjusted depending on orientation. Thankfully, Minecraft doesn’t allow diagonal building, so I didn’t have to account for anything weirder—yet.

Wall with Double Doors

After windows, the next natural step was doors.

To experiment, I built the shell of a house — a pair of parallel walls forming a 4x4 enclosure. No roof, no corners — just enough space to test how a door segment would feel.

From a bird’s-eye view, it looked like this:

XXXX
X    X
X    X
X    X
X    X
 XXXX

Alt

The door module inserted a double door in the center of one of the walls. Like the window, the challenge was positioning everything correctly and adapting to direction. Minecraft handles doors as two adjacent blocks, so placement has to be very precise to look right.

Small Hut

With working wall segments, it was time to assemble the full hut. I used the cuboid and wall modules to construct opposing pairs of walls, leaving the center open. But something still felt unfinished — the corners.

Alt

Yes. This hut was built by Terraform.

Alt

Clean up the Corners

Corners in Minecraft matter. Without them, structures feel like empty boxes. So I added a final detail: four vertical 1x4 pillars — one for each corner of the cabin.

Here’s how I defined them:

locals {
  corner_pillar_positions = {
    corner_nw = { start_position = { x = local.origin.x, y = local.origin.y, z = local.origin.z } }
    corner_ne = { start_position = { x = local.origin.x + 5, y = local.origin.y, z = local.origin.z } }
    corner_sw = { start_position = { x = local.origin.x, y = local.origin.y, z = local.origin.z + 5 } }
    corner_se = { start_position = { x = local.origin.x + 5, y = local.origin.y, z = local.origin.z + 5 } }
  }
}

Then I instantiated the pillar module for each one:

module "corner_pillars" {
  for_each = local.corner_pillar_positions

  source   = "../pillar"
  material = "minecraft:oak_planks"
  length   = 4

  start_position = each.value.start_position
}

Terraform: From Infra to Imagination

It’s still Terraform. Still declarative. Still working with modules, inputs, and outputs. But the result is a living structure inside a virtual world — built entirely by code.

This project has taught me how reusable infrastructure patterns map surprisingly well to creative environments. Modules, composition, abstraction — they’re just as relevant for wooden huts as they are for cloud VMs.

Alt

What’s Next?

Now that I’ve got the cabin down, who knows where I’ll go next. That’s where the math will get fun — and where Terraform will get a true architectural challenge.

Until then, Happy Terraforming Minecraft.