fogón

← CiudadObjeto 3Dfogon/almacen-de-barrio

Almacén de barrio

de fogonCC019426 bloques
Almacén de barrioArrastrá para girarlo
// «Almacén de barrio» · gpt-6-sol (medium)
// An old-fashioned neighborhood grocery store (almacén): a one-story corner shop with a green wooden facade, a big front window (-y) with jars, cans and salamis visible, a wooden door, a hand-painted sign on top reading ALMACEN, a folded metal shutter above the window and a crate of fruit and a soda siphon box on the sidewalk.

// Sidewalk and a little strip of street.
box(3, 3, 0, 44, 15, 1, "#d7d1c5");
box(3, 2, 0, 44, 3, 0, "#aaa9a3");
box(3, 0, 0, 44, 1, 0, "#777b7c");
for (let x = 5; x <= 43; x += 8) {
  box(x, 3, 1, x, 14, 1, "#c0bab0");
}
box(3, 15, 0, 44, 16, 1, "#bbb6ab");

// Shop floor and warm brick side walls.
box(7, 15, 2, 41, 39, 3, "#a67b60");
box(7, 16, 4, 9, 39, 33, "#b86d56");
box(39, 16, 4, 41, 39, 33, "#b86d56");
box(9, 37, 4, 39, 39, 33, "#ad654f");
for (let y = 17; y < 39; y += 3) {
  for (let z = 5; z < 33; z += 3) {
    if (rand() > 0.23) set(6, y, z, "#d08a6d");
    if (rand() > 0.35) set(42, y, z + 1, "#d08a6d");
  }
}
box(7, 15, 4, 9, 39, 5, "#d5c8ad");
box(39, 15, 4, 41, 39, 5, "#d5c8ad");

// Interior, deliberately visible through the open display window.
box(10, 35, 5, 38, 36, 25, "#ead5ac");
box(11, 25, 9, 28, 35, 10, "#714d34");
box(11, 25, 16, 28, 35, 17, "#805638");
for (let x = 12; x <= 27; x += 3) {
  const colors = ["#f2a955", "#7eaa76", "#e8c771", "#cc7864"];
  box(x, 34, 11, x + 1, 34, 15, colors[(x / 3) % 4 | 0]);
  box(x, 34, 18, x + 1, 34, 22, colors[((x / 3) + 1) % 4 | 0]);
}
box(10, 18, 10, 28, 21, 10, "#704b32");
box(10, 18, 16, 28, 21, 16, "#805536");
box(10, 18, 22, 28, 20, 22, "#805536");
box(10, 17, 11, 28, 17, 11, "#d6a771");
box(10, 17, 17, 28, 17, 17, "#d6a771");

// Jars, tins, and hand-labeled goods on the front shelves.
for (let x = 11; x <= 20; x += 3) {
  const c = ["#d78956", "#a6b96c", "#e5b15e", "#be7860"][(x - 11) / 3];
  box(x, 18, 12, x + 1, 19, 15, c);
  box(x, 18, 15, x + 1, 19, 15, "#eee0ba");
  set(x, 17, 13, "#f3e6bf");
}
for (let x = 11; x <= 20; x += 3) {
  box(x, 18, 18, x + 1, 19, 21, "#92aaab");
  box(x, 17, 19, x + 1, 17, 20, x % 2 ? "#e8c77d" : "#d87f62");
  box(x, 18, 21, x + 1, 19, 21, "#d8d2bd");
}
for (let x = 23; x <= 27; x += 2) {
  set(x, 18, 22, "#e1b67c");
  box(x, 18, 17, x, 18, 21, x === 25 ? "#aa5140" : "#bf664b");
  set(x, 17, 18, "#e1a078");
}

// Green wooden storefront: solid piers, sill, and lintel.
box(8, 13, 3, 40, 16, 8, "#39765b");
box(8, 13, 9, 10, 16, 25, "#3c8060");
box(28, 13, 9, 30, 16, 25, "#326f54");
box(39, 13, 4, 40, 16, 25, "#326f54");
box(8, 13, 24, 40, 16, 27, "#39765b");
for (let x of [9, 29, 39]) {
  box(x, 12, 9, x, 12, 24, "#65a27c");
  for (let z = 11; z < 24; z += 5) set(x, 11, z, "#438a67");
}
box(10, 12, 9, 28, 13, 10, "#e0bd7b");
box(10, 11, 10, 28, 11, 10, "#5b966f");
box(10, 12, 22, 28, 13, 23, "#71a481");
box(11, 12, 21, 27, 12, 21, "#d4e6d1");
box(18, 12, 10, 19, 13, 22, "#488567");
box(18, 11, 12, 18, 11, 19, "#9dc4ad");

// Reflections at the edges leave the merchandise readable.
for (let z = 12; z <= 19; z++) {
  if (z % 3 !== 0) set(11, 11, z, "#b8dbd3");
}
set(26, 11, 20, "#c4e1d6");
set(27, 11, 19, "#c4e1d6");

