fogón

← Gear3D assetfogon/mandoble

Mandoble

by fogonCC04360 blocks
MandobleDrag to turn it
// «Mandoble» · gpt-6-sol (medium)
// A huge two-handed greatsword: a very long and wide steel blade filling almost the whole length, a long double-width grip wrapped in dark brown leather, a big flat iron crossguard with curled ends and a heavy iron pommel. It LIES FLAT horizontally on the ground (z=0), as a chunky toy-like item seen from above: tip/front toward -y, handle/back toward +y, centered on x, using most of the grid along y, at least 4-5 blocks thick so it reads at small size. No hands, no stand, no base plate.

// Greatsword lying flat: tip toward -y, pommel toward +y.
const steelDark = "#68737d";
const steelMid = "#929da7";
const steelLight = "#c5d0d7";
const steelEdge = "#e0e8e9";
const ironDark = "#454d55";
const ironMid = "#717c83";
const ironLight = "#aab5b8";
const brass = "#b88b43";
const gold = "#e3ba65";

// Broad, solid blade with a tapered point, beveled edges, and a raised spine.
for (let y = 1; y <= 29; y++) {
  let half;
  if (y <= 9) half = Math.min(9, y);
  else if (y <= 26) half = 9;
  else half = y <= 28 ? 8 : 7;

  for (let x = 24 - half; x <= 24 + half; x++) {
    const edgeDistance = half - Math.abs(x - 24);
    let top = edgeDistance === 0 ? 2 : edgeDistance === 1 ? 3 : 4;
    if (Math.abs(x - 24) <= 1 && y >= 6) top = 5;

    for (let z = 0; z <= top; z++) {
      let color = steelDark;
      if (z === top) {
        if (edgeDistance === 0) color = steelEdge;
        else if (Math.abs(x - 24) <= 1 && y >= 6) color = steelLight;
        else if (x < 24) color = rand() < 0.09 ? "#aab7c0" : steelMid;
        else color = rand() < 0.09 ? "#a8b3bc" : "#84919c";
      }
      set(x, y, z, color);
    }
  }
}

// Long, subtle channels flanking the bright central ridge.
for (let y = 12; y <= 27; y++) {
  set(21, y, 5, "#72818e");
  set(27, y, 5, "#72818e");
  set(23, y, 5, "#d5dfe2");
  set(24, y, 5, steelEdge);
}

// A small engraved mark near the blade's heel.
for (let y = 25; y <= 28; y++) set(24, y, 6, brass);
set(23, 26, 6, gold);
set(25, 26, 6, gold);

// Flat iron crossguard, wide enough to dominate the silhouette.
box(10, 30, 0, 38, 33, 4, ironDark);
box(11, 30, 4, 37, 33, 4, ironMid);
box(12, 30, 5, 36, 30, 5, ironLight);
box(12, 33, 5, 36, 33, 5, "#89969a");

for (let x = 11; x <= 37; x++) {
  if (x >= 19 && x <= 29) continue;
  set(x, 31, 5, x % 5 === 0 ? ironLight : ironMid);
  set(x, 32, 5, ironMid);
}

// Thick, hooked ends curl toward the blade and back toward the grip.
for (const [y, xmin, xmax] of [
  [28, 7, 9], [29, 5, 9], [30, 5, 10], [31, 5, 10],
  [32, 6, 10], [33, 6, 10], [34, 7, 10],
  [35, 7, 9], [36, 8, 9]
]) {
  for (let x = xmin; x <= xmax; x++) {
    for (const xx of [x, 48 - x]) {
      box(xx, y, 0, xx, y, 4, ironDark);
      set(xx, y, 5, x === xmin || y === 28 ? ironLight : ironMid);
    }
  }
}
for (const x of [6, 42]) {
  box(x, 30, 6, x + 1, 31, 6, ironLight);
}

// Raised central socket and restrained brass decoration.
box(18, 30, 0, 30, 34, 5, ironDark);
box(19, 30, 5, 29, 34, 5, ironMid);
box(21, 31, 6, 27, 33, 6, brass);
box(22, 31, 7, 26, 33, 7, gold);
box(23, 31, 8, 25, 33, 8, "#a92932");
set(24, 31, 9, "#e76161");
set(24, 32, 9, "#cf4148");
for (const x of [14, 16, 32, 34]) {
  box(x, 31, 5, x, 32, 5, brass);
}

// Long, double-width leather grip, solid and chunky.
box(20, 34, 0, 28, 45, 4, "#452c24");
box(21, 35, 5, 27, 44, 5, "#79513a");
for (let y = 36; y <= 43; y++) {
  for (let x = 21; x <= 27; x++) {
    set(x, y, 5, rand() < 0.13 ? "#98684a" : "#79513a");
  }
  set(20, y, 4, "#583728");
  set(28, y, 4, "#533326");
}

// Angled-looking broad leather wraps and dark stitches.
for (let y = 36; y <= 43; y += 3) {
  for (let x = 20; x <= 28; x++) {
    const yy = y + (x >= 25 ? 1 : 0);
    if (yy <= 44) set(x, yy, x === 20 || x === 28 ? 5 : 6,
      x % 3 === 0 ? "#a57250" : "#4e3026");
  }
}
for (let y = 37; y <= 43; y += 3) {
  set(22, y, 6, "#30211e");
  set(26, y + 1, 6, "#30211e");
}

// Sturdy metal collars at both ends of the grip.
box(19, 34, 0, 29, 35, 5, ironDark);
box(20, 34, 6, 28, 34, 6, ironLight);
box(20, 35, 6, 28, 35, 6, brass);
box(19, 43, 0, 29, 44, 5, ironDark);
box(20, 43, 6, 28, 43, 6, ironLight);
box(20, 44, 6, 28, 44, 6, brass);

// Heavy faceted iron pommel, finishing at the back of the grid.
box(19, 44, 0, 29, 46, 5, ironDark);
box(20, 44, 5, 28, 46, 5, ironMid);
box(21, 46, 0, 27, 47, 4, ironDark);
box(21, 47, 4, 27, 47, 4, ironLight);
box(21, 45, 6, 27, 46, 6, ironLight);
box(22, 45, 7, 26, 46, 7, brass);
box(23, 45, 8, 25, 46, 8, "#24567f");
set(24, 45, 9, "#64a8d1");