fogón

← Ancient and prehistory3D assetfogon/estatua-griega

Estatua griega

by fogonCC08425 blocks
Estatua griegaDrag to turn it
// «Estatua griega» · gpt-6-sol (medium)
// A white marble statue of a Greek figure in a draped toga standing in a relaxed pose with one arm raised holding a laurel wreath, on a square grey pedestal. Smooth marble in white and pale grey shades with soft shadows in the folds.

// Grey stone pedestal, broad enough to anchor the statue.
box(10, 12, 0, 38, 36, 2, "#777b80");
box(11, 13, 3, 37, 35, 4, "#999da1");
box(10, 12, 5, 38, 36, 7, "#b5b7b8");
box(11, 13, 7, 37, 35, 7, "#d0d0cb");

// Crisp mouldings and a simple Greek-inspired border on the front.
box(10, 11, 1, 38, 11, 1, "#a4a6a6");
box(10, 11, 5, 38, 11, 5, "#e0ded6");
for (let x = 13; x <= 35; x += 4) {
  box(x, 12, 3, x + 2, 12, 3, "#d1d0c9");
  set(x, 12, 4, "#d1d0c9");
  set(x + 2, 12, 2, "#646a70");
}

// Feet emerging beneath the drapery.
ellipsoid(20, 22, 9, 2, 3, 2, "#d8d6cf");
ellipsoid(27, 20, 9, 2, 3, 2, "#e8e5dd");
ellipsoid(20, 19, 8, 2, 3, 1, "#f2f0e9");
ellipsoid(27, 17, 8, 2, 3, 1, "#f2f0e9");

// Full, solid marble skirt and torso.
ellipsoid(23, 24, 17, 7, 5, 9, "#e6e4dd");
ellipsoid(23, 24, 24, 6, 4, 7, "#eeeae2");
ellipsoid(24, 24, 13, 6, 5, 4, "#dad8d2");
ellipsoid(21, 24, 18, 5, 4, 8, "#f1eee7");
ellipsoid(24, 23, 25, 5, 4, 5, "#f6f3eb");

// Subtle mottling, confined to the large marble surfaces.
forEach((x, y, z, color) => {
  if (z > 9 && color === "#e6e4dd" && rand() < 0.055)
    set(x, y, z, "#d9d8d2");
  if (z > 18 && color === "#eeeae2" && rand() < 0.045)
    set(x, y, z, "#dddcd5");
});

// Long, readable shadowed channels in the toga folds.
const folds = [
  [17, 22, 11, 20], [19, 20, 10, 23], [22, 19, 10, 25],
  [25, 19, 10, 23], [28, 21, 11, 20]
];
for (const [x, y, low, high] of folds) {
  line(x, y, low, x + (x < 23 ? 1 : -1), y, high, 0, "#c6c5c0");
  line(x + 1, y - 1, low + 1, x + 1, y - 1, high - 2, 0, "#faf8f0");
}
line(17, 22, 10, 29, 23, 10, 0, "#c5c3bd");
line(18, 21, 11, 29, 22, 11, 0, "#f8f6ee");

// Draped diagonal fold across the chest, with a dark underside.
line(18, 20, 29, 27, 19, 21, 2, "#cfcec8");
line(18, 19, 30, 27, 18, 22, 1, "#faf8f1");
line(17, 21, 28, 19, 20, 30, 2, "#f5f3ec");

// Neck, uncovered shoulder, and relaxed arm at the figure's side.
cylinder(23, 23, 28, 2, 5, "#dedbd4");
ellipsoid(28, 23, 28, 3, 3, 3, "#eeeae2");
line(18, 23, 28, 15, 22, 23, 2, "#e2dfd7");
line(15, 22, 23, 15, 20, 17, 1.5, "#e9e6df");
sphere(15, 20, 17, 1.6, "#f3f0e9");

// Raised arm and open hand holding the wreath.
line(28, 23, 28, 30, 22, 32, 2, "#e6e2da");
line(30, 22, 32, 32, 20, 37, 1.5, "#f1eee7");
sphere(32, 20, 37, 1.5, "#f7f4ec");

// Friendly, classically curled head.
ellipsoid(23, 22, 35, 3.5, 3, 4, "#e9e6df");
ellipsoid(23, 21, 35, 3, 2.5, 3.5, "#f5f2eb");
for (let x = 20; x <= 26; x += 2) {
  sphere(x, 19, 38, 1.2, x % 4 === 0 ? "#ceccc5" : "#dedbd3");
}
for (let x of [19, 27]) {
  sphere(x, 22, 37, 1.4, "#d5d2cb");
  sphere(x, 21, 34, 1, "#eeeae3");
}
sphere(23, 23, 39, 2.2, "#dedbd3");
set(21, 18, 35, "#777673");
set(25, 18, 35, "#777673");
set(21, 17, 35, "#ffffff");
set(25, 17, 35, "#ffffff");
set(23, 17, 33, "#e6e2da");
line(22, 18, 32, 24, 18, 32, 0, "#c9c5bf");

// A bronze-gold laurel wreath, facing forward so its leaves read clearly.
const cx = 36, cy = 18, cz = 39;
const leafDark = "#977641";
const leafGold = "#c5a363";
const leafLight = "#e3c783";
for (let i = 0; i < 32; i++) {
  const a = i * Math.PI * 2 / 32;
  const b = (i + 1) * Math.PI * 2 / 32;
  line(
    cx + 4 * Math.cos(a), cy, cz + 4 * Math.sin(a),
    cx + 4 * Math.cos(b), cy, cz + 4 * Math.sin(b),
    0, leafDark
  );
}
for (let i = 0; i < 16; i++) {
  const a = i * Math.PI * 2 / 16;
  const x = cx + 4 * Math.cos(a);
  const z = cz + 4 * Math.sin(a);
  const outward = i % 2 ? 0.7 : -0.7;
  line(x, cy - 1, z, x + outward, cy - 1, z + 1.4, 0, leafGold);
  ellipsoid(x + outward, cy - 1, z + 1.4, 0.8, 0.5, 0.9,
            i % 3 === 0 ? leafLight : leafGold);
}
sphere(33, 19, 36, 1, leafGold);