fogón

← GranjaObjeto 3Dfogon/silo

Silo

de fogonCC025607 bloques
SiloArrastrá para girarlo
// «Silo» · gpt-6-sol (medium)
// A tall cylindrical farm grain silo: the body is a cylinder of light grey galvanized metal with darker horizontal ring seams every 3 blocks, topped by a clearly visible shiny silver HEMISPHERICAL dome cap that is a bit wider than the body with a small vent knob on top. A red vertical ladder runs up the front side with a red safety cage around its upper part, a small red square hatch door at the bottom front, and a short red chute pipe coming out near the top. It sits on a round concrete pad slightly wider than the silo on green grass.

// Grass and a slightly raised round concrete pad.
box(3, 3, 0, 45, 45, 0, "#54bd42");
for (let x = 4; x <= 44; x++) {
  for (let y = 4; y <= 44; y++) {
    if (rand() < 0.07) set(x, y, 0, rand() < 0.5 ? "#67cc4b" : "#48ae3c");
  }
}
cylinder(24, 24, 1, 18, 2, "#bcbfba");
cylinder(24, 24, 2, 17, 1, "#dadbd3");

// Galvanized cylinder: shaded sides and a dark seam every three blocks.
for (let z = 3; z <= 29; z++) {
  for (let x = 11; x <= 37; x++) {
    for (let y = 11; y <= 37; y++) {
      const dx = x - 24, dy = y - 24;
      if (dx * dx + dy * dy > 13 * 13) continue;
      let color;
      if (z % 3 === 0 && z < 29) {
        color = dy < -3 ? "#879398" : "#78868c";
      } else if (dy < -5 && dx < 5) {
        color = rand() < 0.09 ? "#e4e9e6" : "#ced9d9";
      } else {
        color = rand() < 0.08 ? "#a9b7b9" : "#bcc9ca";
      }
      set(x, y, z, color);
    }
  }
}

// Broad, unmistakably hemispherical polished-silver roof.
for (let z = 29; z <= 44; z++) {
  for (let x = 9; x <= 39; x++) {
    for (let y = 9; y <= 39; y++) {
      const dx = x - 24, dy = y - 24, dz = z - 29;
      if (dx * dx + dy * dy + dz * dz > 225) continue;
      let color;
      if (z === 29) color = "#798d96";
      else if (z === 30) color = "#aabcc4";
      else if (dx < -4 && dy < 2) color = "#f1f6f3";
      else if (dy < -3 || z > 38) color = "#dce7e8";
      else color = "#b8c9d0";
      if (z > 30 && rand() < 0.025) color = "#ffffff";
      set(x, y, z, color);
    }
  }
}
// Crisp lip at the base of the dome.
for (let x = 9; x <= 39; x++) {
  for (let y = 9; y <= 39; y++) {
    const d = Math.hypot(x - 24, y - 24);
    if (d >= 14 && d <= 15.1) set(x, y, 29, "#899da5");
  }
}

// Small silver roof vent.
cylinder(24, 24, 43, 2, 3, "#849ba4");
cylinder(24, 24, 46, 2, 1, "#edf3f0");
set(24, 24, 47, "#d7e3e4");

// Bottom hatch, with a bright frame, dark handle, and little hinges.
box(21, 8, 3, 27, 9, 10, "#f5e8d7");
box(22, 7, 4, 26, 8, 9, "#bb3432");
box(22, 7, 9, 26, 7, 9, "#e75a46");
set(25, 6, 6, "#313d3d");
set(22, 6, 5, "#f0d9a1");
set(22, 6, 8, "#f0d9a1");

// Red ladder climbing from the hatch to the roof.
for (let z = 10; z <= 31; z++) {
  set(22, 9, z, "#bf3330");
  set(26, 9, z, "#bf3330");
  set(22, 8, z, "#e24b3b");
  set(26, 8, z, "#e24b3b");
}
for (let z = 11; z <= 31; z += 2) {
  box(23, 8, z, 25, 9, z, "#ed5945");
}

// Upper safety cage: outward-bowed hoops and continuous front uprights.
for (let z = 17; z <= 29; z += 4) {
  for (let x = 19; x <= 29; x++) {
    const dx = x - 24;
    const y = Math.round(9 - Math.sqrt(Math.max(0, 25 - dx * dx)));
    set(x, y, z, "#d9473a");
  }
}
for (let z = 17; z <= 29; z++) {
  set(19, 9, z, "#b93230");
  set(29, 9, z, "#b93230");
  set(24, 4, z, "#db4839");
}

// Short red grain chute projecting from the upper right side.
line(35, 18, 25, 41, 13, 21, 2, "#b83230");
line(36, 17, 26, 40, 13, 23, 1, "#ec5a43");
box(40, 11, 19, 42, 14, 22, "#dc4437");
box(42, 12, 20, 42, 13, 21, "#633f39");
line(36, 19, 23, 38, 17, 25, 0, "#87999b");