← Animals3D assetfogon/labrador
Labrador
Drag to turn it// «Labrador» · gpt-6-sol (medium)
// A friendly cartoon golden labrador dog, horizontal along y, head at the front (-y): a sturdy box body in golden yellow with lighter cream belly, four solid legs, a big square head with a wide muzzle, black nose, floppy ears, black dot eyes and a pink tongue sticking out. A thick tail at the back.
const gold = "#e9aa43";
const lightGold = "#f5bf5b";
const shadowGold = "#cc862d";
const cream = "#ffe1a0";
const creamShadow = "#edc47c";
const ear = "#a96532";
const earShadow = "#884923";
const black = "#251c19";
// Sturdy, rounded body.
part("body");
ellipsoid(24, 27, 19, 11, 12, 9, gold);
box(15, 19, 14, 33, 36, 24, gold);
box(17, 20, 25, 31, 35, 27, lightGold);
box(17, 20, 11, 31, 35, 15, creamShadow);
box(18, 19, 12, 30, 34, 16, cream);
box(17, 16, 16, 31, 21, 26, gold);
box(19, 15, 15, 29, 17, 23, cream);
// Big square head, with softened corners and a bright forehead.
box(14, 7, 22, 34, 19, 36, gold);
box(16, 5, 25, 32, 18, 35, gold);
box(16, 8, 37, 32, 17, 38, lightGold);
box(18, 7, 39, 30, 16, 39, lightGold);
box(14, 10, 24, 15, 17, 33, shadowGold);
box(33, 10, 24, 34, 17, 33, shadowGold);
box(18, 5, 35, 30, 8, 36, lightGold);
// Subtle fur flecks, only on the large golden surfaces.
forEach((x, y, z, color) => {
if (color === gold && rand() < 0.045) {
set(x, y, z, z >= 25 ? lightGold : shadowGold);
}
});
// Floppy ears hang down the sides of the face.
box(10, 7, 25, 14, 16, 35, ear);
box(11, 6, 23, 15, 13, 29, ear);
box(10, 8, 23, 11, 13, 28, earShadow);
box(34, 7, 25, 38, 16, 35, ear);
box(33, 6, 23, 37, 13, 29, ear);
box(37, 8, 23, 38, 13, 28, earShadow);
box(12, 7, 32, 14, 12, 34, "#bf7940");
box(34, 7, 32, 36, 12, 34, "#bf7940");
// Wide, two-lobed cream muzzle.
box(16, 3, 22, 24, 8, 28, creamShadow);
box(17, 2, 23, 24, 6, 28, cream);
box(24, 3, 22, 32, 8, 28, creamShadow);
box(24, 2, 23, 31, 6, 28, cream);
box(19, 2, 28, 29, 6, 29, cream);
// Shiny dot eyes.
box(18, 4, 32, 20, 5, 34, black);
box(28, 4, 32, 30, 5, 34, black);
set(19, 3, 34, "#ffffff");
set(29, 3, 34, "#ffffff");
// Nose, smile, and a little tongue sticking out.
box(21, 1, 27, 27, 3, 30, black);
box(22, 0, 27, 26, 1, 29, "#342722");
box(22, 1, 30, 23, 1, 30, "#766563");
box(24, 1, 24, 24, 2, 26, earShadow);
line(20, 2, 23, 23, 2, 22, 0, earShadow);
line(25, 2, 22, 28, 2, 23, 0, earShadow);
box(23, 0, 19, 25, 2, 23, "#ef7880");
box(23, 0, 19, 25, 0, 20, "#d95769");
set(24, 0, 21, "#ffabb0");
// Four short, solid walking legs with oversized paws.
function leg(name, px, py, dir, speed) {
part(name, [px, py, 15]);
box(px - 3, py - 3, 4, px + 3, py + 3, 16, gold);
box(px - 3, py - 3, 5, px - 2, py + 3, 12, shadowGold);
box(px - 3, py - 5, 0, px + 3, py + 3, 5, lightGold);
box(px - 2, py - 5, 0, px + 2, py - 4, 2, cream);
for (let dx of [-1, 1]) set(px + dx, py - 5, 0, creamShadow);
animate(name, { type: "swing", axis: "x", speed, amplitude: 0.3 });
}
leg("frontLeft", 17, 20, -1, 5);
leg("frontRight", 31, 20, -1, -5);
leg("rearLeft", 17, 34, 1, -5);
leg("rearRight", 31, 34, 1, 5);
// Thick, upturned wagging tail.
part("tail", [24, 37, 23]);
line(24, 37, 23, 24, 41, 25, 3, gold);
line(24, 40, 25, 24, 43, 29, 3, lightGold);
ellipsoid(24, 43, 29, 3, 2, 3, lightGold);
animate("tail", { type: "swing", axis: "z", speed: 8, amplitude: 0.4 });import { draw } from "./assets/voxel";
import { labrador } from "./assets/labrador";
// Every frame: standing on (x, y), the centre of its base.
draw(ctx, labrador, x, y, { size: 64, angle: 0, t: performance.now() / 1000 });
// size: its longest side, in px
// angle: turn on the floor, in radians
// t: seconds; if it moves, that animates it# In a terminal, in the game's folder
fogon assets add labrador
# With Fogón's tools (connector)
add_assets({ slug: "<your-game>", ids: ["labrador"] })
# It lands in client/assets/labrador.ts
# https://fogon.page/object/labrador