superMORPH uses the mathematical superformula to generate 3D supershapes whose parameters are driven through a user’s input using a Kinect.

# Where 'theta' is equal to a given pole in 2D space

r = (((1 / a) * cos (m1 / 4) * theta) ^ n2 + ((1 / b) * sin (m2 / 4 * theta)) ^ n3) ^ -1 / n1

# Extended to 3D

r1 = r where 'theta' is equal to a given longitudinal point

r2 = r where 'theta' is equal to a given latitudinal point

# For each point in 3D space

x = radius * r1 * cos(longitude point) * r2 * cos(latitude point)

y = radius * r1 * sin(longitude point) * r2 * cos(latitude point)

z = radius * r2 * sin(latitude point)

SuperMORPH uses the Kinect's depth sensor to gather data regarding the user's width, height, distance, and joint coordinates, using a combination of KinectPV2, a library to interface Kinect with Processing(Java).

This data is normalized to reduce the jittery input, and then used to drive the parameters of the superformula, changing the supershape's structure and appearance. Additionally, users can rotate and zoom the camera by closing their hands and dragging.

This project was a collaborative piece made with Sarah Lauzon, who managed supershape generation and rendering. I dealt with the algorithms for user input, gesture handling, and supershape dynamics.