SparseWorld: Real-World Cities in Minecraft
Category: Software Projects (back to list)
Project Page: SparseWorld: Real-World Cities in Minecraft project page
Summary: SparseWorld is an academic distributed computing project to automatically build full-scale interactive models of huge real-world areas such as cities.
Begin: March 25, 2013
Projected Completion: Incomplete
Table of Contents
1. Overview >>
2. How It Works >>
3. Results and Screenshots >>
4. More Information >>

SparseWorld: Building Real-World Cities in Minecraft
SparseWorld logo
1. Overview

As the computing power of personal computers rapidly expands, games have increasing resources available. These resources have largely been used to improve the graphical realism and fidelity of the games, as well as to drive improvements in "artificial intelligence" for non-player characters. Computers have the memory and CPU horsepower to drive more expansive, immersive worlds, but the human effort necessary to build game worlds has only grown as graphical realism increases. Although some procedurally-generated worlds are used in games like Minecraft, such worlds are valued mostly as a "blank canvas" for sandbox-type games. We believe that data exists to machine-generate accurate game worlds from real-world locations. SparseWorld is a proof-of-concept project to harness distributed computing and large datasets to build expansive, recognizable game worlds with minimal human effort.

2. How It Works

SparseWorld draws on a combination of datasets to build worlds. It uses proof-of-concept conversion scripts written in Python to combine these datasets to first generate realistic terrain, then convert buildings and structures and place them onto the terrain:

  • Elevation: USGS EROS service
  • Landcover: USGS EROS service
  • Orthoimagery (satellite imagery): USGS EROS service
  • Building models: (planned) Google Earth
  • Street correction: (planned) OpenStreetMap (OSM)
SparseWorld requires several steps to convert a region of the real world into a Minecraft world, some of which can be parallelized, and some of which have unavoidable dependencies:
  1. Determine what areas of real-world terrain data need to be fetched, download the relevant elevation, landcover, and orthoimagery data, and stitch together pieces as necessary (GetRegion phase).
  2. Warp and combine data into one large 8-layer GeoTIFF image. Layers are elevation, landcover, core depth, bathyspheric depth, terrain red channel, terrain green channel, terrain blue channel, and terrain IR channel (PrepRegion phase)
  3. Generate Minecraft tiles (16 meter x 16 meter vertical slices of the terrain) from the terrain data (first half of BuildRegion phase). This phase is well-suited to parallelization.
  4. Weld tiles into regions, 512 meter x 512 meter vertical slices of the terrain, each of which is stored in a single file (second half of BuildRegion phase). This phase is reasonably well-suited to parallelization.
  5. (Planned) Generate 2D splines from OpenStreetMap data, correct shadows and overlaps over streets in orthoimagery.
  6. Generate voxelized building, structure, and tree models from Collada 3D models, then place onto terrain. This phase can be parallelized with a pool of converter workers, a crossbar, and a pool of terrain region workers.

3. Results and Screenshots

Current rendering of 1:1 terrain model of Manhattan, complete with elevation, landcover, and orthoimagery data, plus a few building models from Google's 3D Warehouse. A real-time interactive server map is also available, provided that the testbed Minecraft server is currently running.
Current rendering of 1:1 terrain model of Manhattan from SparseWorld

Sample screenshots from real-world models automatically converted into Minecraft buildings by SparseWorld, including Yankee Stadium, the Time Warner Center, the Chrysler Building, the Brooklyn Bridge, the main branch of the New York Public Library, the New York Life Building, the Flatiron Building, Madison Square Garden, and part of Times Square. All of the buildings are placed in their real-world location within the map above.

4. More Information

Progress Log Topic
Real-time interactive server map