fogón

← Basics3D assetfogon/ropero

Ropero

by fogonCC036781 blocks
RoperoDrag to turn it
// «Ropero» · gpt-6-sol (medium)
// Wardrobe («Ropero»).

const dark = "#48291e";
const shadow = "#553020";
const walnut = "#71432b";
const wood = "#895334";
const warm = "#a6673e";
const highlight = "#bf8050";
const brass = "#c8a451";
const cream = "#d9cc9e";

// Solid cabinet and recessed side.
box(11, 13, 4, 37, 38, 35, shadow);
box(10, 15, 6, 10, 36, 33, "#673b27");
box(9, 14, 7, 9, 37, 33, walnut);

// Long, dark-grained panel on the visible left side.
box(9, 18, 9, 9, 34, 31, "#704128");
for (let i = 0; i < 115; i++) {
  const y = 17 + Math.floor(rand() * 20);
  const z = 9 + Math.floor(rand() * 24);
  set(8, y, z, rand() < 0.55 ? "#59311f" : "#865032");
}
for (const y of [17, 34]) {
  box(8, y, 7, 9, y + 1, 33, "#4c2a1d");
  box(8, y + 2, 10, 8, y + 2, 31, "#9a5d38");
}

// Low plinth and stout corner posts.
box(9, 11, 3, 39, 39, 5, "#603722");
box(9, 11, 5, 39, 39, 6, "#9b6039");
box(10, 12, 2, 37, 37, 3, dark);
for (const x of [10, 37]) {
  for (const y of [11, 37]) {
    box(x, y, 0, x + 2, y + 2, 35, "#643921");
    box(x, y, 3, x, y + 1, 33, "#88502e");
    box(x + 2, y, 2, x + 2, y, 34, dark);
  }
}

// Front frame, with a deep vertical division between the doors.
box(13, 10, 7, 36, 11, 34, "#633a26");
box(14, 9, 8, 24, 9, 33, "#7a482c");
box(26, 9, 8, 36, 9, 33, "#714029");
box(24, 8, 7, 26, 10, 35, "#43281e");
box(25, 8, 8, 25, 8, 33, "#9b5e36");
box(13, 8, 7, 15, 11, 35, "#925733");
box(13, 8, 8, 13, 8, 34, "#b57446");
box(36, 9, 7, 38, 11, 35, "#613923");
box(37, 9, 9, 37, 9, 34, "#95603b");

// Raised door rails and stiles.
for (const x of [15, 23, 27, 35]) {
  box(x, 8, 9, x, 8, 32, x === 15 || x === 27 ? "#aa6b40" : "#512d20");
}
for (const z of [8, 16, 32]) {
  box(15, 8, z, 23, 8, z + 1, z === 16 ? "#a5653a" : "#593320");
  box(27, 8, z, 35, 8, z + 1, z === 16 ? "#9a5c34" : "#4c2b1e");
}

// Narrow, cream-framed inset in the left door.
box(17, 7, 19, 22, 7, 29, "#614b34");
box(18, 6, 20, 21, 6, 28, cream);
box(19, 5, 21, 20, 5, 27, "#a5aaa0");
box(19, 4, 22, 19, 4, 27, "#e9e3bd");
box(20, 4, 21, 20, 4, 25, "#7f9896");
box(17, 5, 19, 17, 5, 29, "#ead8a9");
box(18, 5, 29, 21, 5, 29, "#eee0b2");
box(22, 5, 20, 22, 5, 28, "#b99763");

// Wider blue-gray mirror in the right door.
box(28, 7, 18, 34, 7, 30, "#493d30");
box(29, 6, 19, 33, 6, 29, "#d4c89b");
box(30, 5, 20, 32, 5, 28, "#91a9a8");
box(30, 4, 22, 30, 4, 28, "#d7dfd4");
box(31, 4, 25, 31, 4, 27, "#e8e8d8");
box(32, 4, 21, 32, 4, 25, "#708e91");
box(29, 5, 19, 33, 5, 19, "#b89757");
box(29, 5, 29, 33, 5, 29, "#ede0b0");
box(28, 5, 19, 28, 5, 29, "#f0deb0");

// Lower carved door panels.
box(17, 7, 10, 22, 7, 15, "#4b3021");
box(18, 6, 11, 21, 6, 14, "#8b5532");
box(18, 5, 11, 21, 5, 11, "#aa6b3d");
box(28, 7, 9, 34, 7, 16, "#4d2d20");
box(29, 6, 10, 33, 6, 15, "#79462c");
box(29, 5, 15, 33, 5, 15, "#a46a3a");
box(29, 5, 10, 33, 5, 10, "#a76a3b");

// Small projecting brass pulls and keyplates.
box(22, 5, 20, 23, 5, 23, "#af8845");
box(23, 4, 21, 24, 4, 22, "#e2c675");
set(24, 3, 21, "#f1dc8e");
box(27, 5, 17, 28, 5, 20, "#98723b");
box(27, 4, 18, 29, 4, 19, brass);
set(29, 3, 18, "#f2d983");
box(19, 4, 12, 21, 4, 12, "#e3c46d");

// Overhanging, layered crown.
box(7, 8, 35, 41, 41, 36, "#613621");
box(7, 8, 37, 41, 41, 38, "#a36a40");
box(8, 9, 38, 40, 40, 39, "#71422a");
box(8, 8, 36, 41, 8, 37, "#b97b49");
box(8, 9, 35, 41, 9, 35, dark);
box(7, 10, 36, 7, 40, 37, "#8b5433");
box(8, 40, 36, 40, 41, 37, "#4d2c20");

// Dark recessed top and its raised central wooden panel.
box(10, 11, 40, 38, 38, 40, "#573323");
box(12, 13, 40, 25, 36, 40, "#70402a");
box(13, 14, 41, 24, 35, 41, "#82482e");
box(19, 16, 41, 36, 35, 41, "#4b2b20");
box(20, 17, 42, 35, 34, 42, "#a56840");
box(21, 18, 42, 34, 33, 42, "#aa7048");
box(20, 17, 42, 35, 17, 42, "#c18453");
box(20, 17, 42, 20, 34, 42, "#be7e4e");
box(35, 18, 42, 35, 34, 42, "#714229");

// Restrained flecks of wood grain on the top.
for (let i = 0; i < 65; i++) {
  const x = 21 + Math.floor(rand() * 14);
  const y = 19 + Math.floor(rand() * 14);
  set(x, y, 43, rand() < 0.6 ? "#835033" : "#c48755");
}

// Pegs and tiny joints along the front cornice.
for (let x = 11; x <= 37; x += 5) {
  box(x, 7, 36, x + 1, 7, 37, "#bd8050");
  set(x + 1, 7, 35, "#563020");
}
box(25, 7, 34, 29, 7, 35, "#5d3525");
box(26, 6, 35, 27, 6, 36, "#b37a45");
set(27, 5, 35, brass);