← Whole house3D assetfogon/compu-de-escritorio
Compu de escritorio
Drag to turn it// «Compu de escritorio» · gpt-6-sol (medium)
// A desktop computer set: a wide monitor on a stand showing a bright blue desktop with windows, a keyboard and mouse in front of it, and a tower case beside it with a glowing power light.
// Warm wooden display base
box(3, 4, 0, 44, 40, 1, "#a9683d");
box(4, 5, 2, 43, 39, 2, "#d69a60");
box(4, 5, 1, 43, 5, 1, "#efbc7b");
for (let x = 5; x <= 42; x++) {
for (let y = 6; y <= 38; y++) {
if (rand() < 0.055) set(x, y, 2, rand() < 0.5 ? "#e2aa70" : "#c88953");
}
}
// Monitor stand and broad, rounded foot
box(16, 27, 4, 22, 31, 15, "#b7c0c3");
box(17, 26, 7, 21, 29, 16, "#e8edeb");
box(13, 24, 3, 25, 34, 4, "#aeb9bd");
box(14, 24, 5, 24, 33, 5, "#f5f4ed");
box(15, 25, 6, 23, 32, 6, "#dbe1df");
// Chunky cream monitor casing, facing -y
box(7, 23, 17, 31, 29, 35, "#c4cbca");
box(8, 22, 18, 30, 28, 36, "#faf5e9");
box(9, 22, 19, 29, 22, 33, "#778b97");
box(8, 22, 17, 30, 22, 18, "#e3dfd4");
box(10, 29, 23, 28, 29, 23, "#9da9aa");
box(11, 29, 21, 27, 29, 21, "#9da9aa");
set(19, 21, 17, "#efac70");
// The animated blue desktop is its own part.
part("screen", [19, 22, 26]);
box(9, 21, 19, 29, 21, 33, "#59bff0");
animate("screen", {
type: "colors",
palette: ["#309ee3", "#63c9f5", "#a7e6fa", "#f0fbff"],
pattern: "pulse",
glow: 0.4
});
part("body");
// Desktop taskbar, icons, and two cheerful overlapping windows
box(9, 20, 19, 29, 20, 20, "#287bb6");
box(10, 19, 19, 11, 19, 20, "#f3c365");
set(13, 19, 19, "#f6f6e9");
set(15, 19, 19, "#f6f6e9");
set(27, 19, 19, "#d6f5f8");
box(11, 20, 25, 21, 20, 31, "#f9f7eb");
box(11, 19, 30, 21, 19, 31, "#80cdbb");
box(12, 19, 27, 18, 19, 28, "#d9eae6");
box(12, 19, 26, 20, 19, 26, "#edbd81");
set(20, 18, 30, "#f7a586");
box(19, 19, 22, 27, 19, 28, "#fff7e9");
box(19, 18, 27, 27, 18, 28, "#f5ac90");
box(20, 18, 24, 22, 18, 25, "#a0dacc");
box(24, 18, 24, 26, 18, 25, "#f7d389");
set(26, 17, 27, "#fffaf2");
set(28, 19, 31, "#fff8e7");
set(27, 19, 30, "#fff8e7");
// Keyboard: shallow sloped-looking case and raised pastel keys
box(7, 6, 3, 30, 18, 4, "#aeb8bd");
box(8, 7, 5, 29, 17, 5, "#e7ecea");
box(8, 17, 4, 29, 18, 4, "#f9f7ee");
for (let row = 0; row < 3; row++) {
const y = 8 + row * 3;
for (let col = 0; col < 7; col++) {
const x = 9 + col * 3;
const colors = ["#fff9ec", "#f9e1ce", "#d1ebe1", "#e4eafa"];
box(x, y, 6, x + 1, y + 1, 6, colors[(row + col) % colors.length]);
if (rand() < 0.65) set(x, y, 7, "#b2bfc0");
}
}
box(15, 8, 6, 23, 9, 6, "#fff9ec");
box(17, 8, 7, 21, 8, 7, "#d8ddd6");
// Rounded mouse with split buttons and scroll wheel
ellipsoid(37, 12, 4, 3, 5, 2, "#e9eeee");
ellipsoid(37, 11, 5, 2, 3, 1, "#fffaf0");
line(37, 8, 6, 37, 12, 6, 0, "#a9b4b7");
box(37, 10, 7, 37, 11, 7, "#6a8b9b");
// White tower with grey side trim and a recessed front panel
box(34, 23, 3, 43, 35, 32, "#aeb8bb");
box(34, 22, 4, 42, 34, 33, "#f4f3eb");
box(35, 21, 5, 42, 21, 31, "#dce3e2");
box(36, 20, 8, 41, 20, 20, "#788b93");
box(37, 19, 9, 40, 19, 18, "#9baeb2");
box(36, 20, 24, 41, 20, 27, "#c6d1d0");
box(37, 19, 25, 40, 19, 25, "#f9f8f0");
box(35, 21, 30, 41, 21, 30, "#faf9f1");
// Readable vents, drive slot, power button and glowing indicator
for (let z = 10; z <= 17; z += 2) {
box(37, 18, z, 40, 18, z, "#657b83");
}
box(37, 18, 26, 40, 18, 26, "#879ba1");
box(36, 19, 28, 41, 19, 28, "#899ca1");
box(37, 18, 28, 40, 18, 28, "#536e79");
box(37, 19, 22, 39, 19, 23, "#70c5d4");
set(38, 18, 23, "#c7fff2");
set(39, 18, 23, "#83f1dc");
set(41, 19, 23, "#fff9d0");
box(35, 21, 6, 41, 21, 6, "#b7c1c0");
// Small walnut accents tie the computer set to the wooden base.
box(10, 5, 1, 17, 5, 1, "#b77743");
box(32, 5, 1, 39, 5, 1, "#b77743");import { draw } from "./assets/voxel";
import { compuDeEscritorio } from "./assets/compu-de-escritorio";
// Every frame: standing on (x, y), the centre of its base.
draw(ctx, compuDeEscritorio, 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 compu-de-escritorio
# With Fogón's tools (connector)
add_assets({ slug: "<your-game>", ids: ["compu-de-escritorio"] })
# It lands in client/assets/compu-de-escritorio.ts
# https://fogon.page/object/compu-de-escritorio