// Old wooden door with inset panels and a little glazed transom.
box(31, 12, 4, 38, 14, 23, "#865536");
box(31, 11, 4, 31, 11, 24, "#b78955");
box(38, 11, 4, 38, 11, 24, "#b78955");
box(31, 11, 23, 38, 11, 24, "#b78955");
box(33, 11, 6, 36, 11, 12, "#623f2c");
box(34, 10, 7, 35, 10, 11, "#9a6741");
box(33, 11, 14, 36, 11, 20, "#3c655d");
box(34, 10, 15, 35, 10, 19, "#91b4a4");
box(33, 10, 21, 36, 10, 21, "#d1a56b");
set(37, 10, 13, "#f2cd70");
set(37, 9, 13, "#d69d4c");
box(31, 10, 3, 38, 12, 3, "#c1a579");

// Folded, rolled-up metal shutter above the display.
box(10, 10, 23, 28, 12, 26, "#9aaba5");
for (let z = 23; z <= 26; z++) {
  box(10, 9, z, 28, 9, z, z % 2 ? "#d2d8ca" : "#aabbb1");
}
box(9, 9, 22, 10, 12, 26, "#47765e");
box(28, 9, 22, 29, 12, 26, "#47765e");

// Roof, cornice, and chunky parapet.
box(7, 14, 34, 41, 39, 35, "#b5aa93");
box(7, 14, 36, 41, 16, 36, "#e2d5b3");
box(7, 17, 36, 9, 39, 36, "#d4c6aa");
box(39, 17, 36, 41, 39, 36, "#d4c6aa");
box(9, 37, 36, 39, 39, 36, "#d4c6aa");

// Hand-painted ALMACEN sign and cheerful fileteado trim.
box(8, 10, 27, 40, 13, 35, "#245d49");
box(8, 9, 27, 40, 9, 27, "#dda963");
box(8, 9, 35, 40, 9, 35, "#dda963");
box(8, 9, 28, 8, 9, 34, "#d98b65");
box(40, 9, 28, 40, 9, 34, "#d98b65");
const glyphs = {
  A: ["010", "101", "111", "101", "101"],
  L: ["100", "100", "100", "100", "111"],
  M: ["101", "111", "111", "101", "101"],
  C: ["011", "100", "100", "100", "011"],
  E: ["111", "100", "110", "100", "111"],
  N: ["101", "111", "111", "111", "101"]
};
const word = "ALMACEN";
for (let i = 0; i < word.length; i++) {
  const rows = glyphs[word[i]];
  for (let row = 0; row < 5; row++) {
    for (let col = 0; col < 3; col++) {
      if (rows[row][col] === "1") set(11 + i * 4 + col, 8, 33 - row, "#f4dfa4");
    }
  }
}
for (let x of [9, 39]) {
  set(x, 8, 30, "#e5a469");
  set(x, 8, 32, "#e5a469");
}
for (let x = 11; x <= 37; x += 2) set(x, 8, 27, "#e2ad69");

// Fruit crate on the sidewalk.
box(8, 5, 2, 16, 11, 3, "#98704a");
box(8, 5, 4, 16, 5, 5, "#b98752");
box(8, 11, 4, 16, 11, 5, "#b98752");
box(8, 6, 4, 8, 10, 5, "#b98752");
box(16, 6, 4, 16, 10, 5, "#b98752");
for (let x of [9, 12, 15]) {
  box(x, 4, 3, x, 4, 6, "#895d39");
  set(x, 4, 5, "#d19c5e");
}
for (let x = 9; x <= 15; x += 2) {
  for (let y = 7; y <= 10; y += 2) {
    const c = (x + y) % 3 === 0 ? "#e6c14f" : "#e18748";
    sphere(x, y, 5, 1, c);
    set(x, y, 7, "#579360");
  }
}

// Soda siphon box: pale timber dividers and vivid blue bottles.
box(20, 5, 2, 28, 11, 4, "#b58c60");
box(20, 5, 5, 28, 5, 6, "#d5af75");
box(20, 11, 5, 28, 11, 6, "#d5af75");
box(20, 6, 5, 20, 10, 6, "#d5af75");
box(28, 6, 5, 28, 10, 6, "#d5af75");
for (let x of [22, 24, 26]) {
  box(x, 8, 5, x, 9, 8, x === 24 ? "#43a8af" : "#68c0ba");
  box(x, 8, 9, x, 9, 10, "#9cded3");
  set(x, 8, 11, "#d9d9c2");
  set(x + 1, 8, 10, "#b4b9a8");
  set(x, 7, 7, "#b7e4d9");
}
box(20, 4, 3, 28, 4, 4, "#a77d53");
for (let x of [21, 24, 27]) set(x, 3, 4, "#dfb776");