fogón

← AnimalesObjeto 3Dfogon/oso-hormiguero

Oso hormiguero

de fogonCC09721 bloques
Oso hormigueroArrastrá para girarlo
// «Oso hormiguero» · gpt-6-sol (medium)
// A cartoon giant anteater, horizontal along y, head at the front (-y): a grey-brown shaggy body with a black and white diagonal stripe across the shoulder, a very long narrow tube snout with a small black tip, tiny eyes and ears, four legs with curved claws and a huge bushy tail.

// Giant anteater: front is -y.
const fur = "#897965", furLight = "#a49378", furDark = "#6d604f";
const cream = "#eadfc0", black = "#292827";

// Rounded, solid body.
ellipsoid(24, 26, 21, 11, 11, 10, fur);
forEach((x, y, z, color) => {
  if (color !== fur) return;

  // The shoulder marking slopes backward as it runs down each side.
  const stripe = 24 - 0.48 * (z - 21);
  const d = y - stripe;
  if (d > -4.3 && d < -2.5) set(x, y, z, cream);
  else if (d >= -2.5 && d < 2.1) set(x, y, z, black);
  else if (d >= 2.1 && d < 3.6) set(x, y, z, cream);
  else if (rand() < 0.14) set(x, y, z, z > 23 ? furLight : furDark);
});

// A broad, shaggy tail, rising from the rump and drooping at its tip.
ellipsoid(24, 35, 21, 6, 5, 7, furDark);
ellipsoid(24, 40, 19, 9, 7, 9, "#766a56");
ellipsoid(24, 44, 16, 6, 3, 7, furDark);
forEach((x, y, z, color) => {
  if (y < 35 || color !== "#766a56") return;
  if (rand() < 0.18) set(x, y, z, z > 20 ? "#a08c6e" : furDark);
});
// Chunky tufts break up the tail's outline.
for (const side of [-1, 1]) {
  for (let i = 0; i < 9; i++) {
    const y = 36 + i * 1.2;
    const x = 24 + side * (7 + (i % 3));
    line(x - side, y - 1, 20 + (i % 4),
         x + side, y + 1, 17 + (i % 4), 1,
         i % 3 === 0 ? furLight : furDark);
  }
}
line(22, 44, 13, 22, 47, 10, 1, furDark);
line(26, 44, 14, 27, 47, 11, 1, furDark);

// Each leg is a separate walking part, pivoting at its shoulder or hip.
function leg(name, x, y, speed) {
  part(name, [x, y, 15]);
  ellipsoid(x, y, 11, 3, 3, 5, furDark);
  ellipsoid(x, y - 0.5, 6, 2.5, 2.5, 5, fur);
  ellipsoid(x, y - 1.5, 2, 3, 3.5, 2, furDark);

  // Three pale, forward-curving claws.
  for (const dx of [-2, 0, 2]) {
    line(x + dx, y - 3, 2, x + dx, y - 5, 1, 1, cream);
    set(x + dx, y - 5, 0, "#c9b994");
  }
  animate(name, { type: "swing", axis: "x", speed, amplitude: 0.3 });
  part("body");
}
leg("front-left", 17, 19, 3);
leg("front-right", 31, 19, -3);
leg("rear-left", 17, 33, -3);
leg("rear-right", 31, 33, 3);

// Neck and oversized, friendly head.
ellipsoid(24, 17, 24, 6, 7, 6, fur);
ellipsoid(24, 13, 25, 5, 5, 5, furLight);
ellipsoid(24, 15, 21, 4, 5, 3, furDark);

// Exceptionally long, narrow downturned snout.
line(24, 15, 23, 24, 4, 17, 2, furLight);
line(24, 10, 20, 24, 4, 17, 1, "#bcaa8d");
ellipsoid(24, 3, 17, 2, 2, 1.5, black);
set(23, 1, 17, "#393632");
set(24, 1, 17, "#393632");
set(25, 1, 17, "#393632");

// Small upright ears, with dark inner faces.
for (const x of [19, 29]) {
  ellipsoid(x, 17, 30, 2, 2, 3, furDark);
  ellipsoid(x, 15, 31, 1, 1, 2, "#aa8d7d");
}

// Tiny dot eyes and a glint on each side.
sphere(19, 11, 27, 1, black);
sphere(29, 11, 27, 1, black);
set(19, 10, 28, "#ffffff");
set(29, 10, 28, "#ffffff");