fogón

← Medieval3D assetfogon/trono

Trono

by fogonCC015170 blocks
TronoDrag to turn it
// «Trono» · gpt-6-sol (medium)
// A royal throne on a two-step stone dais covered with a red carpet: a tall straight back much higher than a person, made of gold-trimmed dark wood with a pointed top and a small gold crown ornament, a deep red velvet seat cushion and backrest panel, thick armrests ending in round gold knobs, and short carved legs.

// Two-step stone dais, with individual warm-grey blocks and a little moss.
const stone = ["#928d80", "#a39e90", "#b0a99a", "#77776e"];
for (let z = 0; z <= 2; z++)
  for (let x = 6; x <= 41; x++)
    for (let y = 6; y <= 40; y++)
      set(x, y, z, rand() < 0.025 ? "#707b63" : stone[Math.floor(rand() * stone.length)]);

for (let z = 3; z <= 5; z++)
  for (let x = 9; x <= 38; x++)
    for (let y = 10; y <= 37; y++)
      set(x, y, z, rand() < 0.022 ? "#737e68" : stone[Math.floor(rand() * 3)]);

// Darker block joints on the exposed step fronts.
for (let x = 7; x <= 40; x += 6) {
  box(x, 6, 0, x, 6, 1, "#77766d");
  if (x >= 9 && x <= 38) box(x, 10, 3, x, 10, 4, "#77766d");
}
box(6, 6, 2, 41, 6, 2, "#c0b8a6");
box(9, 10, 5, 38, 10, 5, "#c0b8a6");

// Carpet runs over both steps and down their risers.
box(19, 6, 3, 28, 9, 3, "#951e2e");
box(19, 6, 1, 28, 6, 2, "#851b2a");
box(19, 9, 3, 28, 9, 5, "#851b2a");
box(19, 10, 6, 28, 29, 6, "#9f2031");
box(20, 7, 4, 27, 8, 4, "#ae2a39");
box(20, 11, 7, 27, 28, 7, "#ad2938");
for (const x of [19, 28]) {
  box(x, 6, 4, x, 9, 4, "#d4a449");
  box(x, 9, 3, x, 9, 5, "#d4a449");
  box(x, 10, 7, x, 29, 7, "#d4a449");
}
for (let y = 13; y <= 27; y += 5) {
  set(22, y, 7, "#cf3945");
  set(25, y + 2, 7, "#cf3945");
}

// Four short carved legs.
for (const x of [14, 31]) for (const y of [21, 30]) {
  box(x, y, 6, x + 4, y + 4, 12, "#35221b");
  box(x + 1, y, 7, x + 3, y, 10, "#563526");
  box(x + 1, y - 1, 6, x + 3, y + 3, 7, "#452a20");
  box(x, y, 10, x + 4, y + 4, 10, "#78502d");
  set(x + 2, y - 1, 9, "#c6953d");
}

// Solid timber seat and its plush, rounded-looking velvet cushion.
box(13, 19, 12, 36, 35, 15, "#39251d");
box(13, 19, 13, 36, 19, 14, "#926433");
box(15, 20, 16, 34, 33, 16, "#741a29");
box(16, 21, 17, 33, 32, 17, "#ae293c");
box(17, 22, 18, 32, 31, 18, "#bc3445");
box(16, 20, 16, 33, 20, 16, "#d1a34d");

// Towering, thick, straight timber back.
box(13, 31, 16, 36, 36, 38, "#34231e");
box(14, 30, 17, 35, 30, 38, "#513126");
box(13, 31, 18, 13, 36, 38, "#251c1a");
box(36, 31, 18, 36, 36, 38, "#251c1a");
for (let z = 19; z <= 35; z += 5)
  box(14, 30, z, 35, 30, z, "#63402b");

// Steep pointed top, solid all the way through.
for (let z = 39; z <= 42; z++) {
  const inset = (z - 38) * 2;
  box(13 + inset, 31, z, 36 - inset, 36, z, "#39251e");
  box(13 + inset, 30, z, 36 - inset, 30, z, "#67422a");
  set(13 + inset, 29, z, "#d7a74c");
  set(36 - inset, 29, z, "#d7a74c");
}

// Wide gold frame enclosing the red upholstered backrest.
box(16, 29, 20, 33, 29, 21, "#b78032");
box(16, 29, 36, 33, 29, 37, "#d8a748");
box(16, 29, 22, 17, 29, 35, "#d5a047");
box(32, 29, 22, 33, 29, 35, "#d5a047");
box(18, 29, 22, 31, 29, 35, "#751c2b");
box(19, 28, 23, 30, 28, 34, "#9f2637");
box(20, 28, 24, 29, 28, 33, "#aa2a3c");
box(18, 28, 22, 31, 28, 22, "#64202a");
for (const x of [13, 36]) {
  box(x, 29, 18, x, 29, 38, "#bd873a");
  for (let z = 20; z <= 37; z += 4) set(x, 28, z, "#f0c66a");
}

// A small golden heraldic flourish on the velvet.
box(24, 27, 27, 25, 27, 31, "#daa849");
box(22, 27, 30, 27, 27, 30, "#e5b95e");
set(22, 27, 31, "#e5b95e");
set(27, 27, 31, "#e5b95e");
box(23, 27, 26, 26, 27, 26, "#b47d32");

// Heavy armrests, carved supports, and round gold knobs at their front ends.
for (const [a, b, post] of [[12, 17, 14], [32, 37, 34]]) {
  box(post, 22, 15, post + 2, 25, 20, "#4a2d21");
  box(post, 29, 15, post + 2, 32, 20, "#4a2d21");
  box(a, 18, 19, b, 34, 21, "#3c271e");
  box(a, 18, 22, b, 34, 22, "#704629");
  box(a, 19, 23, b, 32, 23, "#a77737");
  box(a, 18, 19, b, 18, 21, "#5c3726");
  for (let y = 22; y <= 32; y += 5)
    set(Math.floor((a + b) / 2), y, 24, "#e4b858");
  sphere(Math.floor((a + b) / 2), 18, 22, 2, "#cd9840");
  set(Math.floor((a + b) / 2), 16, 23, "#f2cb6c");
}

// Gold edging follows the peak; a little crown sits on its tip.
box(22, 29, 42, 27, 29, 42, "#d7a74b");
box(22, 30, 43, 27, 32, 43, "#c08a36");
box(22, 29, 44, 27, 29, 44, "#ecc263");
for (const x of [22, 24, 25, 27]) {
  set(x, 29, 45, "#edc66a");
  set(x, 30, 45, "#d5a249");
}
set(24, 28, 44, "#ae2836");
set(25, 28, 44, "#ae2836");