fogón

← Basics3D assetfogon/camioneta

Camioneta

by fogonCC024872 blocks
CamionetaDrag to turn it
// «Camioneta» · gpt-6-sol (medium)
// Pickup truck («Camioneta»).

// Teal, open-cab pickup truck. Front faces -y.
const teal = "#168f92";
const tealLight = "#28aeb0";
const tealDark = "#126b72";
const tealDeep = "#104b54";
const chrome = "#c7ccbf";
const chromeLight = "#edf0dc";
const rubber = "#222b2d";

// Chassis and undercarriage
box(9, 5, 8, 39, 42, 12, "#283639");
box(13, 4, 7, 35, 42, 9, "#414b49");
box(8, 5, 12, 40, 42, 16, tealDark);

// Rear bed: raised sides and a dark, open cargo floor
box(9, 30, 16, 39, 42, 17, "#174e57");
box(9, 31, 18, 39, 41, 18, "#287e80");
box(7, 30, 17, 10, 43, 21, teal);
box(38, 30, 17, 41, 43, 21, tealDark);
box(8, 41, 16, 40, 44, 21, teal);
box(8, 42, 21, 40, 44, 21, tealLight);
box(9, 30, 21, 40, 31, 21, tealLight);
box(8, 31, 20, 8, 42, 20, "#4cb5b3");
box(40, 31, 20, 40, 42, 20, "#08616b");
for (let y = 33; y <= 40; y += 4) {
  box(8, y, 18, 8, y, 19, tealDeep);
  box(40, y, 18, 40, y, 19, tealDeep);
}

// Doors and lower cab
box(7, 20, 14, 10, 30, 21, teal);
box(38, 20, 14, 41, 30, 21, tealDark);
box(8, 21, 20, 8, 29, 21, tealLight);
box(40, 21, 20, 40, 29, 21, "#087078");
box(7, 28, 15, 7, 28, 21, tealDeep); // door seam
box(41, 28, 15, 41, 28, 21, tealDeep);
box(6, 24, 19, 7, 27, 19, chromeLight);
box(41, 24, 19, 42, 27, 19, chrome);

// Dark side opening behind the windshield
box(8, 25, 22, 9, 29, 27, tealDeep);
box(39, 25, 22, 40, 29, 27, tealDeep);
box(8, 29, 22, 10, 30, 28, teal);
box(38, 29, 22, 40, 30, 28, tealDark);

// Tall, broad windshield with a pale metal upper rim
box(9, 24, 22, 39, 26, 32, "#194f5c");
box(11, 23, 24, 37, 23, 30, "#327d8a");
box(12, 23, 28, 36, 23, 29, "#4b9aa5");
box(13, 23, 25, 35, 23, 25, "#236575");
box(9, 22, 21, 10, 26, 32, chrome);
box(38, 22, 21, 39, 26, 32, "#a6b2ac");
box(23, 22, 23, 24, 25, 32, "#b4b9ad");
box(8, 23, 33, 40, 27, 33, chromeLight);
box(9, 22, 32, 39, 22, 32, "#b8bbae");
box(10, 27, 34, 39, 28, 34, "#9b9f8e");

// Reflections and windshield wipers
box(13, 22, 29, 19, 22, 30, "#87bfc1");
box(28, 22, 26, 35, 22, 27, "#5fa2aa");
line(12, 21, 23, 21, 21, 25, 0, "#353f41");
line(36, 21, 23, 27, 21, 25, 0, "#353f41");

// Long squared-off hood
box(8, 5, 15, 40, 22, 19, teal);
box(9, 6, 19, 39, 20, 20, tealLight);
box(11, 8, 20, 37, 18, 20, "#38adb0");
box(9, 20, 19, 39, 21, 19, tealDeep);
box(7, 6, 15, 9, 21, 18, tealDark);
box(39, 6, 15, 41, 21, 18, "#08747b");
box(8, 6, 18, 8, 20, 18, "#55b9b6");
box(40, 6, 18, 40, 20, 18, "#11646a");

// Subtle hood creases and a small raised center detail
box(13, 7, 20, 14, 17, 20, "#58bfc0");
box(35, 7, 20, 36, 17, 20, "#218f97");
box(22, 7, 21, 29, 14, 21, "#49b2b2");
box(22, 7, 22, 29, 8, 22, "#208b90");

