fogón

← Farm3D assetfogon/huerta

Huerta

by fogonCC012710 blocks
HuertaDrag to turn it
// «Huerta» · gpt-6-sol (medium)
// A rectangular vegetable garden plot: a raised wooden frame filled with dark brown soil, three neat rows: orange carrot tops with feathery green leaves, round green cabbages, and red tomatoes on small staked plants with green leaves, plus a little wooden sign on a stick at the front corner.

// A cheerful raised vegetable garden, viewed from the front (-y).
const grass = ["#72bd43", "#7fc94c", "#88ce55", "#65ae3b"];
const soil = ["#493022", "#553624", "#60402a", "#6b482e"];
const wood = ["#966038", "#aa7042", "#bc8050"];

// Grass beneath the plot.
box(3, 4, 0, 44, 44, 1, grass[0]);
for (let x = 3; x <= 44; x++) {
  for (let y = 4; y <= 44; y++) {
    if (rand() < 0.34) set(x, y, 1, grass[1 + Math.floor(rand() * 3)]);
  }
}

// Solid bed and rich, slightly uneven soil.
box(5, 6, 1, 42, 42, 4, wood[0]);
box(7, 8, 4, 40, 39, 6, soil[0]);
for (let x = 7; x <= 40; x++) {
  for (let y = 8; y <= 39; y++) {
    set(x, y, 6, soil[Math.floor(rand() * soil.length)]);
    if (rand() < 0.085) set(x, y, 7, soil[2]);
  }
}

// Raised wooden planks. The pale top edges catch the sunshine.
for (const z of [2, 4, 6]) {
  const c = z === 6 ? wood[2] : wood[1];
  box(5, 5, z, 42, 7, z + 1, c);
  box(5, 40, z, 42, 42, z + 1, c);
  box(5, 8, z, 7, 39, z + 1, c);
  box(40, 8, z, 42, 39, z + 1, c);
}
for (const x of [5, 42]) for (const y of [5, 42]) {
  box(x, y, 1, x + 1, y + 1, 8, "#855331");
  box(x, y, 8, x + 1, y + 1, 8, "#d49a61");
}
// Little nail heads on the front plank.
for (const x of [9, 20, 31, 39]) set(x, 5, 5, "#dec3a0");

// Carrot row: orange shoulders peek out, topped with feathery greens.
for (const y of [11, 16, 22, 27, 33, 38]) {
  const x = 13;
  ellipsoid(x, y, 7, 2, 2, 2, "#f38424");
  set(x, y - 2, 7, "#ffac37");
  box(x, y, 9, x, y, 11, "#378d37");
  for (const [dx, dy, dz] of [
    [-2, 0, 11], [2, 0, 12], [0, -2, 12], [0, 2, 11],
    [-2, -1, 13], [2, 1, 13], [-1, 1, 14], [1, -1, 14]
  ]) {
    line(x, y, 10, x + dx, y + dy, dz, 0, "#45a646");
    set(x + dx, y + dy, dz, "#64c454");
  }
  set(x, y, 14, "#82d762");
}

// Cabbages: round heads with layered outer leaves.
for (const y of [11, 18, 25, 32, 38]) {
  const x = 24;
  ellipsoid(x, y, 9, 3, 3, 3, "#55a943");
  ellipsoid(x, y - 1, 10, 2, 2, 2, "#76c959");
  for (const dx of [-3, 3]) {
    ellipsoid(x + dx, y, 8, 1, 2, 2, "#429341");
  }
  set(x - 1, y - 2, 11, "#9ade70");
  set(x, y - 2, 12, "#a2df76");
  line(x - 2, y - 2, 8, x, y - 3, 10, 0, "#3e923d");
  line(x + 2, y - 2, 8, x, y - 3, 10, 0, "#3e923d");
}

// Tomato row: slim wooden stakes, branching vines, and bright fruit.
for (const y of [11, 20, 29, 38]) {
  const x = 35;
  box(x, y, 6, x, y, 17, "#a97848");
  set(x, y, 17, "#d3a16b");
  line(x - 1, y, 7, x - 1, y, 15, 0, "#438e37");

  for (const [dx, dy, z] of [[-2, -1, 10], [2, -1, 12], [-2, 1, 14]]) {
    line(x - 1, y, z - 2, x + dx, y + dy, z, 0, "#43943c");
    set(x + dx - 1, y + dy, z, "#60b74c");
    set(x + dx + 1, y + dy, z, "#65bd50");
    set(x + dx, y + dy - 1, z + 1, "#7bcc5b");

    const tx = x + dx, ty = y + dy - 1;
    sphere(tx, ty, z - 2, 1, "#e34130");
    set(tx, ty - 1, z - 2, "#fa6240");
    set(tx, ty, z, "#328b38");
  }
}

// Small sign at the front corner, facing the viewer.
box(8, 3, 1, 9, 4, 13, "#946037");
box(6, 2, 12, 16, 3, 17, "#bd8750");
box(6, 1, 12, 16, 1, 12, "#e4ad6e");
box(6, 1, 17, 16, 1, 17, "#e4ad6e");
for (const x of [6, 16]) box(x, 1, 13, x, 1, 16, "#e4ad6e");
// A simple carrot emblem.
box(10, 1, 14, 12, 1, 15, "#f78b2b");
set(11, 1, 13, "#f78b2b");
set(11, 1, 16, "#55aa42");
set(10, 1, 17, "#55aa42");
set(12, 1, 17, "#55aa42");