fogón

← Animals3D assetfogon/lobo

Lobo

by fogonCC010609 blocks
LoboDrag to turn it
// «Lobo» · gpt-6-sol (medium)
// A cartoon grey wolf, horizontal along y, head at the front (-y): a strong body in grey with lighter cream belly, chest and muzzle, darker grey back, four long legs, a long snout with a black nose, yellow eyes and pointy upright ears. A bushy grey tail held low.

const grey = "#8b9295";
const lightGrey = "#aab0b1";
const darkGrey = "#626c72";
const cream = "#e7dfca";
const creamShade = "#ccc4b2";
const nose = "#22272b";

// Rounded body, with a dark saddle and a pale underside.
ellipsoid(24, 26, 19, 10, 14, 8, grey);
ellipsoid(24, 26, 24, 9, 13, 4, darkGrey);
ellipsoid(24, 25, 15, 8, 12, 5, creamShade);
ellipsoid(24, 24, 16, 7, 11, 4, cream);

// A little irregularity in the broad fur surfaces.
forEach((x, y, z, color) => {
  if (color === grey && rand() < 0.035) set(x, y, z, lightGrey);
  if (color === darkGrey && rand() < 0.025) set(x, y, z, "#737b7e");
});

// Bushy tail, held low behind the body.
ellipsoid(24, 39, 16, 5, 5, 5, grey);
ellipsoid(24, 42, 15, 4, 3, 4, lightGrey);
ellipsoid(24, 44, 14, 3, 2, 3, darkGrey);
ellipsoid(24, 44, 13, 2, 2, 2, creamShade);

// Full chest and oversized head.
ellipsoid(24, 15, 19, 8, 6, 8, creamShade);
ellipsoid(24, 13, 21, 7, 5, 7, cream);
ellipsoid(24, 13, 26, 9, 8, 8, grey);
ellipsoid(24, 12, 31, 7, 6, 3, lightGrey);

// Tall, pointed ears: dark outer fur and pale front insets.
for (const cx of [18, 30]) {
  box(cx - 3, 10, 32, cx + 3, 15, 34, darkGrey);
  box(cx - 2, 10, 35, cx + 2, 14, 36, darkGrey);
  box(cx - 1, 11, 37, cx + 1, 13, 38, darkGrey);
  set(cx, 12, 39, darkGrey);
  box(cx - 1, 9, 33, cx + 1, 9, 35, creamShade);
  set(cx, 9, 36, creamShade);
}

// Cream cheeks and the long, projecting muzzle.
ellipsoid(19, 9, 22, 4, 4, 4, cream);
ellipsoid(29, 9, 22, 4, 4, 4, cream);
ellipsoid(24, 7, 22, 6, 6, 4, cream);
ellipsoid(24, 5, 21, 5, 3, 3, "#f2ead7");
box(22, 3, 23, 26, 4, 24, nose);
box(23, 2, 22, 25, 3, 23, nose);
set(24, 3, 20, "#555250");
line(22, 4, 19, 26, 4, 19, 0, "#716d68");

// Bold yellow eyes with simple black pupils.
for (const cx of [19, 29]) {
  box(cx - 1, 6, 28, cx + 1, 7, 30, "#e5b94b");
  box(cx, 5, 28, cx, 5, 29, "#25282a");
  set(cx, 5, 30, "#fff4cc");
}

// Four separately swinging legs, jointed at the shoulders and hips.
function leg(name, x, y, speed) {
  part(name, [x, y, 15]);
  ellipsoid(x, y, 13, 3, 3, 4, grey);
  cylinder(x, y, 2, 2.5, 12, darkGrey);
  box(x - 1, y - 2, 5, x + 1, y - 2, 11, grey);
  ellipsoid(x, y - 2, 2, 3, 4, 2, grey);
  box(x - 2, y - 5, 0, x + 2, y - 3, 1, darkGrey);
  for (const dx of [-2, 0, 2]) set(x + dx, y - 5, 1, "#c5c3b9");
  animate(name, { type: "swing", axis: "x", speed, amplitude: 0.3 });
}

leg("frontLeft", 17, 16, 5);
leg("frontRight", 31, 16, -5);
leg("rearLeft", 17, 34, -5);
leg("rearRight", 31, 34, 5);
part("body");