← Casa completaObjeto 3Dfogon/sillon
Sillón
Arrastrá para girarlo// «Sillón» · gpt-6-sol (medium)
// A chunky armchair: a deep seat with a fat mustard cushion, thick rounded armrests and a tall padded back, all in mustard fabric with darker piping, sitting on four short tapered wooden legs. A small knitted cream blanket draped over one arm.
const mustard = "#dba638";
const light = "#efbd50";
const shadow = "#b77e25";
const piping = "#956120";
const cream = "#f5ead3";
const creamShade = "#ded0b4";
// Four short, tapered walnut legs.
for (const x of [12, 36]) {
for (const y of [13, 35]) {
box(x - 2, y - 2, 5, x + 2, y + 2, 9, "#89552f");
box(x - 1, y - 1, 1, x + 1, y + 1, 5, "#a76b3b");
box(x - 1, y - 1, 0, x + 1, y + 1, 1, "#714425");
box(x - 1, y - 1, 2, x + 1, y - 1, 5, "#bf8248");
}
}
// Deep upholstered seat frame.
box(10, 10, 8, 38, 38, 16, shadow);
box(11, 9, 10, 37, 11, 15, mustard);
box(12, 10, 15, 36, 36, 18, mustard);
line(11, 9, 10, 37, 9, 10, 0, piping);
// Tall, generously rounded padded back.
box(9, 34, 15, 39, 41, 34, mustard);
ellipsoid(24, 37, 33, 16, 4, 7, mustard);
box(12, 32, 22, 36, 35, 35, light);
ellipsoid(24, 33, 29, 12, 4, 9, light);
ellipsoid(24, 32, 27, 11, 2, 7, mustard);
// Soft, thick seat cushion, projecting toward the viewer.
box(14, 11, 17, 34, 33, 21, light);
ellipsoid(24, 21, 20, 12, 13, 4, light);
box(16, 10, 18, 32, 12, 21, light);
line(15, 10, 17, 33, 10, 17, 0, piping);
line(16, 10, 22, 32, 10, 22, 0, shadow);
// Chunky arms with pillowy rounded tops.
for (const x of [10, 38]) {
box(x - 3, 11, 14, x + 3, 35, 23, mustard);
ellipsoid(x, 23, 23, 4, 14, 4, light);
ellipsoid(x, 12, 22, 4, 4, 4, mustard);
line(x - 3, 13, 23, x - 3, 33, 23, 0, shadow);
line(x + 3, 13, 23, x + 3, 33, 23, 0, shadow);
}
// Gentle variations in the woven mustard upholstery.
forEach((x, y, z, color) => {
if (color === mustard && rand() < 0.075) set(x, y, z, "#e4ad40");
if (color === light && rand() < 0.055) set(x, y, z, "#f3c45d");
});
// Readable piping and little inset tufting on the back cushion.
line(11, 33, 20, 11, 33, 34, 0, piping);
line(37, 33, 20, 37, 33, 34, 0, piping);
line(15, 35, 38, 33, 35, 38, 0, shadow);
for (const x of [18, 24, 30]) {
set(x, 29, 29, shadow);
set(x + 1, 29, 29, "#f5ca67");
}
for (const x of [18, 29]) {
set(x, 9, 13, shadow);
set(x + 1, 9, 13, "#f1bf54");
}
// A small knitted blanket folded over the viewer's left arm.
box(6, 12, 26, 14, 25, 27, creamShade);
box(7, 13, 27, 14, 24, 28, cream);
box(5, 13, 16, 6, 24, 26, cream);
box(6, 12, 17, 7, 25, 25, creamShade);
box(7, 10, 19, 13, 12, 26, cream);
line(7, 10, 19, 13, 10, 19, 0, creamShade);
// Knitted rows and a tidy raised border.
for (let y = 14; y <= 23; y += 2) {
for (let x = 8 + (y % 4 === 0); x <= 13; x += 3) {
set(x, y, 29, "#fff7e8");
}
set(4, y, 19, "#fff7e8");
set(4, y, 23, "#fff7e8");
}
line(5, 13, 15, 5, 24, 15, 0, "#fff7e8");
line(7, 12, 28, 14, 12, 28, 0, "#fff7e8");
// Short dangling yarn tassels.
for (const y of [14, 17, 20, 23]) {
line(5, y, 15, 5, y, 13 - (y % 3), 0, cream);
}import { draw } from "./assets/voxel";
import { sillon } from "./assets/sillon";
// En cada cuadro: parado sobre (x, y), el centro de su base.
draw(ctx, sillon, x, y, { size: 64, angle: 0, t: performance.now() / 1000 });
// size: lo que mide en px su lado más largo
// angle: giro sobre el piso, en radianes
// t: segundos; si se mueve, se anima solo con eso# En una terminal, en la carpeta del juego
fogon assets add sillon
# Con las herramientas de Fogón (conector)
add_assets({ slug: "<tu-juego>", ids: ["sillon"] })
# Queda en client/assets/sillon.ts
# https://fogon.page/object/sillon