fogón

← Casa completaObjeto 3Dfogon/radio-antigua

Radio antigua

de fogonCC026086 bloques
Radio antiguaArrastrá para girarlo
// «Radio antigua» · gpt-6-sol (medium)
// A vintage tabletop radio: an arched wooden case with a big fabric speaker grille in cream with vertical stripes, a small golden tuning dial window and two round knobs at the bottom.

// Arched honey-wood case
const top = x => Math.round(27 + 10 * Math.sqrt(Math.max(0, 1 - ((x - 24) / 19) ** 2)));
const wood = ["#ad6938", "#b9763f", "#c38349", "#d09154"];
const walnut = "#744527";
const honey = "#e2aa65";

for (let x = 6; x <= 42; x++) {
  for (let y = 16; y <= 32; y++) {
    for (let z = 0; z <= top(x); z++) {
      let shade = z >= top(x) - 2 ? 3 : z < 4 ? 0 : y < 19 ? 2 : 1;
      if (rand() < 0.08) shade = Math.max(0, shade - 1);
      set(x, y, z, wood[shade]);
    }
  }
}

// Rounded-looking dark plinth and its honey highlight
box(8, 15, 0, 40, 33, 2, walnut);
box(7, 16, 1, 41, 32, 2, "#94582f");
box(9, 14, 2, 39, 15, 2, honey);

// Front wooden surround
for (let x = 7; x <= 41; x++) {
  for (let z = 3; z <= top(x) - 1; z++) {
    set(x, 15, z, z >= top(x) - 2 ? honey : wood[rand() < 0.12 ? 1 : 2]);
  }
}

// Dark recessed border around the arched speaker
for (let x = 9; x <= 39; x++) {
  for (let z = 11; z <= top(x) - 2; z++) {
    set(x, 14, z, "#754829");
  }
}

// Cream fabric grille, gently following the arch
for (let x = 10; x <= 38; x++) {
  for (let z = 12; z <= top(x) - 4; z++) {
    let color = "#f5e8ca";
    if (x % 4 === 0) color = "#d5bd94";
    else if (x % 4 === 1) color = "#e8d8b7";
    else if ((x + z) % 5 === 0) color = "#fff0d3";
    set(x, 13, z, color);
  }
}

// Carved wooden edges and the bright curved crown
for (let x = 8; x <= 40; x++) {
  set(x, 13, 10, "#e5ac69");
  set(x, 13, top(x) - 2, "#e5ac69");
  if (x >= 10 && x <= 38) set(x, 12, 11, "#b78050");
}
for (let z = 12; z <= top(9) - 2; z++) set(9, 13, z, "#d79b5d");
for (let z = 12; z <= top(39) - 2; z++) set(39, 13, z, "#d79b5d");

// Walnut control panel
box(9, 14, 3, 39, 14, 9, "#804b2d");
box(10, 13, 9, 38, 13, 9, "#bb7a43");
box(10, 13, 3, 38, 13, 3, "#a86a39");

// Small golden tuning window
box(19, 12, 4, 29, 12, 8, "#d39843");
box(20, 11, 5, 28, 11, 7, "#f9dc8a");
box(21, 10, 6, 27, 10, 6, "#b97835");
for (let x = 21; x <= 27; x += 2) set(x, 9, 7, "#fff1bd");
box(24, 9, 5, 24, 9, 7, "#70432d");

// Two chunky round knobs with brass rims and pale highlights
for (const x of [13, 35]) {
  cylinder(x, 11, 6, 3, 3, "#5d3928", "y");
  cylinder(x, 10, 6, 2.5, 2, "#dfaa58", "y");
  cylinder(x, 9, 6, 1.7, 2, "#976039", "y");
  set(x - 1, 8, 7, "#f5ce81");
  set(x, 8, 8, "#f5ce81");
}

// Tiny brass feet
box(10, 17, 0, 14, 20, 0, "#c18b4e");
box(34, 17, 0, 38, 20, 0, "#c18b4e");
box(10, 28, 0, 14, 31, 0, "#a4703c");
box(34, 28, 0, 38, 31, 0, "#a4703c");