In the Mountains — Cartographic Asset System

The Map Art Bible

A complete visual overhaul of the tactical map: 164 hand-authored SVG assets — soldiers, fortifications, villages, vehicles, vegetation, markers and UI — rasterized into a sprite atlas and composited over shaded-relief terrain with a single NW key light and a zoom-aware level-of-detail system. Every asset shown here is the live game art.

Design System

One light, one palette

Everything is lit from the north-west to match the terrain's baked hillshade, so each sprite grounds itself with a soft south-east shadow and reads as sitting in the diorama. Static objects bake a directional cast shadow; rotating sprites (soldiers, vehicles) use a symmetric contact shadow so any heading looks right. Colours stay dusty, warm and desaturated — faction tints are accents, never whole fills.

bg #0c0d0a
panel #14160f
line #2c3022
ink #d8d6c4
ink-dim #9a9a82
olive #6b7a3a
tan #c2a878
amber #e0a72b
rust #b5532a
blood #9c2c20
US #4a86c6
ANA #6fae9f
ACM #c0392b
civ #d8b94a
good #6fae54
cropland #8a984e
orchard #527038
forest #324c30
scree #9c927e
river #40687a
HESCO #a89668
mud wall #a6865e
roof #857a5c
rim light #fbf4dc
shadow #1c160e

Level of detail across zoom

The camera spans ppm 0.18→8 — the whole 2.56 km valley down to a single outpost. Representations crossfade so the map is beautiful at every zoom rather than right at one.

BandUnitsStructuresTerrain
Strategic
≤0.35
NATO symbolsbase / village pinsrelief + contours
Operational
0.35–1.2
symbols→figuresbuilding footprints, pins+ sparse decoration
Tactical
1.2–3
figure spritesfull COP, qalats, vehiclesdecoration + detail layer
Close
>3
kit + facing + healthroofs, antennas, the flagdense trees/rocks/grain

Before & After

The baseline rendered entities as primitive canvas shapes — blue rectangles, wireframe boxes, coloured dots. The overhaul replaces them with authored art, a decoration layer, qalat villages, and a cartographic HUD.

BEFORE — COP, wireframe boxes & symbol dots
AFTER — building sprites, LZ pad, wall positions, forest ring
BEFORE — tactical zoom, blurred terrain & blue rectangles
AFTER — B-huts, motor pool, garrison soldiers, ground detail
AFTER — a qalat compound ringed with orchard decoration
AFTER — the operational sheet: pins, relief, compass & scale

The Asset Library — 164 pieces

Each card shows the asset on cropland, on the dark panel, and on scree, at 64 / 40 / 26 px — the squint test every asset had to pass. Footprint (metres) and rotation are noted.

US Infantry 12

Top-down US soldiers — one per role. Rotating sprites; faction read = blue IR-flag patch. The weapon is carried diagonally (never an axial 'pan-handle'); shoulders are the widest axis.

sol-us-casualty~1.6 m · rot
sol-us-engineer~1.4 m · rot
sol-us-grenadier~1.4 m · rot
sol-us-jtac~1.4 m · rot
sol-us-machinegunner~1.5 m · rot
sol-us-marksman~1.4 m · rot
sol-us-medic~1.4 m · rot
sol-us-rifleman~1.4 m · rot
sol-us-rto~1.4 m · rot
sol-us-saw~1.4 m · rot
sol-us-sniper~1.4 m · rot
sol-us-squadleader~1.4 m · rot

Afghan National Army 5

Lighter kit, teal-green accent, AK-pattern weapons — legibly 'ours but not US' at a glance.

sol-ana-leader~1.4 m · rot
sol-ana-mg~1.4 m · rot
sol-ana-rifleman~1.4 m · rot
sol-ana-rpg~1.4 m · rot
sol-interpreter~1.4 m · rot

Anti-Coalition Militia 8

Earth-tone shalwar-kameez fighters, turban/pakol heads (no helmet), red accent. Includes a translucent 'suspected' (unconfirmed contact) treatment.

acm-commander~1.4 m · rot
acm-fighter~1.4 m · rot
acm-ied~1.4 m · rot
acm-marksman~1.4 m · rot
acm-mg~1.4 m · rot
acm-rpg~1.4 m · rot
acm-spotter~1.4 m · rot
acm-suspected~1.4 m · rot

Civilians & Livestock 8

Robed non-combatants carrying tools/loads — clearly unarmed and distinct from fighters — plus goats and a donkey.

civ-child~0.9 m · rot
civ-elder~1.4 m · rot
civ-farmer~1.4 m · rot
civ-herder~1.4 m · rot
civ-villager~1.4 m · rot
civ-woman~1.4 m · rot
donkey~1.4 m · rot
goat~0.8 m · rot

COP Structures 10

2.5-D top-down buildings: corrugated roofs, sandbag berms, the TOC's comms cluster. Static — full NW key light + SE cast shadow.

bld-aid~8 m
bld-armory~6 m
bld-barracks~9 m
bld-bhut~7 m
bld-conex~6 m
bld-dfac~9 m
bld-latrine~4 m
bld-motorpool~12 m
bld-tent~6 m
bld-toc~10 m

