fogón

← AnimalesObjeto 3Dfogon/rinoceronte

Rinoceronte

de fogonCC017661 bloques
RinoceronteArrastrá para girarlo
// «Rinoceronte» · gpt-6-sol (medium)
// A chunky cartoon rhinoceros, horizontal along y, head at the front (-y): a heavy grey armored-looking body with darker folds, four thick legs, a long head with a big curved horn on the nose and a smaller horn behind it, small eyes and small ears. A short thin tail.

// Four independently swinging, chunky legs.
function leg(name, x, y, speed) {
  part(name, [x, y, 13]);
  ellipsoid(x, y, 10, 5, 5, 7, "#788489");
  ellipsoid(x, y - 1, 5, 5, 5, 5, "#899598");
  ellipsoid(x, y - 2, 3, 5, 5, 3, "#929da0");

  // Three broad little toenails on the front of each foot.
  for (const dx of [-3, 0, 3]) {
    box(x + dx, y - 6, 1, x + dx + 1, y - 5, 3, "#d1ccbb");
  }
  animate(name, { type: "swing", axis: "x", speed, amplitude: 0.3 });
}

leg("frontLeft", 15, 16, 3);
leg("frontRight", 33, 16, -3);
leg("rearLeft", 15, 33, -3);
leg("rearRight", 33, 33, 3);

part("body");

// Rounded barrel, with dark edges between its overlapping armor plates.
ellipsoid(24, 29, 19, 14, 11, 11, "#69757b");
ellipsoid(24, 30, 19, 13, 10, 10, "#899498");
ellipsoid(24, 20, 19, 15, 11, 11, "#6d797e");
ellipsoid(24, 19, 20, 14, 10, 10, "#929da0");
ellipsoid(24, 17, 15, 12, 8, 7, "#859195");

// Gentle top lighting and a little mottling on the broad grey surfaces.
forEach((x, y, z, color) => {
  if (color === "#929da0" || color === "#899498") {
    if (z >= 25 && rand() < 0.65) set(x, y, z, "#a6afb0");
    else if (z < 15 && rand() < 0.35) set(x, y, z, "#7e8b8f");
    else if (rand() < 0.035) set(x, y, z, "#a0aaac");
  }
});

// Broad shoulder fold and a smaller crease near the rump.
for (const side of [-1, 1]) {
  const sx = side < 0 ? 10 : 38;
  line(sx, 21, 13, sx, 20, 24, 1, "#68757b");
  line(sx, 34, 14, sx, 35, 23, 0, "#748086");
}
line(14, 19, 28, 24, 18, 30, 0, "#79868a");
line(24, 18, 30, 34, 19, 28, 0, "#79868a");

// Big, low head and wide soft muzzle.
ellipsoid(24, 13, 21, 11, 10, 9, "#68757a");
ellipsoid(24, 12, 21, 10, 9, 8, "#9ba6a7");
ellipsoid(24, 8, 18, 9, 6, 6, "#7b878b");
ellipsoid(24, 7, 19, 9, 6, 6, "#a4adae");
ellipsoid(24, 5, 16, 7, 3, 3, "#929da0");

// Ears: small, upright cups with visible darker interiors.
for (const x of [14, 34]) {
  ellipsoid(x, 16, 31, 3, 3, 5, "#69767c");
  ellipsoid(x, 14, 32, 2, 1, 3, "#b88f91");
  set(x, 14, 35, "#a3adae");
}

// Simple black dot eyes and tiny white catchlights.
for (const x of [14, 34]) {
  sphere(x, 10, 25, 1.5, "#242c30");
  set(x, 9, 26, "#ffffff");
}

// Dark nostrils on the front corners of the muzzle.
sphere(18, 3, 17, 1, "#515d62");
sphere(30, 3, 17, 1, "#515d62");

// Exaggerated curved front horn, tapering and bending toward the viewer.
ellipsoid(24, 6, 25, 4, 4, 3, "#c9bda2");
sphere(24, 6, 28, 3, "#e6d9b5");
sphere(24, 5, 30, 2.5, "#eee2bf");
sphere(24, 4, 32, 2, "#f1e7cb");
line(24, 4, 32, 24, 3, 35, 1, "#f4ebd5");
set(24, 2, 36, "#f4ebd5");

// Shorter horn immediately behind the main one.
ellipsoid(24, 15, 29, 3, 3, 2, "#cbbfa5");
sphere(24, 15, 31, 2, "#e8dcb9");
line(24, 15, 32, 24, 14, 34, 1, "#f0e5c9");

// Short, thin tail and a dark tuft.
line(24, 39, 19, 24, 43, 17, 1, "#788489");
ellipsoid(24, 44, 16, 2, 2, 2, "#626e73");