fogón

← Animals3D assetfogon/pinguino

Pingüino

by fogonCC015491 blocks
PingüinoDrag to turn it
// «Pingüino» · gpt-6-sol (medium)
// A chubby cartoon penguin standing upright facing front (-y): a black back and head, a big white belly and face, an orange beak, black dot eyes with pink cheeks, two black flipper wings at the sides and orange feet.

// Chubby penguin: front faces -y.
const black = "#202630";
const white = "#f7f5ec";
const orange = "#f68b24";

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

// Rounded body and oversized head.
ellipsoid(24, 24, 17, 12, 10, 15, black);
ellipsoid(24, 23, 31, 12, 10, 11, black);

// Bright belly and broad white face.
ellipsoid(24, 15.5, 16, 9, 3.5, 12, white);
ellipsoid(24, 14, 32, 9, 3.5, 8, white);

// Gentle color variation on the large surfaces.
forEach((x, y, z, color) => {
  if (color === black) {
    if (z > 32 && rand() < 0.28) set(x, y, z, "#2d3540");
    else if (z < 12 && rand() < 0.22) set(x, y, z, "#171d26");
  } else if (color === white) {
    if (z < 15 && rand() < 0.18) set(x, y, z, "#e8e8df");
    else if (z > 29 && rand() < 0.12) set(x, y, z, "#ffffff");
  }
});

// Short legs and big, forward-pointing webbed feet.
for (const cx of [19, 29]) {
  ellipsoid(cx, 23, 3, 4, 4, 3, "#d96b1b");
  ellipsoid(cx, 17, 2, 5, 8, 2, orange);
  for (const dx of [-3, 0, 3]) {
    ellipsoid(cx + dx, 11, 1, 2, 4, 1, "#ff9c32");
  }
  box(cx - 3, 17, 4, cx + 3, 22, 4, "#ffae43");
}

// Rosy cheeks, placed on the front of the white face.
ellipsoid(16, 11.5, 29, 2, 1, 2, "#f7a4ac");
ellipsoid(32, 11.5, 29, 2, 1, 2, "#f7a4ac");
set(15, 10, 30, "#ffc3c8");
set(31, 10, 30, "#ffc3c8");

// Simple shiny black dot eyes.
for (const x of [19, 29]) {
  ellipsoid(x, 10.5, 34, 1.5, 1.5, 2, "#101820");
  set(x - 1, 9, 35, "#ffffff");
}

// Chunky orange beak with a projecting tip.
box(21, 9, 26, 27, 12, 29, "#dc6819");
box(22, 7, 27, 26, 10, 29, orange);
box(23, 6, 27, 25, 8, 28, "#ffae38");
box(22, 8, 29, 26, 10, 29, "#ffb247");

// Each flipper is hinged at its shoulder.
part("leftFlipper", [13, 23, 26]);
ellipsoid(9, 24, 20, 5, 4, 10, "#202630");
ellipsoid(7, 24, 14, 4, 3, 5, "#202630");
ellipsoid(8, 20, 22, 3, 1, 6, "#303946");
animate("leftFlipper", { type: "swing", axis: "y", speed: 5, amplitude: 0.4 });

part("rightFlipper", [35, 23, 26]);
ellipsoid(39, 24, 20, 5, 4, 10, "#202630");
ellipsoid(41, 24, 14, 4, 3, 5, "#202630");
ellipsoid(40, 20, 22, 3, 1, 6, "#303946");
animate("rightFlipper", { type: "swing", axis: "y", speed: -5, amplitude: 0.4 });

animate("body", { type: "bob", axis: "z", speed: 5, amplitude: 0.5 });