← Casa completaObjeto 3Dfogon/mesada-con-bacha
Mesada con bacha
Arrastrá para girarlo// «Mesada con bacha» · gpt-6-sol (medium)
// A kitchen counter: a long base cabinet in light wood with three doors and drawers, a grey stone countertop, a stainless steel sink in the middle with a tall curved chrome faucet, a cutting board with a tomato and a knife, and a dish rack with plates.
// Warm wooden cabinet and recessed toe kick
box(6, 14, 0, 41, 32, 2, "#80543b");
box(5, 12, 3, 42, 33, 24, "#c58a50");
box(5, 12, 23, 42, 33, 24, "#e0aa68");
box(5, 12, 3, 42, 12, 22, "#ae7145");
// Three framed doors and their drawers
for (const [left, right] of [[6, 16], [18, 29], [31, 41]]) {
box(left, 10, 4, right, 11, 18, "#915c3d");
box(left + 1, 9, 5, right - 1, 10, 17, "#d69b59");
box(left + 2, 8, 7, right - 2, 8, 15, "#e8b877");
box(left + 2, 8, 6, right - 2, 8, 6, "#b87948");
box(left, 10, 19, right, 11, 22, "#925e40");
box(left + 1, 9, 20, right - 1, 9, 21, "#e5ad6a");
// Chunky chrome drawer pull
box(left + 3, 8, 20, right - 3, 8, 20, "#dae2df");
set(left + 3, 7, 20, "#f8fbf5");
set(right - 3, 7, 20, "#f8fbf5");
}
for (const x of [14, 27, 39]) {
box(x, 7, 12, x + 1, 7, 14, "#b4bfc0");
set(x, 6, 13, "#f5f8f1");
set(x + 1, 6, 13, "#e1e9e6");
}
// Thick grey stone countertop, with a softly mottled top
box(3, 10, 25, 44, 35, 26, "#858e90");
box(3, 10, 27, 44, 35, 27, "#b9c0bf");
for (let x = 3; x <= 44; x++) {
for (let y = 10; y <= 35; y++) {
if (rand() < 0.12) set(x, y, 27, "#c5cbca");
else if (rand() < 0.07) set(x, y, 27, "#aab3b2");
}
}
box(3, 10, 25, 44, 10, 25, "#717b7d");
box(3, 10, 26, 44, 10, 26, "#a1aaaa");
// Sink: cut the stone away so the basin reads as deep
box(20, 18, 22, 28, 28, 27, null);
box(20, 18, 22, 28, 28, 22, "#798c90");
box(21, 19, 23, 27, 27, 23, "#a3b7b9");
for (let z = 23; z <= 27; z++) {
box(19, 17, z, 19, 29, z, "#c5d0cf");
box(29, 17, z, 29, 29, z, "#899a9d");
box(20, 17, z, 28, 17, z, "#e1e6df");
box(20, 29, z, 28, 29, z, "#8c9d9f");
}
box(18, 16, 28, 30, 17, 28, "#eef0e9");
box(18, 29, 28, 30, 30, 28, "#aab8b8");
box(18, 18, 28, 19, 28, 28, "#e4e9e4");
box(29, 18, 28, 30, 28, 28, "#d1dada");
set(24, 23, 23, "#52676c");
set(24, 23, 22, "#44585d");
// Tall curved faucet at the back of the sink
box(23, 31, 28, 25, 33, 29, "#9eaaac");
box(24, 32, 30, 24, 32, 36, "#e6edeb");
line(24, 32, 36, 24, 30, 39, 1, "#c5d3d2");
line(24, 30, 39, 24, 24, 39, 1, "#dce7e3");
line(24, 24, 39, 24, 22, 36, 1, "#c9d5d3");
box(23, 21, 35, 25, 23, 36, "#f0f4ee");
set(23, 32, 33, "#899b9e");
box(27, 32, 29, 29, 32, 29, "#bec9c7");
set(29, 31, 29, "#f2f3ec");
// Cutting board on the left
box(6, 14, 28, 16, 25, 28, "#a87044");
box(7, 15, 29, 16, 24, 29, "#e4b478");
box(8, 16, 29, 15, 23, 29, "#edc58b");
box(6, 18, 28, 7, 21, 29, "#b98251");
set(7, 19, 29, "#8c623f");
// A bright tomato, little leaves, and a kitchen knife
sphere(10, 19, 32, 3, "#da4937");
for (const [x, y, z, c] of [
[9, 17, 33, "#f16a4c"], [10, 17, 34, "#f16a4c"],
[8, 19, 32, "#e95c41"], [12, 20, 31, "#b93730"],
[10, 19, 35, "#488b51"], [9, 19, 35, "#62a35c"],
[11, 19, 35, "#62a35c"], [10, 18, 35, "#62a35c"],
[10, 20, 35, "#488b51"]
]) set(x, y, z, c);
box(13, 16, 30, 15, 17, 30, "#f2f3e9");
box(13, 16, 30, 13, 17, 30, "#aebfc1");
box(16, 16, 30, 17, 17, 30, "#805e49");
set(17, 16, 30, "#a57952");
// Wire dish rack on the right
box(32, 20, 28, 43, 21, 29, "#aebcba");
box(32, 32, 28, 43, 33, 29, "#aebcba");
box(32, 21, 28, 32, 32, 29, "#d7e0dc");
box(43, 21, 28, 43, 32, 29, "#87999b");
for (const x of [34, 38, 42]) {
line(x, 22, 29, x, 31, 29, 0, "#dde5df");
}
// Three upright, pastel-rimmed plates
const rims = ["#96c9be", "#efb5a3", "#a6c9df"];
for (let i = 0; i < 3; i++) {
const cx = 34 + i * 4;
const cy = 24 + i * 3;
for (let dx = -2; dx <= 2; dx++) {
for (let dz = -3; dz <= 3; dz++) {
const d = (dx * dx) / 6.25 + (dz * dz) / 12.25;
if (d <= 1) {
const color = d > 0.49 ? rims[i] : "#f9f5e9";
set(cx + dx, cy, 33 + dz, color);
if (d < 0.6) set(cx + dx, cy - 1, 33 + dz, color);
}
}
}
}import { draw } from "./assets/voxel";
import { mesadaConBacha } from "./assets/mesada-con-bacha";
// En cada cuadro: parado sobre (x, y), el centro de su base.
draw(ctx, mesadaConBacha, 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 mesada-con-bacha
# Con las herramientas de Fogón (conector)
add_assets({ slug: "<tu-juego>", ids: ["mesada-con-bacha"] })
# Queda en client/assets/mesada-con-bacha.ts
# https://fogon.page/object/mesada-con-bacha