fogón

← Casa completaObjeto 3Dfogon/alacena

Alacena

de fogonCC021824 bloques
AlacenaArrastrá para girarlo
// «Alacena» · gpt-6-sol (medium)
// A kitchen pantry cabinet: a tall cabinet in mint green painted wood with two glass doors on top showing plates and jars inside, two solid doors below with small brass knobs, and a crown molding on top.

const mint = "#a8d9be";
const mintLight = "#c6ead1";
const mintMid = "#91c9ad";
const mintDark = "#6fa98e";
const cream = "#fff0d5";
const honey = "#bd8855";
const brass = "#d9ad54";

function paintedBox(x0, y0, z0, x1, y1, z1, base, light, dark) {
  for (let x = x0; x <= x1; x++) {
    for (let y = y0; y <= y1; y++) {
      for (let z = z0; z <= z1; z++) {
        const n = rand();
        set(x, y, z, n < 0.055 ? light : n < 0.09 ? dark : base);
      }
    }
  }
}

// Feet and stepped plinth.
box(10, 17, 0, 14, 30, 2, mintDark);
box(33, 17, 0, 37, 30, 2, mintDark);
box(8, 14, 2, 39, 33, 3, mintDark);
box(7, 12, 3, 40, 34, 4, mintLight);
box(8, 12, 5, 39, 33, 5, mintDark);

// Cabinet sides, back, and interior.
paintedBox(7, 13, 6, 9, 34, 40, mint, mintLight, mintMid);
paintedBox(38, 13, 6, 40, 34, 40, mintMid, mint, mintDark);
paintedBox(10, 32, 6, 37, 34, 40, mint, mintLight, mintMid);
box(10, 30, 22, 37, 31, 39, "#ddcfaa");
box(10, 29, 23, 37, 29, 39, "#f2e2ba");
box(10, 14, 21, 37, 31, 22, honey);
box(10, 14, 40, 37, 33, 41, mintDark);

// Display shelves with honey-colored front edges.
box(11, 17, 23, 36, 30, 23, "#deb47d");
box(11, 15, 23, 36, 17, 24, honey);
box(11, 17, 32, 36, 30, 32, "#deb47d");
box(11, 15, 32, 36, 17, 33, honey);

// Plates facing forward through the glass.
function plate(cx, cz, rim) {
  for (let dx = -3; dx <= 3; dx++) {
    for (let dz = -3; dz <= 3; dz++) {
      const d = dx * dx + dz * dz;
      if (d <= 10) {
        const color = d >= 6 ? rim : d >= 3 ? cream : "#fff9e9";
        set(cx + dx, 21, cz + dz, color);
        if (d >= 6) {
          set(cx + dx, 22, cz + dz, "#dbcaa7");
        }
      }
    }
  }
  set(cx - 1, 20, cz + 1, "#ffffff");
}

plate(16, 28, "#98c4d1");
plate(18, 37, "#e6a49a");

// Pantry jars.
function jar(x, z, body, lid) {
  box(x, 21, z, x + 3, 24, z + 4, body);
  box(x, 20, z + 1, x + 3, 20, z + 3, "#eff9ef");
  box(x + 1, 20, z + 2, x + 2, 20, z + 3, "#fff7e6");
  box(x, 21, z + 5, x + 3, 24, z + 5, lid);
  box(x + 1, 20, z + 5, x + 2, 20, z + 5, lid);
}

jar(27, 25, "#d58563", brass);
jar(32, 25, "#e3b95c", "#a16e45");
jar(27, 34, "#a7c7aa", brass);
jar(32, 34, "#d99582", "#c7a465");

// Two solid lower doors with recessed panels.
for (const [left, right] of [[9, 23], [24, 38]]) {
  paintedBox(left, 11, 6, right, 13, 21, mint, mintLight, mintMid);
  box(left + 2, 10, 8, right - 2, 10, 19, mintDark);
  paintedBox(left + 3, 9, 9, right - 3, 9, 18, mintMid, mint, mintDark);
  box(left + 2, 9, 19, right - 2, 9, 19, mintLight);
  box(left + 2, 9, 8, right - 2, 9, 8, mintLight);
  box(left + 2, 9, 9, left + 2, 9, 18, mintLight);
  box(right - 2, 9, 9, right - 2, 9, 18, mintDark);
}
box(23, 9, 5, 24, 12, 21, mintLight);

// Brass lower-door knobs.
for (const x of [20, 27]) {
  box(x, 8, 12, x + 1, 9, 13, "#94713e");
  box(x, 7, 12, x + 1, 7, 13, brass);
  set(x, 7, 13, "#ffe19a");
}

// Upper glass-door frames leave the dishes visible.
for (const [left, right] of [[9, 23], [24, 38]]) {
  box(left, 11, 22, left + 2, 13, 40, mintLight);
  box(right - 2, 11, 22, right, 13, 40, mintMid);
  box(left, 11, 22, right, 13, 24, mint);
  box(left, 11, 39, right, 13, 40, mintLight);
  box(left + 2, 11, 31, right - 2, 12, 32, mint);
  box(left + 2, 12, 25, left + 2, 12, 30, "#d7eee4");
  box(right - 2, 12, 33, right - 2, 12, 38, "#d7eee4");
}

// Small pale-blue glass glints.
for (const [a, b] of [[12, 20], [27, 35]]) {
  line(a, 13, 37, a + 2, 13, 35, 0, "#d5f2ee");
  line(b - 2, 13, 28, b, 13, 26, 0, "#c8e9e6");
  set(a + 1, 13, 27, "#e7faf4");
  set(b - 1, 13, 36, "#e7faf4");
}
box(22, 10, 22, 25, 12, 40, mintLight);
box(23, 9, 22, 24, 10, 40, mint);

// Brass pulls on the glass doors.
for (const x of [20, 27]) {
  box(x, 8, 32, x + 1, 10, 33, "#a97c42");
  box(x, 7, 32, x + 1, 7, 33, brass);
  set(x, 7, 33, "#ffe3a0");
}

// Broad, stepped crown molding.
box(7, 12, 41, 40, 35, 41, mintLight);
box(6, 11, 42, 41, 35, 42, mintMid);
box(6, 10, 43, 41, 36, 43, mintLight);
box(7, 11, 44, 40, 35, 44, mint);
box(8, 10, 43, 39, 10, 43, "#e0f3d9");