fogón

← Animals3D assetfogon/puma

Puma

by fogonCC09469 blocks
PumaDrag to turn it
// «Puma» · gpt-6-sol (medium)
// A sleek cartoon puma, horizontal along y, head at the front (-y): a long tawny tan body with a lighter cream belly and muzzle, four strong legs, a round head with small rounded ears with dark backs, a pink nose, black marks beside the muzzle and green eyes. A long tail with a dark tip.

const tan = "#c9863e";
const lightTan = "#dfa052";
const darkTan = "#aa682f";
const cream = "#f5dfae";
const creamShade = "#e7c991";
const brown = "#563926";
const black = "#282522";

// Long, rounded body and broad haunches.
ellipsoid(24, 25, 19, 10, 13, 8, tan);
ellipsoid(24, 32, 18, 9, 7, 8, tan);
ellipsoid(24, 12, 26, 8, 7, 8, tan);

// Gentle fur shading, concentrated on visible upper surfaces.
forEach((x, y, z, color) => {
  if (color !== tan) return;
  if (z >= 26 && rand() < 0.72) set(x, y, z, lightTan);
  else if (z < 16 && rand() < 0.32) set(x, y, z, darkTan);
  else if (rand() < 0.035) set(x, y, z, lightTan);
});

// Cream underside, chest, and cheeks.
ellipsoid(24, 24, 13, 8, 10, 4, creamShade);
ellipsoid(24, 14, 18, 6, 5, 6, cream);
ellipsoid(20, 5, 23, 4, 3, 3, cream);
ellipsoid(28, 5, 23, 4, 3, 3, cream);
ellipsoid(24, 5, 21, 3, 2, 2, creamShade);

// Small round ears: dark backs and warm inner fronts.
for (const x of [18, 30]) {
  ellipsoid(x, 11, 34, 3, 3, 4, brown);
  ellipsoid(x, 9, 35, 2, 2, 3, lightTan);
  ellipsoid(x, 7, 35, 1, 1, 2, brown);
}

// Green eyes with bold dark pupils and tiny highlights.
for (const x of [20, 28]) {
  ellipsoid(x, 5, 29, 2, 1, 2, brown);
  ellipsoid(x, 4, 29, 2, 1, 1, "#70ad57");
  set(x, 3, 29, black);
  set(x - 1, 3, 30, "#ffffff");
}

// Nose, mouth, and the puma's dark muzzle markings.
ellipsoid(24, 3, 25, 2, 2, 1, "#dc8190");
set(24, 2, 24, "#b96576");
line(24, 3, 23, 24, 3, 21, 0, brown);
line(24, 3, 21, 22, 4, 20, 0, brown);
line(24, 3, 21, 26, 4, 20, 0, brown);
for (const x of [17, 31]) {
  ellipsoid(x, 6, 23, 1, 1, 2, brown);
  set(x, 5, 24, black);
}

// Long tail, curling upward to a conspicuous dark tip.
line(24, 36, 21, 24, 40, 18, 2, tan);
line(24, 40, 18, 26, 43, 19, 2, tan);
line(26, 43, 19, 27, 45, 22, 2, brown);
sphere(27, 45, 22, 2, brown);

// Four independently swinging, sturdy toy-like legs.
const legs = [
  { name: "frontLeft",  x: 17, y: 18, speed:  5 },
  { name: "frontRight", x: 31, y: 18, speed: -5 },
  { name: "rearLeft",   x: 17, y: 32, speed: -5 },
  { name: "rearRight",  x: 31, y: 32, speed:  5 }
];

for (const leg of legs) {
  part(leg.name, [leg.x, leg.y, 16]);
  ellipsoid(leg.x, leg.y, 10, 3, 3, 8, darkTan);
  ellipsoid(leg.x, leg.y - 1, 9, 3, 3, 7, tan);
  ellipsoid(leg.x, leg.y - 2, 2, 3, 4, 2, lightTan);
  for (const dx of [-1, 1]) {
    set(leg.x + dx, leg.y - 5, 1, creamShade);
  }
  animate(leg.name, {
    type: "swing", axis: "x", speed: leg.speed, amplitude: 0.3
  });
}
part("body");