← Back to Gallery

Loading 3D viewer…

Red combine harvester in a wheat field (guided)

by Jorge Barbero

Dimensions
64×48×64
Blocks
62,458
Compute Time
2.2s
Generation Time
3m 16s
Model
claude-opus-5
Created
September 7, 2026
vehiclecombine-harvesterfarmautoevalguided
Prompt

User Prompt

a red combine harvester working a wheat field: a wide header with a spinning reel and pointed crop dividers at the front, a raised glass cab, a bulging grain tank on top, a swung-out unloading auger arm, big front drive wheels and small steered rear wheels, standing on the boundary between golden uncut wheat and pale cut stubble with a trail of straw behind it

Enhanced Prompt

GUIDED condition. prepare_build misclassified this machine as ORGANIC, so beyond its list I also read vehicles-machines/Vehicle Building Tips and vehicles-machines/Cockpit Design plus build-rules/Essential Build Rules. Applied: stairs+slabs for every curve (no stepped edges), one-half geometry mirrored in code, cab built as a real cockpit with seat/controls/glass, flat terrain pad at a known Y with the crop boundary as the story element.

CraftScript Source
// === BUILD PLAN ===
// Subject: red axial-flow combine harvester, mid-harvest, facing NORTH (-Z)
// Footprint: header 27 wide (x14..40) x 5 deep (z5..9) | body 11 wide (x22..32) x 22 deep (z14..36)
//            total length z2..z40, total height Y13..Y31
//
// SIDE SILHOUETTE (Z ->, Y up):            FRONT SILHOUETTE (X ->, Y up):
//        ___tank___                          .....[=cab=]......
//   [cab]|         |__engine__               ...[==tank==].....
//   __|  |                   |          <====[===body====]====>  auger out to the left
//  /reel |                   |               .OO..........oo...  big front / small rear
//  |head|=====body===========|               header spans much wider than the body
//   (O)     (O)          (o)
//
// PROPORTIONS: header ~2.5x body width (that is the recognisable thing) | front wheel r4,
//   rear wheel r2 | cab set high and forward over the feeder house | tank flares 1 block
//   proud of the body on each side | unloading auger swung out 10 blocks to the LEFT
// MATERIALS PLAN:
//   body/header : red_concrete(78) + red_terracotta(22) noise  — WHY: flat single red reads as
//                 plastic; a faint terracotta blotch gives painted-steel panel variation
//   trim/frame  : black/gray/polished_blackstone  — WHY: dark value break under the red = the
//                 machine reads as a machine, not a red box
//   metal parts : light_gray_concrete + iron_block (auger, cutter bar, ladders, screens)
//   tyres       : black_concrete(70)+polished_blackstone(20)+blackstone(10), lug tread every 2
//   field       : uncut = farmland + wheat[age=7] (z<10) | stubble = dirt_path/coarse_dirt +
//                 wheat[age=0] stubs | straw windrow of hay_block trailing behind the machine
// Cab interior: seat (chairStair), steering column, monitor, controls, floor, roof lights
// === END PLAN ===

var padY = 12, groundY = padY + 1;   // wheels rest on groundY
var cxm = 27;                        // machine centre line
var x, y, z, i, t, dz, dy;

var redMain  = noisePalette([{block:'red_concrete',weight:78},{block:'red_terracotta',weight:22}], {seed:5, freq:0.22});
var darkTrim = noisePalette([{block:'black_concrete',weight:60},{block:'gray_concrete',weight:25},{block:'polished_blackstone',weight:15}], {seed:8, freq:0.25});
var metal    = noisePalette([{block:'light_gray_concrete',weight:55},{block:'iron_block',weight:25},{block:'gray_concrete',weight:20}], {seed:3, freq:0.25});
var tyre     = noisePalette([{block:'black_concrete',weight:70},{block:'polished_blackstone',weight:20},{block:'blackstone',weight:10}], {seed:11, freq:0.3});
var stubble  = noisePalette([{block:'dirt_path',weight:50},{block:'coarse_dirt',weight:30},{block:'podzol',weight:20}], {seed:14, freq:0.1});

// ================= FIELD =================
var land = blob(30, 30, 34, {irregularity:0.35, seed:6});
var hfn = hills({base: padY, amp: 2, scale: 0.035, seed: 12});
var pad = flatten(hfn, {x0:0, z0:0, x1:60, z1:60}, padY, 6);
surface(land, pad, function (gx, gz) {
    if (gz < 10) return 'farmland';
    return stubble(gx, 0, gz);
}, {sub:'dirt', deep:'stone', depth:4});
// standing crop ahead of the header
for (x = 0; x <= 60; x++) for (z = 0; z <= 9; z++) {
    if ((x * 7 + z * 5) % 17 === 0) ps(x, groundY, z, 'wheat[age=6]'); else ps(x, groundY, z, 'wheat[age=7]');
}
// cut stubble behind, plus the wheel tramlines and the straw windrow
for (x = 0; x <= 60; x++) for (z = 10; z <= 60; z++) {
    if ((x * 3 + z * 11) % 5 === 0) ps(x, groundY, z, 'wheat[age=0]');
}
for (z = 40; z <= 60; z++) {
    for (x = 20; x <= 22; x++) pb(x, padY, z, 'coarse_dirt');
    for (x = 32; x <= 34; x++) pb(x, padY, z, 'coarse_dirt');
}
for (z = 41; z <= 60; z++) {
    var wob = ((z * 5) % 3) - 1;
    for (x = cxm - 3 + wob; x <= cxm + 3 + wob; x++) {
        if ((x + z) % 4 !== 0) pb(x, groundY, z, 'hay_block[axis=x]');
    }
    if (z % 3 === 0) ps(cxm + 4 + wob, groundY, z, 'hay_block[axis=z]');
}

// ================= WHEELS (built as discs, lugged tread, hub + rim) =================
function wheel(x0, cy, cz, r, thick, hubId) {
    for (dz = -r - 1; dz <= r + 1; dz++) {
        for (dy = -r - 1; dy <= r + 1; dy++) {
            var d = Math.sqrt(dz * dz + dy * dy);
            if (d > r + 0.45) continue;
            var mat;
            if (d > r - 1.25) mat = tyre;
            else if (d < r * 0.42) mat = hubId;
            else mat = tyre;
            for (t = 0; t < thick; t++) pb(x0 + t, cy + dy, cz + dz, mat);
            // lug tread on the outer ring only
            if (d > r - 0.55 && ((dz + dy + cz) % 2 === 0)) {
                pb(x0, cy + dy, cz + dz, 'blackstone');
                pb(x0 + thick - 1, cy + dy, cz + dz, 'blackstone');
            }
        }
    }
}
wheel(19, 17, 20, 4, 3, 'light_gray_concrete');   // front left
wheel(33, 17, 20, 4, 3, 'light_gray_concrete');   // front right
wheel(21, 15, 34, 2, 2, 'gray_concrete');         // rear left (narrower track, steered)
wheel(32, 15, 34, 2, 2, 'gray_concrete');         // rear right
// axles
fill(22, 17, 20, 32, 17, 20, darkTrim);
fill(23, 15, 34, 31, 15, 34, darkTrim);

// ================= BODY =================
fill(22, 18, 14, 32, 26, 36, redMain);
fill(23, 19, 15, 31, 25, 35, 'air');              // hollow shell, keeps the block count honest
fill(22, 18, 14, 32, 18, 36, darkTrim);           // dark underframe
// side panel relief: recessed service doors + a dark stripe
for (z = 17; z <= 34; z += 5) {
    fill(22, 20, z, 22, 24, z + 2, 'red_terracotta');
    fill(32, 20, z, 32, 24, z + 2, 'red_terracotta');
    ps(21, 22, z + 1, 'iron_trapdoor[facing=east,half=bottom,open=false]');
    ps(33, 22, z + 1, 'iron_trapdoor[facing=west,half=bottom,open=false]');
}
for (z = 14; z <= 36; z++) { pb(22, 25, z, darkTrim); pb(32, 25, z, darkTrim); pb(22, 19, z, darkTrim); pb(32, 19, z, darkTrim); }
// rounded shoulder with stairs (never leave a stepped edge)
for (z = 14; z <= 36; z++) {
    ps(22, 26, z, 'red_concrete_stairs' === '' ? 'stone' : 'polished_blackstone_slab[type=bottom]');
    ps(32, 26, z, 'polished_blackstone_slab[type=bottom]');
}
// mudguards over the front wheels
for (z = 15; z <= 25; z++) { ps(21, 22, z, 'red_concrete'); ps(33, 22, z, 'red_concrete'); }
for (z = 15; z <= 25; z++) { ps(20, 22, z, 'polished_blackstone_slab[type=top]'); ps(34, 22, z, 'polished_blackstone_slab[type=top]'); }

