fogón

← Whole house3D assetfogon/cama-marinera

Cama marinera

by fogonCC017401 blocks
Cama marineraDrag to turn it
// «Cama marinera» · gpt-6-sol (medium)
// A bunk bed: two stacked single beds in a sturdy light wood frame with four tall corner posts, the lower bed with a red blanket and the upper bed with a blue blanket, each with a white pillow at the back. A wooden ladder on the right side going up to the top bed, and a safety rail along the front of the upper bed.

const honey = "#d99a50";
const honeyLight = "#efb86c";
const honeyDark = "#a86b37";
const walnut = "#83512f";
const cream = "#fff7e9";
const creamShade = "#e8dfd2";

function wood(x0, y0, z0, x1, y1, z1) {
  box(x0, y0, z0, x1, y1, z1, honey);
  box(x0, y0, z1, x1, y1, z1, honeyLight);
  box(x0, y0, z0, x1, y0, z0, honeyDark);
}

function bed(level, blanket, blanketLight, blanketDark) {
  // Thick wooden platform and its visible front apron.
  wood(8, 12, level, 39, 36, level + 2);
  box(9, 11, level, 38, 12, level + 2, honeyDark);
  box(10, 11, level + 2, 37, 11, level + 2, honeyLight);

  // Cream mattress with softened, stepped corners.
  box(10, 14, level + 3, 37, 34, level + 4, creamShade);
  box(11, 13, level + 4, 36, 34, level + 5, cream);
  box(12, 14, level + 5, 35, 33, level + 5, "#ffffff");

  // One plump pillow at the back.
  box(13, 28, level + 6, 31, 34, level + 7, creamShade);
  box(14, 28, level + 7, 30, 33, level + 8, "#ffffff");
  box(16, 29, level + 8, 28, 32, level + 8, "#fffdf5");

  // Blanket tucked across the front and middle of the mattress.
  box(11, 14, level + 6, 36, 27, level + 7, blanket);
  box(12, 15, level + 8, 35, 26, level + 8, blanketLight);
  box(11, 14, level + 7, 36, 15, level + 8, blanketDark);
  box(12, 17, level + 8, 35, 17, level + 8, blanket);
  box(13, 26, level + 8, 34, 27, level + 8, blanketDark);

  // A few gentle quilt creases.
  for (let x = 17; x <= 31; x += 7) {
    box(x, 20, level + 8, x + 2, 20, level + 8, blanket);
  }
}

bed(8, "#d95353", "#ee7771", "#ad3d43");
bed(26, "#65a9dc", "#8cc9ed", "#477fb4");

// Four tall, chunky corner posts.
for (const x of [5, 39]) {
  for (const y of [10, 35]) {
    box(x, y, 0, x + 3, y + 3, 39, honey);
    box(x, y, 1, x + 3, y, 38, honeyDark);
    box(x, y, 39, x + 3, y + 3, 40, honeyLight);
    box(x + 1, y + 1, 41, x + 2, y + 2, 41, walnut);
    box(x, y, 3, x + 3, y + 3, 4, honeyLight);
  }
}

// Back headboards, visible above each pillow.
for (const z of [16, 34]) {
  wood(9, 35, z, 38, 37, z + 3);
  box(12, 34, z + 1, 35, 34, z + 1, honeyLight);
}

// Sturdy side rails and little walnut joinery accents.
for (const z of [8, 26]) {
  wood(5, 13, z, 8, 35, z + 3);
  wood(39, 13, z, 42, 35, z + 3);
  for (const x of [6, 40]) {
    for (const y of [15, 32]) set(x, y, z + 1, walnut);
  }
}

// Upper bunk safety rail: open at the right for the ladder.
wood(9, 10, 35, 33, 12, 37);
for (const x of [12, 21, 30]) {
  wood(x, 10, 29, x + 2, 12, 35);
}
box(9, 10, 38, 33, 11, 38, honeyLight);

// A short rail along the exposed upper left edge.
wood(5, 15, 35, 7, 34, 37);
for (const y of [18, 27]) wood(5, y, 29, 7, y + 2, 35);

// Front-right ladder, reaching the opening in the safety rail.
wood(34, 7, 0, 36, 9, 35);
wood(42, 7, 0, 44, 9, 35);
for (const z of [5, 11, 17, 23, 29, 34]) {
  box(37, 7, z, 41, 9, z + 1, honeyLight);
  box(37, 7, z, 41, 7, z, honeyDark);
}
box(34, 7, 35, 36, 9, 36, honeyLight);
box(42, 7, 35, 44, 9, 36, honeyLight);

// Fine wood-grain flecks, kept subtle on the broad frame pieces.
for (let i = 0; i < 48; i++) {
  const x = 10 + Math.floor(rand() * 28);
  const z = rand() < 0.5 ? 9 : 27;
  set(x, 12, z, rand() < 0.5 ? honeyLight : honeyDark);
}