// Front fascia, deep grille and golden square lamps
box(8, 3, 11, 40, 5, 17, "#aebbb3");
box(10, 2, 12, 38, 2, 16, "#d3d6c8");
box(17, 1, 11, 33, 2, 17, "#243a3d");
for (let x = 18; x <= 33; x += 5) {
  box(x, 0, 11, x + 1, 1, 17, "#d9ded0");
}
box(17, 1, 14, 34, 1, 14, "#adb9b4");
box(9, 1, 13, 15, 2, 17, "#c3b172");
box(10, 0, 14, 14, 0, 16, "#f4d977");
box(11, 0, 15, 13, 0, 16, "#ffe69a");
box(35, 1, 13, 41, 2, 17, "#baaa70");
box(36, 0, 14, 40, 0, 16, "#f1d275");
box(37, 0, 15, 39, 0, 16, "#ffe99b");
box(8, 3, 17, 14, 4, 17, tealLight);
box(35, 3, 17, 41, 4, 17, tealLight);

// Chunky chrome bumper and its dark mounting brackets
box(7, 0, 7, 41, 2, 9, "#aeb8b3");
box(9, 0, 9, 39, 1, 9, chromeLight);
box(8, 0, 7, 40, 0, 7, "#879598");
box(18, 0, 7, 20, 0, 10, "#364348");
box(29, 0, 7, 31, 0, 10, "#364348");
box(6, 1, 8, 9, 3, 9, chrome);
box(39, 1, 8, 43, 3, 9, chrome);
box(23, 0, 7, 27, 0, 8, "#26373b");

// Side steps below the doors
box(4, 19, 9, 9, 29, 10, "#b5bdb6");
box(40, 19, 9, 44, 29, 10, "#a4afaa");
for (let y = 21; y <= 27; y += 3) {
  box(4, y, 10, 6, y, 10, chromeLight);
  box(42, y, 10, 44, y, 10, chromeLight);
}

// Side mirrors on thin metal arms
box(4, 22, 26, 9, 23, 27, "#aebeb8");
box(2, 20, 25, 5, 24, 29, chromeLight);
box(2, 20, 25, 2, 24, 29, "#dce2d9");
box(39, 22, 26, 44, 23, 27, "#9aa9a5");
box(44, 20, 25, 47, 24, 29, "#aeb9b5");
box(47, 20, 25, 47, 24, 29, chromeLight);

// Four broad off-road tyres, with irregular blocky tread and inset hubs.
for (const wy of [10, 36]) {
  for (const left of [true, false]) {
    const xa = left ? 1 : 40;
    const xb = left ? 7 : 46;
    const outer = left ? 1 : 46;
    for (let x = xa; x <= xb; x++) {
      for (let y = wy - 7; y <= wy + 7; y++) {
        for (let z = 0; z <= 14; z++) {
          const d = Math.hypot(y - wy, z - 7);
          if (d > 7.1) continue;
          const edge = d > 5.45;
          const tread = (Math.floor((y - wy + 7) / 2) +
                         Math.floor(z / 2) + x) % 4;
          let c = edge
            ? (tread === 0 ? "#3b4543" : tread === 1 ? "#161e21" : rubber)
            : "#273033";
          if (x === outer && d < 5.2) c = "#303b3d";
          set(x, y, z, c);
        }
      }
    }
    // Raised tread lugs around the visible outside face
    for (let i = 0; i < 12; i++) {
      const a = i * Math.PI / 6;
      const y = Math.round(wy + 6.2 * Math.cos(a));
      const z = Math.round(7 + 6.2 * Math.sin(a));
      box(outer, y, z, outer, y + 1, z + 1,
          i % 3 ? "#293436" : "#46504b");
    }
    const hx = left ? 0 : 47;
    for (let y = wy - 4; y <= wy + 4; y++) {
      for (let z = 3; z <= 11; z++) {
        const d = Math.hypot(y - wy, z - 7);
        if (d <= 4.1) set(hx, y, z, d > 3.1 ? "#778481" : "#aebbb5");
      }
    }
    box(hx, wy - 1, 6, hx, wy + 1, 8, "#526365");
    set(hx, wy, 7, "#d6dcd1");
    for (const [dy, dz] of [[0, 3], [3, 0], [0, -3], [-3, 0]]) {
      set(hx, wy + dy, 7 + dz, "#d5ded5");
    }
  }
}

// Rear lamps and small tailgate fittings
box(8, 44, 15, 10, 44, 19, "#b6754e");
box(38, 44, 15, 40, 44, 19, "#c48251");
box(19, 44, 17, 29, 44, 18, "#237980");
box(8, 44, 9, 40, 44, 10, "#aeb9b4");

// Sparse highlights and wear on the large painted panels
forEach((x, y, z, color) => {
  if ((color === teal || color === tealLight) && rand() < 0.035) {
    set(x, y, z, rand() < 0.55 ? "#34a3a5" : "#167c81");
  }
});