// ================= FEEDER HOUSE (header -> body throat, sloped) =================
for (i = 0; i <= 5; i++) {
    fill(24, 17 + i, 14 - i, 30, 21 + i, 14 - i, redMain);
}
fill(25, 18, 9, 29, 21, 13, 'air');
for (i = 0; i <= 5; i++) { ps(23, 21 + i, 14 - i, 'polished_blackstone_slab[type=bottom]'); ps(31, 21 + i, 14 - i, 'polished_blackstone_slab[type=bottom]'); }
// lift rams
fill(23, 19, 12, 23, 19, 15, metal); fill(31, 19, 12, 31, 19, 15, metal);

// ================= HEADER (the wide one - this is the recognisable feature) =================
fill(14, 13, 5, 40, 13, 9, redMain);              // header pan
fill(14, 14, 9, 40, 16, 9, redMain);              // back wall
fill(14, 13, 5, 14, 16, 9, redMain);              // end walls
fill(40, 13, 5, 40, 16, 9, redMain);
for (x = 14; x <= 40; x++) ps(x, 14, 9, 'polished_blackstone_slab[type=bottom]');
// sickle cutter bar + knife guards pointing forward
for (x = 14; x <= 40; x++) {
    ps(x, 13, 5, 'polished_andesite_slab[type=bottom]');
    ps(x, 13, 4, 'iron_trapdoor[facing=north,half=bottom,open=false]');
}
// cross auger inside the header, with flighting
for (x = 15; x <= 39; x++) {
    pb(x, 15, 8, metal);
    if (x % 2 === 0) ps(x, 15, 7, 'iron_trapdoor[facing=north,half=bottom,open=true]');
    else ps(x, 16, 8, 'light_gray_concrete_slab[type=bottom]');
}
// reel: tube + four bats with tines
for (x = 15; x <= 39; x++) {
    ps(x, 17, 6, 'stripped_oak_log[axis=x]');
    ps(x, 19, 6, 'oak_slab[type=bottom]');          // top bat
    ps(x, 17, 4, 'oak_slab[type=bottom]');          // front bat
    ps(x, 15, 6, 'oak_slab[type=top]');             // bottom bat
    ps(x, 17, 8, 'oak_slab[type=bottom]');          // rear bat
    if (x % 2 === 0) { ps(x, 18, 4, 'iron_bars'); ps(x, 16, 4, 'iron_bars'); }
}
// reel support arms from the header back wall
var armX = [16, 27, 38];
for (i = 0; i < armX.length; i++) {
    ps(armX[i], 18, 9, metal); ps(armX[i], 18, 8, metal); ps(armX[i], 18, 7, metal); ps(armX[i], 17, 7, metal);
}
// pointed crop dividers at both ends
function divider(dx) {
    ps(dx, 14, 4, 'white_concrete'); ps(dx, 14, 3, 'white_concrete');
    ps(dx, 13, 3, 'white_concrete'); ps(dx, 13, 2, 'red_concrete');
    ps(dx, 15, 5, 'white_concrete_slab[type=bottom]');
    ps(dx, 14, 2, 'red_concrete_slab' === '' ? 'stone' : 'polished_andesite_slab[type=bottom]');
}
divider(14); divider(40);

// ================= CAB (real cockpit: glass, seat, controls) =================
fill(24, 22, 13, 30, 28, 18, darkTrim);
fill(25, 23, 14, 29, 27, 17, 'air');
fill(24, 22, 13, 30, 22, 18, metal);              // cab floor
fill(24, 28, 13, 30, 28, 18, 'white_concrete');   // roof
for (y = 23; y <= 27; y++) {
    for (x = 25; x <= 29; x++) ps(x, y, 13, 'light_blue_stained_glass_pane');   // windscreen
    for (z = 14; z <= 17; z++) { ps(24, y, z, 'light_blue_stained_glass_pane'); ps(30, y, z, 'light_blue_stained_glass_pane'); }
    ps(26, y, 18, 'light_blue_stained_glass_pane'); ps(28, y, 18, 'light_blue_stained_glass_pane');
}
fill(24, 23, 18, 24, 27, 18, darkTrim); fill(30, 23, 18, 30, 27, 18, darkTrim);
chairStair(27, 23, 16, 'spruce_stairs', 'north');            // operator seat
ps(27, 23, 15, 'lever[face=floor,facing=north]');            // steering column base
ps(27, 24, 15, 'iron_trapdoor[facing=north,half=top,open=false]');   // wheel
ps(28, 23, 14, 'stone_button[face=wall,facing=north]');
ps(29, 24, 15, 'black_stained_glass_pane');                  // yield monitor
ps(26, 23, 14, 'gray_carpet'); ps(28, 23, 16, 'gray_carpet');
pb(27, 27, 16, 'sea_lantern');                               // dome light
// roof work lights + beacon
pb(25, 29, 13, 'sea_lantern'); pb(29, 29, 13, 'sea_lantern');
ps(27, 29, 18, 'shroomlight');
// access ladder + platform on the left
for (i = 0; i <= 5; i++) ps(23, 17 + i, 17 - i, 'iron_trapdoor[facing=south,half=bottom,open=false]');
fill(23, 22, 14, 23, 22, 16, metal);
for (z = 14; z <= 17; z++) ps(22, 23, z, 'iron_bars');
ps(23, 23, 17, 'iron_bars'); ps(23, 24, 17, 'iron_bars');

