This map is the whole of Gielinor — every surface region of Old School RuneScape —
turned into little cubes and drawn the way the
Minecraft Overviewer draws a Minecraft world: a 2:1 isometric
projection, sliced into a Leaflet tile pyramid you can pan and
zoom like a slippy map. Nothing here is a Minecraft world, though — the game's real 3D geometry
is voxelized and rendered directly, so every rooftop, fence and tree crown comes from the actual
OSRS models and keeps its actual texture colours.
The pipeline starts at the OSRS game cache. The
OSRS Environment Exporter is run
headless over every map region — each one a 64 × 64-tile square of the world
— and writes each region out as a textured glTF model: terrain, buildings, scenery and all,
with the game's baked vertex colours and texture maps intact.
Each region mesh is voxelized with trimesh at 300 voxels per
region edge — about 4.7 voxels per game tile — producing a grid 13,813 voxels east-west,
9,907 north-south and up to 185 tall. Every voxel then gets its colour by finding the nearest point
on the original surface and sampling that triangle's own texture per texel, so details as
small as a market stall awning or a single window survive the trip. A few classes of junk voxels are
culled along the way: samples that land on the transparent part of cut-out textures (tree leaves),
degenerate triangles, and the exporter's stray pure-black vertex colours.
At this scale nothing fits in memory, so the world is processed as independent 256-voxel columns
streamed through a bounded-RAM pipeline across all CPU cores — 2,057 chunks and just under
210 million voxels on disk by the end.
The renderer is pure Python + PIL — no game engine, no GPU. Voxels are drawn back-to-front
(painter's algorithm) in a 2:1 dimetric projection, and only the three faces that can ever be seen
(top, right, left) are drawn, skipping any face hidden by a neighbouring voxel. Two quality passes
give it the Minecraft look: ambient occlusion — Minecraft-style smooth
lighting, where each face corner is darkened by the voxels crowding it and the shade is interpolated
across the face — and 2× supersampled antialiasing for clean cube edges.
Like everything else, rendering is streamed: the native zoom is drawn band by band straight into
256-pixel map tiles, so the 187,232-pixel-wide image never exists in memory at once.
Finally the render is served the way Overviewer serves its maps: a slippy-map tile pyramid under a
custom Leaflet CRS where one image pixel equals one map unit at native zoom. Zoom level 10 is the
native render (130,634 tiles); every coarser level is built by averaging 2 × 2
tiles already on disk, down to a single tile for the whole world at level 0. The viewer lets you
overzoom four levels past native, which is where the voxels themselves become the texture.