fogón

← AnimalesObjeto 3Dfogon/conejo

Conejo

de fogonCC016342 bloques
ConejoArrastrá para girarlo
// «Conejo» · gpt-6-sol (medium)
// A cute cartoon white rabbit sitting on its haunches, facing front (-y): a round egg-shaped body, big rear feet, small front paws, a round head with two very long upright ears (pink inside), pink nose, black dot eyes and a fluffy round white tail at the back.

// Sitting rabbit: front is -y.
const fur = "#eeece8";
const furLight = "#fffdf9";
const furShade = "#dcdad6";
const pink = "#f49baa";
const pinkLight = "#ffc0ca";
const ink = "#252329";

part("body", [24, 25, 13]);

// Round body, haunches, and oversized feet.
ellipsoid(24, 26, 14, 12, 11, 12, fur);
ellipsoid(14, 29, 8, 7, 8, 8, fur);
ellipsoid(34, 29, 8, 7, 8, 8, fur);
ellipsoid(15, 16, 3, 7, 9, 3, fur);
ellipsoid(33, 16, 3, 7, 9, 3, fur);

// Subtle shading and flecks on the exposed fur.
forEach((x, y, z, color) => {
  if (color !== fur) return;
  const exposed = !get(x, y - 1, z) || !get(x, y, z + 1) ||
                  !get(x + 1, y, z);
  if (!exposed) return;
  const n = rand();
  if (z < 6 || (z < 12 && n < 0.14)) set(x, y, z, furShade);
  else if (z > 17 || n < 0.13) set(x, y, z, furLight);
});

// Bright tummy and little paws resting against it.
ellipsoid(24, 15, 15, 8, 3, 8, "#faf9f5");
ellipsoid(17, 13, 14, 3, 3, 5, furLight);
ellipsoid(31, 13, 14, 3, 3, 5, furLight);
ellipsoid(17, 11, 11, 3, 2, 2, "#f5f3ef");
ellipsoid(31, 11, 11, 3, 2, 2, "#f5f3ef");

// A few broad toe divisions, visible from the front.
for (const cx of [15, 33]) {
  for (const dx of [-3, 0, 3]) {
    line(cx + dx, 8, 4, cx + dx, 10, 5, 0, "#fffefa");
  }
}

// Puffy tail peeking out behind the body.
sphere(24, 39, 12, 5, furLight);
sphere(21, 41, 13, 2, "#f6f5f1");
sphere(27, 41, 13, 2, "#f6f5f1");
sphere(24, 42, 15, 2, "#fffefa");

// The head bobs independently.
part("head", [24, 18, 24]);
const headFur = "#f2f0ec";
ellipsoid(24, 18, 25, 12, 10, 9, headFur);
forEach((x, y, z, color) => {
  if (color !== headFur) return;
  if (!get(x, y - 1, z) || !get(x, y, z + 1)) {
    if (z >= 27 || rand() < 0.12) set(x, y, z, furLight);
    else if (z < 21 && rand() < 0.22) set(x, y, z, furShade);
  }
});

// Plump muzzle, tiny nose, and a simple smiling mouth.
ellipsoid(21, 8, 21, 4, 3, 3, "#fffefa");
ellipsoid(27, 8, 21, 4, 3, 3, "#fffefa");
ellipsoid(24, 5, 23, 2, 1, 1, pink);
set(24, 4, 22, "#df7188");
set(24, 5, 20, "#716b70");
set(23, 5, 19, "#716b70");
set(25, 5, 19, "#716b70");

// Black bead eyes with single bright catchlights.
for (const x of [18, 30]) {
  ellipsoid(x, 8, 27, 2, 2, 2, ink);
  set(x - 1, 6, 28, "#ffffff");
}
ellipsoid(14, 11, 22, 2, 1, 1, "#f9d8d9");
ellipsoid(34, 11, 22, 2, 1, 1, "#f9d8d9");

// Each long ear has its own pivot and a broad pink inner surface.
part("leftEar", [17, 20, 31]);
ellipsoid(17, 20, 38, 4, 3, 7, "#f4f2ee");
ellipsoid(17, 17, 39, 2, 1, 5, pink);
ellipsoid(17, 16, 40, 1, 1, 3, pinkLight);
animate("leftEar", { type: "swing", axis: "x", speed: 3, amplitude: 0.2 });

part("rightEar", [31, 20, 31]);
ellipsoid(31, 20, 38, 4, 3, 7, "#f4f2ee");
ellipsoid(31, 17, 39, 2, 1, 5, pink);
ellipsoid(31, 16, 40, 1, 1, 3, pinkLight);
animate("rightEar", { type: "swing", axis: "x", speed: -3, amplitude: 0.2 });

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