Fortifications 11

HESCO bastion runs & corners, the ECP gate, guard towers, sandbag fighting positions, concertina, the flag — the bones of a combat outpost.

antenna-array~2 m
concertina~2 m
cop-flag~2 m
ecp-gate~8 m
fighting-position~3 m
guard-tower~3.5 m
hesco-corner~1.5 m
hesco-straight~1.5 m
jersey-barrier~3 m
sandbag-wall~2 m
windsock~3 m

Aviation 2

UH-60 Black Hawk and CH-47 Chinook, top-down with translucent rotor discs, parked on the graded LZ pad.

helo-ch47~20 m
helo-uh60~16 m

Vehicles 4

MRAP, up-armored HMMWV, a local pickup 'technical', and a colorful Afghan jingle truck. Rotating (symmetric shadow).

veh-hmmwv~5 m · rot
veh-jingle-truck~7 m · rot
veh-mrap~6 m · rot
veh-pickup~5 m · rot

Villages & Terrain Features 8

Mud-walled qalat compounds (3 sizes), a mosque, a cemetery, a bazaar stall, terraced fields, and a footbridge.

bazaar-stall~5 m
cemetery~18 m
footbridge~10 m
mosque~14 m
qalat-large~40 m
qalat-medium~26 m
qalat-small~16 m
terrace-field~24 m

Vegetation & Rock 10

The high-zoom decoration layer — cedars, walnuts, poplars, scrub, boulders, outcrops, reeds, crop furrows — scattered deterministically by landcover.

boulder~2.5 m
bush-scrub~2.5 m
crop-furrow~12 m
reeds~3 m
rock-outcrop~5 m
tree-cedar-b~7 m
tree-cedar~7 m
tree-poplar~4 m
tree-walnut-b~6 m
tree-walnut~6 m

Map Markers 18

Milspec ink: intel by source (SIGINT/HUMINT/visual), attitude-tinted village pins, the COP pin, objective/waypoint flags, MEDEVAC/TIC/IED, and named-feature glyphs.

contact-markerUI
cop-pinUI
flag-objectiveUI
flag-waypointUI
ied-markerUI
marker-bridgeUI
marker-drawUI
marker-intel-humintUI
marker-intel-sigintUI
marker-intel-visualUI
marker-junctionUI
marker-peakUI
marker-saddleUI
marker-spurUI
medevac-markerUI
pin-village-goodUI
pin-village-hostileUI
pin-village-neutralUI

HUD & Cartography 7

The sheet furniture — compass rose, north arrow, scale bar, legend frame, coordinate tab, range ring, edge ornament.

compass-roseUI
coordinate-tabUI
legend-frameUI
map-edge-frameUI
north-arrowUI
range-ringUI
scale-barUI

Order & Mission Icons 14

Flat toolbar icons for orders (move/assault/hold/suppress/smoke/frag/withdraw) and patrol missions.

ico-ambushUI
ico-assaultUI
ico-censusUI
ico-cordonUI
ico-fragUI
ico-holdUI
ico-moveUI
ico-overwatchUI
ico-presenceUI
ico-reconUI
ico-selectUI
ico-smokeUI
ico-suppressUI
ico-withdrawUI

Fire Support & CERP Icons 13

Mortars, CAS, MEDEVAC, and the CERP development projects (well, school, clinic, road, micro-hydro…).

ico-cas-gunUI
ico-cas-hellfireUI
ico-cerp-clinicUI
ico-cerp-culvertUI
ico-cerp-footbridgeUI
ico-cerp-hydroUI
ico-cerp-mosqueUI
ico-cerp-roadUI
ico-cerp-schoolUI
ico-cerp-wallUI
ico-cerp-wellUI
ico-medevacUI
ico-mortarUI

Logistics, Status & Weather 15

Supply classes, soldier status badges, and weather glyphs for the command UI.

ico-ammoUI
ico-clearUI
ico-cloudUI
ico-constructionUI
ico-dustUI
ico-foodUI
ico-fuelUI
ico-kiaUI
ico-medicalUI
ico-rainUI
ico-readyUI
ico-snowUI
ico-taskedUI
ico-waterUI
ico-woundedUI

Role Badges & Crests 15

Per-role weapon glyphs for the roster, plus US / ANA / ACM faction crests.

crest-acmUI
crest-anaUI
crest-usUI
ico-role-dmUI
ico-role-docUI
ico-role-engUI
ico-role-foUI
ico-role-grnUI
ico-role-mgUI
ico-role-plUI
ico-role-rflUI
ico-role-rtoUI
ico-role-sawUI
ico-role-slUI
ico-role-snpUI

How it composites on the map

Authored SVGs are rasterized once to offscreen canvases (bake-once / blit-many, like the terrain itself), then blitted scaled & rotated each frame. Terrain decoration is scattered from a stable per-cell hash so it never jitters on pan/zoom; a world-anchored noise overlay adds high-frequency tooth that hides the relief bitmap's upscaling blur. The whole stack holds >60 fps with the simulation running. Renderer: lib/render/{sprites,topo,draw,decoration}.ts + components/world/WorldView.tsx; assets in docs/visual-overhaul/assets/.