← Pirates and sea3D assetfogon/loro-pirata
Loro pirata
Drag to turn it// «Loro pirata» · gpt-6-sol (medium)
// A bright cartoon parrot perched on a short wooden perch stand: red body, blue and yellow wing feathers, a long red tail hanging down, a curved white and black beak, white eye patches with black dot eyes, and a tiny black pirate hat on its head.
// Short wooden perch stand
box(8, 20, 0, 40, 28, 2, "#89502d");
box(9, 20, 2, 39, 21, 2, "#bd8050");
box(9, 27, 2, 39, 28, 2, "#6e3b24");
box(22, 22, 3, 26, 26, 14, "#92552e");
box(22, 22, 3, 23, 26, 14, "#b67642");
box(22, 22, 9, 26, 22, 9, "#c88c53");
box(22, 22, 12, 26, 22, 12, "#c88c53");
cylinder(10, 24, 16, 2, 29, "#93572f", "x");
box(11, 22, 17, 38, 22, 17, "#c58a50");
for (let x = 13; x <= 36; x += 5) {
set(x, 21, 16, "#deb078");
set(x + 1, 21, 16, "#6e3b24");
}
// Long, layered tail feathers hanging behind the perch
line(22, 28, 23, 19, 32, 6, 1.6, "#b81826");
line(24, 29, 23, 24, 34, 5, 1.7, "#ed2934");
line(26, 28, 23, 29, 32, 7, 1.5, "#cf1c2c");
line(23, 31, 17, 22, 34, 6, 0, "#ff6860");
line(27, 30, 17, 29, 32, 8, 0, "#ff6860");
// Claws curled over the perch
for (const x of [21, 27]) {
box(x - 1, 21, 17, x + 1, 25, 19, "#edb840");
for (let dx = -1; dx <= 1; dx++) {
line(x + dx, 21, 18, x + dx, 19, 16, 0, "#fbd56a");
set(x + dx, 19, 15, "#8d5729");
}
}
// Plump red body and sunny chest
ellipsoid(24, 24, 26, 7.5, 6, 8.5, "#c91e2b");
ellipsoid(24, 19.5, 26, 6, 2.5, 7, "#ef3139");
ellipsoid(24, 17.7, 27, 4.5, 0.8, 5, "#ff5650");
ellipsoid(24, 25, 32, 5, 4, 3, "#df2733");
// Individually flapping wings
for (const side of [-1, 1]) {
const shoulder = 24 + side * 6;
const name = side < 0 ? "leftWing" : "rightWing";
part(name, [shoulder, 22, 29]);
ellipsoid(24 + side * 10.5, 22, 27.5, 5.5, 2.5, 3.4, "#0876cb");
ellipsoid(24 + side * 7, 20.5, 30, 3.2, 2, 2.4, "#ef3840");
// Yellow coverts over chunky blue flight feathers
ellipsoid(24 + side * 10.5, 19.5, 29.4, 4.3, 1.3, 1.6, "#ffd43d");
line(24 + side * 8, 18, 29, 24 + side * 13, 18, 29, 0, "#fff18a");
for (let i = 0; i < 4; i++) {
line(
24 + side * (11 + i * 0.5), 22, 27 - i,
24 + side * (17 + i * 0.4), 22, 25 - i * 1.3,
1.1, i % 2 ? "#075bae" : "#168fe0"
);
}
line(24 + side * 15, 20, 25, 24 + side * 18, 20, 23, 0, "#61b8f2");
animate(name, { type: "swing", axis: "y", speed: side < 0 ? 6 : -6, amplitude: 0.5 });
}
part("body");
// Head bobs gently from the neck
part("head", [24, 21, 33]);
ellipsoid(24, 21, 36, 6.3, 5.8, 6, "#e62934");
ellipsoid(24, 16.7, 36.5, 4.5, 1.7, 4, "#ff4b48");
// Big white eye patches and tiny forward-facing pupils
for (const x of [21, 27]) {
ellipsoid(x, 15.8, 37.4, 2.15, 1.3, 2.3, "#fff9eb");
box(x, 14, 37, x, 14, 38, "#161b24");
set(x - 1, 13, 39, "#ffffff");
}
// Curved ivory upper beak, dark lower hook
ellipsoid(24, 12.8, 33.7, 3.2, 3.3, 2.7, "#f9f6e9");
ellipsoid(24, 11.2, 32.4, 2.4, 2.4, 2.8, "#e4e1d9");
box(23, 9, 30, 25, 11, 32, "#262631");
box(23, 11, 30, 25, 13, 31, "#292933");
set(22, 11, 34, "#46414a");
set(26, 11, 34, "#46414a");
// Tiny toy-like pirate hat: raised corners, broad brim, white skull
box(18, 16, 41, 30, 25, 42, "#161b23");
box(20, 17, 43, 28, 24, 44, "#242a32");
box(18, 17, 43, 19, 23, 44, "#10151d");
box(29, 17, 43, 30, 23, 44, "#10151d");
box(21, 16, 42, 27, 16, 42, "#b88c36");
box(23, 15, 43, 25, 15, 44, "#fff8df");
set(23, 14, 43, "#17202a");
set(25, 14, 43, "#17202a");
set(24, 14, 42, "#fff8df");
set(22, 15, 42, "#fff8df");
set(26, 15, 42, "#fff8df");
animate("head", { type: "bob", axis: "x", speed: 3, amplitude: 0.2 });
part("body");import { draw } from "./assets/voxel";
import { loroPirata } from "./assets/loro-pirata";
// Every frame: standing on (x, y), the centre of its base.
draw(ctx, loroPirata, 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 loro-pirata
# With Fogón's tools (connector)
add_assets({ slug: "<your-game>", ids: ["loro-pirata"] })
# It lands in client/assets/loro-pirata.ts
# https://fogon.page/object/loro-pirata