fogón

← Whole house3D assetfogon/cocina-con-horno

Cocina con horno

by fogonCC036736 blocks
Cocina con hornoDrag to turn it
// «Cocina con horno» · gpt-6-sol (medium)
// A kitchen stove: a white box with four black gas burners on top with dark grey grates, a row of round knobs on the front panel, and a big oven door below with a dark glass window and a chrome bar handle. A red pot on one burner.

const white = "#f5f3ee";
const cream = "#fffdf7";
const shadow = "#d5d7d5";
const chrome = "#c5d0d2";
const dark = "#30383e";

// Feet and the solid stove body.
for (const x of [10, 35]) {
  for (const y of [13, 34]) box(x, y, 0, x + 3, y + 3, 3, "#555b5c");
}
box(7, 10, 3, 40, 39, 31, white);
box(7, 10, 3, 7, 39, 30, "#e3e5e1");
box(8, 10, 4, 39, 10, 30, "#e9e9e5");
box(8, 39, 4, 39, 39, 30, shadow);
box(8, 10, 3, 39, 39, 4, "#d9dcda");

// Gentle speckles on the enamel sides.
for (let y = 12; y < 39; y++) {
  for (let z = 7; z < 29; z++) {
    if (rand() < 0.025) set(7, y, z, "#eceeea");
  }
}

// Chunky cooktop with a light rim and a shallow inset surface.
box(6, 9, 31, 41, 40, 32, cream);
box(7, 10, 33, 40, 39, 33, "#dce0df");
box(8, 11, 33, 39, 38, 33, "#f4f5f1");
box(6, 9, 31, 41, 9, 31, "#cbd1d1");
box(7, 39, 34, 40, 40, 35, "#e2e4e0");

// Four burners and their sturdy square grates.
const burners = [
  [15, 18], [32, 18],
  [15, 31], [32, 31]
];
for (const [x, y] of burners) {
  cylinder(x, y, 34, 4, 1, "#292f32");
  cylinder(x, y, 35, 2, 1, "#50585b");
  cylinder(x, y, 36, 1, 1, "#242a2d");

  const grate = "#555d60";
  line(x - 6, y - 5, 35, x + 6, y - 5, 35, 0, grate);
  line(x - 6, y + 5, 35, x + 6, y + 5, 35, 0, grate);
  line(x - 5, y - 6, 35, x - 5, y + 6, 35, 0, grate);
  line(x + 5, y - 6, 35, x + 5, y + 6, 35, 0, grate);
  for (const dx of [-5, 5]) {
    line(x + dx, y, 35, x + Math.sign(dx) * 2, y, 35, 0, "#687174");
  }
}

// Front control panel.
box(7, 8, 24, 40, 9, 30, "#e8eae7");
box(7, 8, 30, 40, 8, 30, cream);
box(7, 8, 24, 40, 8, 24, "#c8cecc");
for (const x of [11, 19, 29, 37]) {
  cylinder(x, 6, 27, 2, 2, "#aeb8b9", "y");
  sphere(x, 5, 27, 2, "#edf0ec");
  set(x, 3, 28, "#707b7b"); // Pointer on the knob.
  set(x, 8, 30, "#858e8e"); // Small setting mark.
}

// Oven door, with a thick white frame and dark glass.
box(8, 7, 3, 39, 8, 23, "#e3e6e3");
box(9, 6, 5, 38, 6, 22, cream);
box(10, 5, 7, 37, 5, 20, chrome);
box(12, 4, 9, 35, 5, 18, "#27343c");
box(13, 3, 10, 34, 3, 17, "#344750");
box(14, 2, 16, 21, 2, 17, "#698087");
box(15, 2, 14, 17, 2, 15, "#82989a");
box(29, 2, 10, 32, 2, 10, "#495d65");
box(10, 5, 7, 37, 5, 7, "#aeb8b9");
box(10, 5, 19, 37, 5, 20, "#b7c1c1");

// Chrome bar handle and its chunky mounts.
box(13, 4, 20, 15, 6, 22, "#909e9f");
box(32, 4, 20, 34, 6, 22, "#909e9f");
line(13, 3, 22, 34, 3, 22, 1, chrome);
line(14, 2, 23, 33, 2, 23, 0, "#f0f5f2");

// Flickering blue flames beneath the back-left pot.
part("blueFlames", [15, 31, 36]);
for (const [dx, dy] of [
  [-3, 0], [3, 0], [0, -3], [0, 3],
  [-2, -2], [2, -2], [-2, 2], [2, 2]
]) {
  set(15 + dx, 31 + dy, 36, "#278dff");
  set(15 + dx, 31 + dy, 37, "#72e8ff");
  if (Math.abs(dx) + Math.abs(dy) === 3)
    set(15 + dx, 31 + dy, 38, "#a4f5ff");
}
animate("blueFlames", {
  type: "colors",
  palette: ["#2179ef", "#319dff", "#66d8ff", "#a7f4ff"],
  pattern: "flicker",
  glow: 0.8
});
part("body");

// A cheerful red pot with a lid and two easy-to-read handles.
cylinder(15, 31, 39, 5, 4, "#d94b45");
cylinder(15, 31, 38, 4, 1, "#a93737");
for (let z = 39; z <= 42; z++) {
  for (let y = 27; y <= 34; y++) {
    set(11, y, z, "#ed6860");
  }
}
line(9, 31, 41, 11, 31, 41, 1, "#963d3a");
line(19, 31, 41, 22, 31, 41, 1, "#963d3a");
box(8, 29, 40, 9, 33, 41, "#b84540");
box(22, 29, 40, 23, 33, 41, "#b84540");

cylinder(15, 31, 43, 5, 1, "#a93938");
cylinder(15, 31, 44, 4, 1, "#e45a50");
line(12, 28, 44, 16, 27, 44, 0, "#f48578");
cylinder(15, 31, 45, 1, 1, dark);