Skip to content

Instantly share code, notes, and snippets.

@REAS
Last active August 29, 2015 13:57
Show Gist options
  • Save REAS/9402914 to your computer and use it in GitHub Desktop.
Save REAS/9402914 to your computer and use it in GitHub Desktop.
"""
Explode
by Daniel Shiffman.
(Rewritten in Python by Jonathan Feinberg.)
Mouse horizontal location controls breaking apart of image and
Maps pixels from a 2D image into 3D space. Pixel brightness controls
translation along z axis.
"""
cellsize = 2 # Dimensions of each cell in the grid
img = loadImage("eames.jpg")
columns = img.width / cellsize # Calculate # of columns
rows = img.height / cellsize # Calculate # of rows
def setup():
size(640, 360, P3D)
def draw():
background(0)
for row in range(rows):
for col in range(columns):
x = cellsize * col + cellsize / 2
y = cellsize * row + cellsize / 2
loc = x + y * img.width # Pixel array location
c = img.pixels[loc] # Grab the color
# Calculate a z position as a function of mouseX and pixel brightness
z = (mouseX / float(width)) * brightness(img.pixels[loc]) - 20.0
# Translate to the location, set fill and stroke, and draw the rect
pushMatrix()
translate(x + 200, y + 100, z)
fill(c, 204)
noStroke()
rectMode(CENTER)
rect(0, 0, cellsize, cellsize)
popMatrix()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment