fogón

← Ancient and prehistory3D assetfogon/faraon

Faraón

by fogonCC013257 blocks
FaraónDrag to turn it
// «Faraón» · gpt-6-sol (medium)
// A chunky cartoon pharaoh standing facing front (-y): tan skin, a big blue and gold striped nemes headdress, a long thin braided gold beard, kohl-lined eyes, a wide gold and turquoise collar, white linen kilt, and holding a crook and flail crossed over his chest.

const skin = "#d6a466", skinLight = "#e9bb7c", skinShade = "#ad7849";
const blue = "#174c9a", blueLight = "#2875bd", blueDark = "#10356d";
const gold = "#e9b83e", goldLight = "#ffe17a", goldDark = "#af7824";
const turquoise = "#32c5bc", turquoiseDark = "#168b94";
const linen = "#f3ebd5", linenShade = "#d4c9ae";

// Two independently swinging legs.
part("leftLeg", [20, 24, 15]);
box(17, 21, 2, 22, 27, 15, skin);
box(17, 20, 0, 23, 27, 3, skinShade);
box(17, 18, 1, 23, 25, 3, skinLight);
box(17, 18, 0, 23, 26, 0, goldDark);
box(17, 18, 2, 23, 18, 2, goldLight);
animate("leftLeg", { type: "swing", axis: "x", speed: 3, amplitude: 0.25 });

part("rightLeg", [28, 24, 15]);
box(26, 21, 2, 31, 27, 15, skin);
box(25, 20, 0, 31, 27, 3, skinShade);
box(25, 18, 1, 31, 25, 3, skinLight);
box(25, 18, 0, 31, 26, 0, goldDark);
box(25, 18, 2, 31, 18, 2, goldLight);
animate("rightLeg", { type: "swing", axis: "x", speed: -3, amplitude: 0.25 });

part("body", [24, 24, 20]);

// Linen kilt: broad, pleated, and slightly flared.
box(17, 20, 15, 31, 29, 21, linenShade);
box(15, 18, 13, 33, 29, 17, linen);
box(17, 18, 17, 31, 29, 21, linen);
box(15, 18, 13, 33, 19, 14, linenShade);
for (let x = 17; x <= 31; x += 3) {
  box(x, 17, 14, x, 17, 19, linenShade);
  box(x + 1, 17, 15, x + 1, 17, 19, "#fff8e8");
}
box(16, 17, 20, 32, 28, 21, goldDark);
box(17, 16, 21, 31, 18, 22, gold);
box(22, 15, 19, 26, 16, 23, goldLight);
box(23, 14, 20, 25, 14, 22, turquoise);

// Torso and sturdy cartoon arms.
ellipsoid(24, 24, 25, 10, 7, 7, skin);
box(17, 17, 23, 31, 19, 28, skinLight);
ellipsoid(14, 23, 25, 4, 5, 5, skin);
ellipsoid(34, 23, 25, 4, 5, 5, skin);
line(14, 20, 25, 18, 15, 20, 3, skin);
line(34, 20, 25, 30, 15, 20, 3, skin);
box(11, 17, 24, 12, 22, 27, skinShade);
box(36, 17, 24, 37, 22, 27, skinShade);

// Wide, layered ceremonial collar, brightest at its front edge.
ellipsoid(24, 21, 29, 11, 7, 3, goldDark);
ellipsoid(24, 19, 29, 10, 5, 2, turquoiseDark);
box(16, 15, 28, 32, 17, 29, turquoise);
box(17, 14, 27, 31, 15, 28, gold);
box(19, 13, 26, 29, 14, 27, goldLight);
for (let x = 18; x <= 30; x += 3) {
  set(x, 14, 29, goldLight);
  set(x + 1, 15, 28, blue);
}

// The nemes hangs behind the face, with bold horizontal stripes.
ellipsoid(24, 24, 37, 11, 9, 7, blueDark);
for (let z = 25; z <= 38; z++) {
  const band = Math.floor((z - 25) / 3) % 2;
  const c = band ? gold : blue;
  const lit = band ? goldLight : blueLight;
  const inset = z < 28 ? 2 : z > 35 ? 1 : 0;
  box(9 + inset, 16, z, 16, 27, z, c);
  box(32, 16, z, 39 - inset, 27, z, c);
  box(9 + inset, 15, z, 11 + inset, 23, z, lit);
  box(37 - inset, 15, z, 39 - inset, 23, z, lit);
}
box(10, 15, 24, 16, 26, 25, goldDark);
box(32, 15, 24, 38, 26, 25, goldDark);
box(12, 16, 39, 36, 30, 41, blue);
box(15, 17, 42, 33, 29, 43, blueLight);
box(17, 16, 40, 31, 18, 40, gold);
box(18, 17, 43, 30, 27, 43, gold);
box(20, 19, 44, 28, 27, 44, blueDark);

// Large friendly face, projecting forward of the headdress.
ellipsoid(24, 19, 34, 8, 6, 7, skinShade);
ellipsoid(24, 17, 34, 7, 5, 6, skin);
box(19, 12, 32, 29, 14, 37, skinLight);
box(17, 16, 31, 18, 19, 35, skinShade);
box(30, 16, 31, 31, 19, 35, skinShade);

// Forehead band and tiny upright cobra.
box(17, 12, 38, 31, 18, 39, gold);
box(18, 11, 38, 30, 11, 38, goldLight);
box(23, 10, 39, 25, 12, 42, turquoise);
box(22, 11, 41, 26, 13, 42, goldLight);
set(23, 9, 41, blueDark);
set(25, 9, 41, blueDark);

// Kohl-lined eyes and brows on the front (-y).
box(18, 11, 35, 22, 11, 36, "#302b38");
box(26, 11, 35, 30, 11, 36, "#302b38");
box(19, 10, 35, 21, 10, 35, "#fff4de");
box(27, 10, 35, 29, 10, 35, "#fff4de");
set(20, 9, 35, "#171b2a");
set(28, 9, 35, "#171b2a");
set(20, 8, 36, "#ffffff");
set(28, 8, 36, "#ffffff");
set(17, 11, 35, "#302b38");
set(31, 11, 35, "#302b38");
box(19, 11, 37, 22, 11, 37, skinShade);
box(26, 11, 37, 29, 11, 37, skinShade);
box(23, 10, 32, 25, 12, 34, skinLight);
box(21, 11, 30, 27, 12, 30, skinShade);

// Thin, long braided false beard, with a squared gold tip.
box(23, 9, 22, 25, 11, 30, goldDark);
for (let z = 23; z <= 29; z++) {
  box(23, 8, z, 25, 8, z, z % 2 ? goldLight : gold);
  set(z % 2 ? 23 : 25, 7, z, goldDark);
}
box(22, 8, 19, 26, 11, 22, gold);
box(22, 7, 19, 26, 8, 19, goldLight);
box(23, 7, 21, 25, 7, 21, turquoise);

// Crook and flail cross in front of the chest.
line(15, 9, 16, 32, 9, 31, 1, goldDark);
line(15, 8, 16, 32, 8, 31, 0, goldLight);
line(32, 9, 31, 34, 9, 34, 1, gold);
line(34, 9, 34, 32, 9, 36, 1, goldLight);
line(32, 9, 36, 29, 9, 36, 1, gold);
line(29, 9, 36, 28, 9, 33, 1, goldDark);

line(34, 7, 16, 17, 7, 30, 1, goldDark);
line(34, 6, 16, 17, 6, 30, 0, goldLight);
box(15, 6, 29, 19, 8, 31, gold);
for (let i = 0; i < 3; i++) {
  const x = 15 + i * 2;
  line(x, 6, 29, x - 2, 5, 23 + i, 0, goldLight);
  box(x - 2, 5, 22 + i, x - 1, 6, 24 + i, goldDark);
  set(x - 2, 4, 22 + i, turquoise);
}

// Hands gripping the crossed handles.
sphere(18, 10, 19, 2, skinLight);
sphere(31, 9, 19, 2, skinLight);
set(18, 7, 19, skin);
set(31, 6, 19, skin);