← Back to Gallery

Loading 3D viewer…

Alpine narrow-gauge station (bare)

by Jorge Barbero

Dimensions
64×32×48
Blocks
16,810
Compute Time
0.2s
Generation Time
3.3s
Model
claude-opus-5
Created
August 28, 2026
autoevalbarearchitecturestation
Prompt

User Prompt

a narrow-gauge alpine railway station: two-storey dark-timber and cream stucco station building with a deep overhanging eave and a clock gable, a long platform canopy on cast-iron posts alongside the track, a ground-floor waiting room with benches and a stove, and a stationmaster's apartment upstairs reached by an internal staircase

Photos

Anden
Andenexterior
Conjunto
Conjuntoexterior
Sala de espera
Sala de esperainterior
Escalera
Escalerainterior
Vivienda superior
Vivienda superiorinterior
CraftScript Source
// Alpine railway station - simple build
// station building 18x12, two floors, platform + track, canopy

var i, x, z, y;

// ground
fill(0, 0, 0, 63, 0, 47, "stone");
fill(0, 1, 0, 63, 2, 47, "dirt");
fill(0, 3, 0, 63, 3, 47, "grass_block");

// ---- station building (x10..27, z10..21) ----
// floor
fill(10, 3, 10, 27, 3, 21, "stone_bricks");
// ground floor walls
fill(10, 4, 10, 27, 8, 21, "white_terracotta");
fill(11, 4, 11, 26, 8, 20, "air");
// second floor
fill(10, 9, 10, 27, 9, 21, "spruce_planks");
fill(10, 10, 10, 27, 14, 21, "dark_oak_planks");
fill(11, 10, 11, 26, 14, 20, "air");

// windows ground floor
for (x = 12; x <= 25; x = x + 3) {
    fill(x, 6, 10, x, 7, 10, "glass_pane");
    fill(x, 6, 21, x, 7, 21, "glass_pane");
}
// windows upper floor
for (x = 12; x <= 25; x = x + 3) {
    fill(x, 12, 10, x, 13, 10, "glass_pane");
    fill(x, 12, 21, x, 13, 21, "glass_pane");
}
// doors
fill(14, 4, 21, 14, 5, 21, "air");
ps(14, 4, 21, "oak_door[facing=south,half=lower,hinge=left]");
ps(14, 5, 21, "oak_door[facing=south,half=upper,hinge=left]");
fill(22, 4, 10, 22, 5, 10, "air");
ps(22, 4, 10, "oak_door[facing=north,half=lower,hinge=left]");
ps(22, 5, 10, "oak_door[facing=north,half=upper,hinge=left]");

// roof (gable, ridge along x)
for (x = 9; x <= 28; x++) {
    for (i = 0; i <= 5; i++) {
        ps(x, 15 + i, 9 + i, "dark_oak_stairs[facing=south]");
        ps(x, 15 + i, 22 - i, "dark_oak_stairs[facing=north]");
    }
    pb(x, 21, 15, "dark_oak_slab");
    pb(x, 21, 16, "dark_oak_slab");
}
// gable ends
for (i = 0; i <= 5; i++) {
    fill(10, 15 + i, 10 + i, 10, 15 + i, 21 - i, "dark_oak_planks");
    fill(27, 15 + i, 10 + i, 27, 15 + i, 21 - i, "dark_oak_planks");
}
// clock on the gable
pb(10, 18, 15, "white_concrete");
pb(10, 18, 16, "black_concrete");
pb(10, 19, 15, "white_concrete");
pb(10, 17, 16, "white_concrete");

// stairs to the upper floor
for (i = 0; i < 6; i++) {
    ps(25, 4 + i, 19 - i, "oak_stairs[facing=north]");
}
fill(25, 9, 13, 25, 9, 14, "air");

// ---- interior ground floor (waiting room) ----
// benches
for (i = 0; i < 5; i++) ps(12 + i, 4, 19, "spruce_stairs[facing=north]");
for (i = 0; i < 4; i++) ps(12, 4, 13 + i, "spruce_stairs[facing=east]");
// stove
pb(20, 4, 12, "furnace[facing=south]");
// table
pb(18, 4, 16, "oak_fence");
pb(18, 5, 16, "oak_pressure_plate");
// light
pb(17, 8, 15, "lantern");
pb(22, 8, 18, "lantern");

// ---- interior upper floor (apartment) ----
placeBed(13, 10, 14, "red", "north");
pb(20, 10, 13, "crafting_table");
pb(21, 10, 13, "furnace[facing=south]");
pb(18, 10, 18, "oak_fence");
pb(18, 11, 18, "oak_pressure_plate");
pb(16, 14, 16, "lantern");

// ---- platform ----
fill(6, 3, 23, 46, 4, 30, "stone");
fill(6, 5, 23, 46, 5, 30, "smooth_stone");

// ---- canopy over the platform ----
for (x = 8; x <= 44; x++) {
    fill(x, 12, 23, x, 12, 30, "dark_oak_slab");
}
for (x = 8; x <= 44; x = x + 6) {
    fill(x, 6, 29, x, 11, 29, "iron_bars");
    fill(x, 6, 24, x, 11, 24, "iron_bars");
}

// ---- track ----
fill(0, 3, 32, 63, 4, 38, "gravel");
for (x = 0; x <= 63; x++) {
    ps(x, 5, 34, "rail[shape=east_west]");
    ps(x, 5, 37, "rail[shape=east_west]");
}

// ---- some decoration ----
for (x = 30; x <= 40; x = x + 4) {
    fill(x, 4, 12, x, 8, 12, "oak_log[axis=y]");
    fill(x - 2, 9, 10, x + 2, 10, 14, "oak_leaves[persistent=true]");
}
pb(16, 6, 26, "barrel[facing=up]");
pb(17, 6, 26, "barrel[facing=up]");
pb(30, 6, 27, "barrel[facing=up]");
fill(9, 4, 8, 30, 4, 8, "gravel");

Static Renders

Alpine narrow-gauge station (bare) isometric viewisometric
Alpine narrow-gauge station (bare) front viewfront
Alpine narrow-gauge station (bare) side viewside
Alpine narrow-gauge station (bare) back viewback
Alpine narrow-gauge station (bare) top viewtop