Skip to content

Instantly share code, notes, and snippets.

@rndmcnlly
Created May 2, 2017 06:09
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save rndmcnlly/02ac6a4c1f86da73e22d145b5379a5fe to your computer and use it in GitHub Desktop.
Save rndmcnlly/02ac6a4c1f86da73e22d145b5379a5fe to your computer and use it in GitHub Desktop.
Developing a simple PIL-based visualizer for platform level designs, starting from a JSON scene description file
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"In this notebook, I develop some way of visualizing generated platformer level designs. My students need an easy way to see what they are generating when it is their first time using `clingcon`."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Prototyping"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's try the Pillow library (https://python-pillow.org/). I'll be following the documentation here: https://pillow.readthedocs.io/\n",
"\n",
"(This is a Python 3 notebook, by the way.)"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Requirement already satisfied: pillow in /usr/local/lib/python3.6/site-packages\r\n",
"Requirement already satisfied: olefile in /usr/local/lib/python3.6/site-packages (from pillow)\r\n"
]
}
],
"source": [
"!pip3 install pillow"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"First, some concept art from the original Tanagra system:"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"!wget -q https://farm3.staticflickr.com/2706/4331755861_b732403472_o_d.jpg -O concept.jpg"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"image/jpeg": "/9j/4AAQSkZJRgABAQEAYABgAAD/4QBmRXhpZgAATU0AKgAAAAgABAEaAAUAAAABAAAAPgEbAAUA\nAAABAAAARgEoAAMAAAABAAIAAAExAAIAAAAQAAAATgAAAAAAAABgAAAAAQAAAGAAAAABUGFpbnQu\nTkVUIHYzLjM2AP/bAEMAAgEBAgEBAgICAgICAgIDBQMDAwMDBgQEAwUHBgcHBwYHBwgJCwkICAoI\nBwcKDQoKCwwMDAwHCQ4PDQwOCwwMDP/bAEMBAgICAwMDBgMDBgwIBwgMDAwMDAwMDAwMDAwMDAwM\nDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDP/AABEIAWoClQMBIgACEQEDEQH/xAAf\nAAABBQEBAQEBAQAAAAAAAAAAAQIDBAUGBwgJCgv/xAC1EAACAQMDAgQDBQUEBAAAAX0BAgMABBEF\nEiExQQYTUWEHInEUMoGRoQgjQrHBFVLR8CQzYnKCCQoWFxgZGiUmJygpKjQ1Njc4OTpDREVGR0hJ\nSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3\nuLm6wsPExcbHyMnK0tPU1dbX2Nna4eLj5OXm5+jp6vHy8/T19vf4+fr/xAAfAQADAQEBAQEBAQEB\nAAAAAAAAAQIDBAUGBwgJCgv/xAC1EQACAQIEBAMEBwUEBAABAncAAQIDEQQFITEGEkFRB2FxEyIy\ngQgUQpGhscEJIzNS8BVictEKFiQ04SXxFxgZGiYnKCkqNTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNk\nZWZnaGlqc3R1dnd4eXqCg4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfI\nycrS09TV1tfY2dri4+Tl5ufo6ery8/T19vf4+fr/2gAMAwEAAhEDEQA/AP070+08EfD34S6ZPe6H\np++DRtOljWKwhkkuprjcC0jtG5JJQsWPJJOSSRUvxC8deDPAPgCDXrHwt4e1Wwnv5LdZ7u2itFEa\nWzXGCfK5lfbsRNo3MQBk4VtXw/8ADu3+JPhnw9bSxWi/Y/DmmzNI7XAaXesoCnypY8hdjEZz984x\nzmb4KfE7wv4ye70XwD8Rvhz4jn08edd2+lXy6lcQZO3dLtunccgLlvQDtivUlOEajbn0WltFb5X1\n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\nt2P/2Q==\n",
"text/plain": [
"<IPython.core.display.Image object>"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from IPython.display import Image\n",
"Image(filename='concept.jpg') "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Okay, let's build a shopping list:\n",
"- blue sky background\n",
"- grassy green platforms supported by brownish dirt\n",
"- some cute little bird icons to play the role of stompable enemies\n",
"- maybe some other icons to represent springs for jumping long distances and thwompers for making the player wait\n",
"- some text that keeps you from having to count individual grid cells\n",
"\n",
"I'll quickly use Google Image Search to find and download some icons:"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"!wget -q http://icons.iconarchive.com/icons/martin-berube/flat-animal/256/bird-icon.png -O bird.png\n",
"!wget -q http://icons.iconarchive.com/icons/raindropmemory/down-to-earth/256/G12-Rock-icon.png -O rock.png\n",
"!wget -q http://downloadicons.net/sites/default/files/panel-launcher-icon-10003.png -O spring.png"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's make an new image and draw all over it!"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<PIL.Image.Image image mode=RGB size=640x240 at 0x10E851DD8>"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import PIL.Image\n",
"import PIL.ImageDraw\n",
"\n",
"w, h = 640, 240\n",
"img = PIL.Image.new('RGB', (w,h))\n",
"draw = PIL.ImageDraw.Draw(img)\n",
"\n",
"draw.rectangle([(0,0),(w,h)], fill=(150,200,255))\n",
"\n",
"platforms = [\n",
" (0, 9, 7),\n",
" (12, 15, 2),\n",
" (15, 22, 3),\n",
" (22, 25, 2),\n",
" (28, 32, 5),\n",
"]\n",
"\n",
"k = 20 # size of grid cell\n",
"\n",
"line_color = 140,190,240\n",
"for x in range(0,w,k): draw.line([(x,0),(x,h)], fill=line_color)\n",
"for y in range(0,h,k): draw.line([(0,y),(w,y)], fill=line_color)\n",
"\n",
"bird = PIL.Image.open('bird.png').resize((k,k))\n",
"rock = PIL.Image.open('rock.png').resize((k,k))\n",
"spring = PIL.Image.open('spring.png').resize((k,k))\n",
"\n",
"dirt_color = 180,120,60\n",
"grass_color = 30,140,30\n",
"\n",
"for i,p in enumerate(platforms):\n",
" start, end, height = p\n",
" x0 = k * start\n",
" x1 = k * end\n",
" y0 = h - k * height\n",
" y1 = h\n",
" draw.rectangle([(x0,y0),(x1,y1)], fill=dirt_color)\n",
" draw.rectangle([(x0,y0-10),(x1,y0)], fill=grass_color)\n",
" draw.text((x0+1,h-10),str(start))\n",
" draw.text((x1+2,h-10),str(end))\n",
" draw.text((x0+1,y0-10),str(height))\n",
"\n",
"img.paste(rock, (k*8,h-k*8), mask=rock)\n",
"img.paste(bird, (k*16,h-k*4), mask=bird)\n",
"img.paste(spring, (k*24,h-k*3), mask=spring)\n",
"\n",
"img"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"I guess images know how to display themselves in a notebook. What about saving the result to the filesystem?"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"img.save('scene.png') # that's it!"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<IPython.core.display.Image object>"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"Image(filename='scene.png') # this is `Image` from IPython.display"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Production\n",
"\n",
"Let's package up this method for future reuse."
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Overwriting visualize.py\n"
]
}
],
"source": [
"%%file visualize.py\n",
"\n",
"import json\n",
"import PIL.Image\n",
"import PIL.ImageDraw\n",
"import sys\n",
"\n",
"# Parse command line arguments\n",
"\n",
"if len(sys.argv) is not 3:\n",
" sys.stdout.write(\"usage: %s input.json output.png\" % sys.argv[0])\n",
" sys.exit(-1)\n",
"\n",
"input_filename = sys.argv[1]\n",
"output_filename = sys.argv[2]\n",
"\n",
"# Parse the scene file\n",
"\n",
"with open(input_filename) as f:\n",
" scene = json.load(f)\n",
"\n",
"width, height = scene[\"width\"], scene[\"height\"]\n",
"scale = scene[\"scale\"]\n",
"platforms = scene[\"platforms\"]\n",
"icons = scene[\"icons\"]\n",
"\n",
"# Load icon files \n",
"icon_images = {k: PIL.Image.open(k+\".png\").resize((scale,scale))\n",
" for k in set([icon[\"kind\"] for icon in icons])}\n",
"\n",
"# Draw the scene\n",
"\n",
"img = PIL.Image.new('RGB', (width,height))\n",
"draw = PIL.ImageDraw.Draw(img)\n",
"\n",
"sky_color = 150,200,255\n",
"line_color = 140,190,240\n",
"dirt_color = 180,120,60\n",
"grass_color = 30,140,30\n",
"\n",
"draw.rectangle([(0,0),(width,height)], fill=sky_color)\n",
"\n",
"for x in range(0,width, scale): draw.line([(x,0),(x,height)], fill=line_color)\n",
"for y in range(0,height,scale): draw.line([(0,y),(width, y)], fill=line_color)\n",
"\n",
"for p in platforms:\n",
" _start, _end, _height = p[\"start\"], p[\"end\"], p[\"height\"]\n",
" x0 = scale * _start\n",
" x1 = scale * _end\n",
" y0 = height - scale * _height\n",
" y1 = height\n",
" draw.rectangle([(x0,y0),(x1,y1)], fill=dirt_color)\n",
" draw.rectangle([(x0,y0-10),(x1,y0)], fill=grass_color)\n",
" draw.text((x0+1,height-10), str(_start))\n",
" draw.text((x1+2,height-10), str(_end))\n",
" draw.text((x0+1,y0-10), str(_height))\n",
"\n",
"for i in icons:\n",
" _kind, _x, _y = i[\"kind\"], i[\"x\"], i[\"y\"]\n",
" img.paste(icon_images[_kind], (scale * _x,height - scale * _y), mask=icon_images[_kind])\n",
"\n",
"# Write output\n",
" \n",
"img.save(output_filename)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Demonstration\n",
"Let's show how to use the new tool. In the example scene file below, we assume that there are a few icon files already present in the format `{kind}.png`. When you go to visualize your own scenes, you'll have to download the icons for yourself. Scroll up for the URLs of the icons that I use here."
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Overwriting demo-scene.json\n"
]
}
],
"source": [
"%%file demo-scene.json\n",
"{\n",
" \"width\": 640,\n",
" \"height\": 240,\n",
" \"scale\": 20,\n",
" \"platforms\": [\n",
" {\"start\": 0, \"end\": 9, \"height\": 7},\n",
" {\"start\": 12, \"end\": 15, \"height\": 2},\n",
" {\"start\": 15, \"end\": 22, \"height\": 3},\n",
" {\"start\": 22, \"end\": 25, \"height\": 2},\n",
" {\"start\": 28, \"end\": 32, \"height\": 5}\n",
" ],\n",
" \"icons\": [\n",
" {\"kind\": \"rock\", \"x\": 8, \"y\": 8},\n",
" {\"kind\": \"bird\", \"x\": 16, \"y\": 4},\n",
" {\"kind\": \"spring\", \"x\": 24, \"y\": 3}\n",
" ]\n",
"}"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"!python visualize.py demo-scene.json demo-scene.png"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<IPython.core.display.Image object>"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"Image(filename='demo-scene.png')"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.1"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment