← Animals3D assetfogon/flamenco
Flamenco
Drag to turn it// «Flamenco» · gpt-6-sol (medium)
// A cartoon pink flamingo standing on one long thin pink leg, facing front (-y): an oval pink body with darker pink wing feathers, a long S-curved neck, and a small head with a bent black-tipped beak. The other leg folded up.
const pink = "#f47ca4";
const lightPink = "#ff9fbb";
const shadowPink = "#dd5f8e";
const featherPink = "#d94c82";
const deepPink = "#ba3e72";
const legPink = "#ee7199";
// Long standing leg and broad, forward-pointing toy feet.
line(25, 26, 0, 25, 26, 16, 1, legPink);
line(25, 26, 0, 25, 17, 0, 1, pink);
line(25, 19, 0, 22, 16, 0, 1, pink);
line(25, 19, 0, 28, 16, 0, 1, pink);
sphere(25, 26, 1, 1.5, lightPink);
// The other leg is tucked up beneath the body.
line(20, 26, 16, 18, 23, 11, 1, shadowPink);
line(18, 23, 11, 23, 22, 11, 1, legPink);
sphere(18, 23, 11, 1.5, lightPink);
// Chunky oval body, with subtle variation across its pink surface.
ellipsoid(24, 26, 21, 12, 8, 7, pink);
forEach((x, y, z) => {
if (z >= 24 && rand() < 0.55) set(x, y, z, lightPink);
else if (z <= 18 && rand() < 0.7) set(x, y, z, shadowPink);
else if (rand() < 0.035) set(x, y, z, lightPink);
});
// Rounded wings on both sides, with bold scalloped feather tips.
for (const side of [-1, 1]) {
ellipsoid(24 + side * 9, 24, 22, 4, 6, 4, shadowPink);
ellipsoid(24 + side * 10, 22, 23, 2.5, 4, 2.5, featherPink);
for (let i = 0; i < 3; i++) {
ellipsoid(24 + side * (9 + i), 27 + i, 19 - i * 0.5,
2, 2.5, 1.5, i === 2 ? deepPink : featherPink);
}
}
ellipsoid(24, 33, 24, 5, 4, 3, lightPink);
// The neck and head sway together from the front of the body.
part("neck", [24, 20, 26]);
line(24, 20, 26, 24, 17, 30, 2.5, pink);
line(24, 17, 30, 24, 22, 34, 2.5, pink);
line(24, 22, 34, 24, 22, 37, 2.5, pink);
line(24, 22, 37, 24, 18, 40, 2.5, lightPink);
sphere(24, 17, 30, 2.5, shadowPink);
sphere(24, 22, 35, 2.5, pink);
ellipsoid(24, 17, 40, 5, 4.3, 4.5, lightPink);
// Small eyes looking toward the front.
for (const x of [21, 27]) {
sphere(x, 13, 41, 1, "#20202a");
set(x, 12, 42, "#ffffff");
}
// Pale upper beak bends sharply downward into a black tip.
ellipsoid(24, 12, 38, 2.4, 3, 1.8, "#ffe5d3");
line(24, 10, 38, 24, 8, 36, 1.6, "#f7d7c5");
line(24, 8, 36, 24, 8, 34, 1.5, "#292530");
sphere(24, 8, 34, 1.4, "#191b25");
animate("neck", { type: "swing", axis: "x", speed: 1.5, amplitude: 0.15 });import { draw } from "./assets/voxel";
import { flamenco } from "./assets/flamenco";
// Every frame: standing on (x, y), the centre of its base.
draw(ctx, flamenco, 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 flamenco
# With Fogón's tools (connector)
add_assets({ slug: "<your-game>", ids: ["flamenco"] })
# It lands in client/assets/flamenco.ts
# https://fogon.page/object/flamenco