// ================= GRAIN TANK (bulges proud of the body) =================
fill(22, 27, 20, 32, 27, 31, redMain);
fill(21, 28, 20, 33, 30, 31, redMain);
fill(22, 28, 21, 32, 30, 30, 'air');
fill(22, 28, 21, 32, 28, 30, 'hay_block[axis=y]');           // grain inside
for (z = 20; z <= 31; z++) { ps(20, 28, z, 'red_concrete_slab' === '' ? 'stone' : 'polished_blackstone_slab[type=bottom]'); ps(34, 28, z, 'polished_blackstone_slab[type=bottom]'); }
for (z = 20; z <= 31; z += 2) { ps(21, 31, z, 'iron_bars'); ps(33, 31, z, 'iron_bars'); }
for (x = 21; x <= 33; x += 3) { ps(x, 31, 20, 'iron_bars'); ps(x, 31, 31, 'iron_bars'); }

// ================= UNLOADING AUGER, SWUNG OUT LEFT =================
for (x = 11; x <= 21; x++) ps(x, 29, 24, 'light_gray_concrete');
for (x = 11; x <= 21; x++) ps(x, 30, 24, 'light_gray_concrete_slab[type=bottom]');
for (x = 12; x <= 20; x += 2) ps(x, 28, 24, 'iron_trapdoor[facing=north,half=bottom,open=true]');
fill(11, 27, 24, 11, 29, 24, metal);                          // spout elbow
ps(11, 26, 24, 'gray_concrete');
ps(11, 25, 24, 'hopper[facing=down]');
fill(21, 28, 24, 21, 29, 24, metal);                          // pivot column
ps(20, 30, 23, 'iron_bars'); ps(20, 30, 25, 'iron_bars');

// ================= ENGINE, EXHAUST, STRAW CHOPPER =================
fill(23, 27, 32, 31, 29, 36, darkTrim);
for (x = 24; x <= 30; x++) ps(x, 30, 34, 'iron_bars');        // rotary air screen
fill(31, 30, 33, 31, 33, 33, 'polished_blackstone_wall');     // exhaust stack
ps(31, 34, 33, 'polished_blackstone_slab[type=bottom]');
fill(23, 19, 37, 31, 24, 38, darkTrim);                       // chopper hood
for (x = 23; x <= 31; x++) ps(x, 19, 39, 'iron_bars');        // straw outlet
for (x = 22; x <= 32; x++) ps(x, 24, 38, 'polished_blackstone_slab[type=top]');
// rear lights + steps
pb(23, 26, 38, 'redstone_lamp[lit=true]'); pb(31, 26, 38, 'redstone_lamp[lit=true]');

// ================= FIELD DRESSING =================
// dust kicked up around the drive wheels
for (z = 16; z <= 26; z++) for (x = 17; x <= 37; x++) {
    if ((x * 5 + z * 3) % 9 === 0) pb(x, padY, z, 'coarse_dirt');
}
// a few loose straw tufts around the header and along the crop edge
for (x = 12; x <= 42; x++) { if ((x * 7) % 5 < 2) ps(x, groundY, 10, 'hay_block[axis=x]'); }
for (x = 8; x <= 46; x += 6) ps(x, groundY, 11, 'hay_block[axis=z]');
// fence line + a lone tree at the field edge, for scale
for (x = 0; x <= 60; x += 1) { if (x % 2 === 0) ps(x, groundY, 58, 'oak_fence'); }
fill(52, groundY, 50, 52, groundY + 5, 50, 'oak_log[axis=y]');
makeSphere(52, groundY + 7, 50, noisePalette([{block:'oak_leaves[persistent=true]',weight:85},{block:'birch_leaves[persistent=true]',weight:15}], {seed:4, freq:0.3}), 4, true);

Static Renders

Red combine harvester in a wheat field (guided) isometric viewisometric
Red combine harvester in a wheat field (guided) front viewfront
Red combine harvester in a wheat field (guided) side viewside
Red combine harvester in a wheat field (guided) back viewback
Red combine harvester in a wheat field (guided) top viewtop