Background

Minecraft, a creative sandbox-like computer game, allows players to explore their personalized randomly generated world in which they can harvest resources, build structures, and craft new items. Each player model is wrapped using a flattened “skin” which can either be downloaded from the internet or custom build using one of the many online editors.

Online Skin Editor Minecraft Player (in-game)



In this project I attempt the following objectives:

  1. Visualize the sample of skins as clusters using associated tags
  2. Use the sample of skins and a DCGAN to generate new samples of Minecraft skins

DCGAN Training

A sample of roughly 2800 skins were downloaded from https://www.minecraftskins.com/ and stored locally as PNG files. Using PyTorch’s example DCGAN implementation, I trained the Generator and Discriminator networks using the sample of skins until the resulting outputs seemed reasonable. This process took roughly 180 epochs although the DCGAN was able to produce cohesive results within the first 50 epochs.

DCGAN Training Progress


Using the generated skins, I mapped each one on top of a Minecraft player model in order to visualize the results. Here are a few of the samples produced:

"Angry Villager"

"Gamer Girl"

"Green Cyclops"

"Fire Monster"


Dimensionality Reduction

For the second portion of my objective, each skin was converted into a feature vector and reduced into 2 dimensions so that a comprehensible plot could be produced. My objective was to observe whether these skins, when reduced from thousand of dimensions into 2, preserved any sort of clusterable structure. The image feature extraction process utilized the VGG16 convolution neural network, a pre-trained network that was trained using roughly 1.2 million images.

Below is a visual showing all 348 (including 10 randomly selected) Minecraft skins after dimensionality reduction. There are some clear clusters present since many of these skins are either exactly the same or very close in composition. This smaller data set served as a proof of concept before attempting to visualize the entire 2,800 large data set.

Spiderman Skins

Spiderman Skins (Zoomed In)

All Skins

All Skins (Zoomed In)