fogón

← Parties and Christmas3D assetfogon/conejo-de-pascua

Conejo de Pascua

by fogonCC010831 blocks
Conejo de PascuaDrag to turn it
// «Conejo de Pascua» · gpt-6-sol (medium)
// A cute cartoon Easter bunny standing upright facing front: white fluffy round body, big long ears with pink insides, pink nose, black dot eyes, buck teeth, a small cotton tail, wearing a little blue bow tie, holding a wicker basket full of colorful painted eggs.

const white = "#fffaf2", cream = "#f1e9dc", shadow = "#dedee2";
const pink = "#f7a7bd", deepPink = "#e875a0";
const wicker = "#c99250", wickerLight = "#e5b771", wickerDark = "#956036";

// Everything but the ears hops together.
part("body", [24, 24, 0]);
animate("body", { type: "bob", axis: "z", speed: 4, amplitude: 1.5 });

// Big, soft body and a slightly oversized head.
ellipsoid(24, 26, 14, 10, 8, 11, shadow);
ellipsoid(24, 25, 15, 10, 8, 11, white);
ellipsoid(24, 17, 15, 7, 2, 8, cream);
ellipsoid(24, 24, 28, 9, 8, 8, shadow);
ellipsoid(24, 23, 29, 9, 8, 8, white);

// Feet, with little pink toe pads.
for (const x of [18, 30]) {
  ellipsoid(x, 20, 2, 5, 6, 2, shadow);
  ellipsoid(x, 19, 3, 5, 6, 2, white);
  for (const dx of [-2, 0, 2])
    ellipsoid(x + dx, 14, 2, 1, 1, 1, pink);
}

// Cotton tail peeks out at the side.
sphere(34, 31, 12, 3, cream);
sphere(35, 30, 13, 2, white);

// Arms curl around the basket.
ellipsoid(15, 20, 18, 3, 4, 6, white);
ellipsoid(33, 20, 18, 3, 4, 6, white);
sphere(18, 16, 15, 3, cream);
sphere(35, 16, 15, 3, cream);

// Muzzle, cheeks, and face.
ellipsoid(21, 16, 26, 4, 2, 3, cream);
ellipsoid(27, 16, 26, 4, 2, 3, cream);
ellipsoid(21, 14, 26, 3, 1, 2, white);
ellipsoid(27, 14, 26, 3, 1, 2, white);
for (const x of [20, 28]) {
  sphere(x, 15, 31, 2, "#242633");
  set(x - 1, 13, 32, "#ffffff");
  set(x - 3, 16, 27, "#f7c4ca");
}
ellipsoid(24, 12, 27, 2, 1, 1, deepPink);
set(24, 11, 28, "#ffd0dd");
line(24, 12, 26, 24, 12, 24, 0, "#8d6871");
box(22, 13, 22, 23, 14, 24, "#fffef7");
box(25, 13, 22, 26, 14, 24, "#fffef7");
set(24, 13, 23, "#d4c9c3");

// Bright blue bow tie below the chin.
ellipsoid(20, 16, 21, 3, 2, 2, "#55bde4");
ellipsoid(28, 16, 21, 3, 2, 2, "#55bde4");
box(23, 13, 20, 25, 15, 22, "#258bc1");
set(23, 12, 22, "#a4ebf7");
set(25, 12, 22, "#a4ebf7");

// Basket: sturdy base, open top, woven stripes.
box(19, 9, 6, 37, 19, 13, wickerDark);
box(20, 9, 7, 36, 18, 13, wicker);
box(21, 11, 11, 35, 16, 14, "#795032");
for (let z = 8; z <= 13; z += 2)
  box(20, 8, z, 36, 8, z, wickerLight);
for (let x = 21; x <= 35; x += 3)
  box(x, 8, 7, x, 8, 13, x % 2 ? wickerDark : wickerLight);
for (let y = 10; y <= 18; y += 2) {
  box(19, y, 8, 19, y, 13, wickerLight);
  box(37, y, 8, 37, y, 13, wickerLight);
}
box(19, 8, 14, 37, 10, 15, wickerLight);
box(19, 17, 14, 37, 19, 15, wickerLight);
box(19, 10, 14, 20, 17, 15, wickerLight);
box(36, 10, 14, 37, 17, 15, wickerLight);

// Painted eggs stand above the rim.
const eggs = [
  [23, 13, "#f4a4c7", "#fff3a0"],
  [28, 14, "#a9e8dd", "#fffcf1"],
  [33, 13, "#c6b1f0", "#ffe486"],
  [25, 17, "#ffe37a", "#ee929d"],
  [32, 17, "#a7d7f5", "#ffffff"]
];
for (const [x, y, color, stripe] of eggs) {
  ellipsoid(x, y, 16, 2, 2, 3, color);
  for (let dx = -1; dx <= 1; dx++) set(x + dx, y - 2, 16, stripe);
  set(x - 1, y - 1, 18, "#ffffff");
}

// Handle arches behind the eggs.
for (let x = 19; x <= 37; x++) {
  const t = (x - 28) / 9;
  const z = Math.round(16 + 5 * (1 - t * t));
  sphere(x, 17, z, 1, x % 3 === 0 ? wickerLight : wickerDark);
}

// Little paws rest over the basket rim.
ellipsoid(19, 12, 15, 3, 2, 2, white);
ellipsoid(36, 12, 15, 3, 2, 2, white);

// Each ear has its own base pivot and gently flops outward.
part("left-ear", [18, 24, 35]);
ellipsoid(18, 24, 40, 3, 2, 5, cream);
ellipsoid(18, 23, 40, 3, 2, 5, white);
ellipsoid(18, 20, 40, 2, 1, 4, pink);
ellipsoid(18, 19, 40, 1, 1, 3, deepPink);
animate("left-ear", { type: "swing", axis: "y", speed: 3, amplitude: 0.25 });

part("right-ear", [30, 24, 35]);
ellipsoid(30, 24, 40, 3, 2, 5, cream);
ellipsoid(30, 23, 40, 3, 2, 5, white);
ellipsoid(30, 20, 40, 2, 1, 4, pink);
ellipsoid(30, 19, 40, 1, 1, 3, deepPink);
animate("right-ear", { type: "swing", axis: "y", speed: -3, amplitude: 0.25 });