fogón

← Farm3D assetfogon/perro-pastor

Perro pastor

by fogonCC05617 blocks
Perro pastorDrag to turn it
// «Perro pastor» · gpt-6-sol (medium)
// A cute chunky cartoon border collie dog standing on four legs, built from simple clean boxes like a toy (no noisy fur). Body: a horizontal box about 20 blocks long (along y), 10 wide, 10 tall, black on top and sides, white underneath on the belly and a white chest bib at the front. Four straight white legs about 7 blocks tall, one at each corner, with light grey paws. Head: a separate box (about 11x10x10) sitting at the front (-y) end, raised a bit above the body, black with a clear white vertical blaze stripe down the center of the face; a smaller white box snout (about 5 wide, 4 tall) sticking out forward from the lower face with a black nose block on its tip and a small pink tongue under it; two black dot eyes with white highlights either side of the blaze. Two small triangular black ears on top of the head, tips folded forward. Tail: a thick black tail at the back curving upward, ending in a white tip.

// Chunky body: dark coat above a bright white belly.
box(18, 15, 11, 30, 36, 19, "#25252b");
box(19, 16, 19, 29, 35, 20, "#34343a");
box(19, 16, 9, 29, 35, 13, "#f5f4e9");
box(18, 17, 10, 18, 35, 12, "#e7e8e2");
box(30, 17, 10, 30, 35, 12, "#e7e8e2");

// Broad white chest bib at the front.
box(20, 14, 12, 28, 18, 18, "#f5f4e9");
box(22, 13, 14, 26, 15, 20, "#ffffff");

// Raised, square head.
box(19, 7, 18, 29, 17, 28, "#25252b");
box(20, 8, 28, 28, 16, 29, "#34343a");
box(19, 8, 19, 19, 16, 27, "#303037");
box(29, 8, 19, 29, 16, 27, "#303037");

// White face markings and a clear central blaze.
box(23, 6, 21, 25, 8, 28, "#ffffff");
box(23, 8, 29, 25, 12, 29, "#f5f4e9");
box(20, 6, 18, 22, 8, 20, "#f5f4e9");
box(26, 6, 18, 28, 8, 20, "#f5f4e9");

// Big, readable cartoon eyes.
box(20, 6, 23, 21, 6, 25, "#f5f4e9");
box(27, 6, 23, 28, 6, 25, "#f5f4e9");
set(21, 5, 24, "#111116");
set(27, 5, 24, "#111116");
set(21, 5, 25, "#ffffff");
set(27, 5, 25, "#ffffff");

// Boxy muzzle, nose and little tongue.
box(22, 3, 18, 26, 8, 22, "#f5f4e9");
box(22, 3, 22, 26, 6, 22, "#ffffff");
box(23, 2, 20, 25, 3, 22, "#151519");
box(23, 2, 17, 25, 3, 18, "#f08091");
box(24, 2, 17, 24, 2, 18, "#df657b");

// Pointed ears with their tips folded toward the front.
for (const [x0, x1] of [[19, 21], [27, 29]]) {
  box(x0, 10, 29, x1, 14, 30, "#25252b");
  box(x0, 9, 31, x1, 12, 32, "#25252b");
  box(x0 + 1, 7, 32, x1 - 1, 10, 33, "#303037");
  box(x0 + 1, 7, 31, x1 - 1, 8, 32, "#25252b");
}

// Each straight leg has its own shoulder or hip pivot.
function leg(name, x0, y0, speed) {
  part(name, [x0 + 1, y0 + 1, 10]);
  box(x0, y0, 3, x0 + 2, y0 + 3, 10, "#f5f4e9");
  box(x0, y0, 2, x0 + 2, y0 + 3, 4, "#ffffff");
  box(x0, y0 - 1, 0, x0 + 2, y0 + 3, 2, "#c8ccca");
  box(x0, y0 - 1, 2, x0 + 2, y0, 2, "#e0e2dd");
  animate(name, { type: "swing", axis: "x", speed, amplitude: 0.3 });
}
leg("frontLeft", 19, 16, 5);
leg("frontRight", 27, 16, -5);
leg("rearLeft", 19, 32, -5);
leg("rearRight", 27, 32, 5);

// Thick, upward-curving tail with a bright white tip.
part("tail", [24, 36, 17]);
box(22, 36, 16, 26, 39, 19, "#25252b");
box(22, 38, 18, 26, 40, 22, "#25252b");
box(23, 40, 21, 26, 42, 25, "#303037");
box(23, 41, 24, 26, 43, 27, "#f5f4e9");
box(23, 42, 27, 25, 44, 28, "#ffffff");
animate("tail", { type: "swing", axis: "z", speed: 8, amplitude: 0.5 });