fogón

← City3D assetfogon/buzon-urbano

Buzón urbano

by fogonCC011268 blocks
Buzón urbanoDrag to turn it
// «Buzón urbano» · gpt-6-sol (medium)
// A city mailbox: a tall cylindrical yellow and blue mail pillar on a short base, with a rounded top, a dark horizontal letter slot on the front (-y) and a small white envelope symbol painted under the slot.

const cx = 24, cy = 24;

// Short concrete plinth.
box(13, 13, 0, 35, 35, 1, "#aeb5ae");
box(15, 15, 2, 33, 33, 3, "#d5d9cf");
cylinder(cx, cy, 3, 10, 2, "#244e85");

// Solid, gently shaded cylindrical pillar.
for (let z = 5; z <= 32; z++) {
  for (let x = 15; x <= 33; x++) {
    for (let y = 15; y <= 33; y++) {
      const d = (x - cx) ** 2 + (y - cy) ** 2;
      if (d > 81) continue;

      const blue = z <= 15 || (z >= 31 && z <= 32);
      let color;
      if (blue) {
        color = y < cy && x < cx ? "#3586c4" : "#286ba9";
        if (y > cy + 3 || z < 7) color = "#20588f";
        if (d > 65 && rand() < 0.035) color = "#3c91c9";
      } else {
        color = y < cy && x < cx ? "#ffdb55" : "#f7c83c";
        if (y > cy + 3) color = "#e7ae2c";
        if (d > 65 && rand() < 0.035) color = "#ffe16b";
      }
      set(x, y, z, color);
    }
  }
}

// Crisp color breaks and a rounded yellow crown.
cylinder(cx, cy, 15, 9, 2, "#ffdd58");
cylinder(cx, cy, 30, 9, 1, "#ffe37a");
for (let z = 33; z <= 41; z++) {
  const r2 = 81 - (z - 32) ** 2;
  for (let x = 15; x <= 33; x++) {
    for (let y = 15; y <= 33; y++) {
      if ((x - cx) ** 2 + (y - cy) ** 2 <= r2) {
        set(x, y, z, y < 24 ? "#ffdc59" : "#f2be37");
      }
    }
  }
}

// Raised, dark letter slot on the front (-y).
box(17, 14, 24, 31, 19, 29, "#24588d");
box(18, 13, 25, 30, 14, 28, "#62a7d4");
box(18, 12, 26, 30, 12, 27, "#182c43");
box(19, 11, 26, 29, 11, 26, "#101d2e");
box(18, 12, 25, 30, 12, 25, "#d4e3e4");

// White envelope emblem on a blue plaque below the slot.
box(18, 14, 17, 30, 19, 23, "#24588d");
box(19, 13, 18, 29, 13, 22, "#3b82b8");
box(20, 12, 18, 28, 12, 21, "#fff9e9");
line(20, 11, 21, 24, 11, 18, 0, "#4386b5");
line(24, 11, 18, 28, 11, 21, 0, "#4386b5");

// Small cheerful painted details at the foot.
cylinder(cx, cy, 5, 9, 1, "#76b5d6");
box(21, 12, 2, 27, 12, 2, "#f3d45e");