Project #2 Form Generator

Description

Form: Robot
Code: https://editor.p5js.org/mlinhle617/sketches/Ak0UjpnU4
For this project, I want to create something fun and silly with robots, since there has been discussion about robots in every class that I am taking; most of which are quite serious and pessimistic. After considering a few ideas, I decided on a dancing little robot that can grow from a small capsule into a big robot with arms that can be extended and raise up and down.

Design Process

The design is inspired by the structure of eggs and how life can grow from such a small delicate thing. After a few quick sketches on paper, I created two drawing in Illustrator: one of the robot in its maximum scale, and one of its minimum scale. In my original mockup, I decided to give the robots arms and legs in its maximum scale and reduce the minimum scale to only a small capsule that looks like an egg. Once I’ve got the measurement and coordinates down, I started to work on the project in p5.js editor.

My plan was to create the robot in full scale first then shrink down parts one by one. I ended up experimenting with three versions of the project.

In one version, I use scale and a scale variable that can change with mousePressed or keyPressed to shrink the robot. However, I had a lot of problem trying to get the coordinate right with this version. I could scale up one object from the center of the canvas but not the entire robot. Although the robot in full scale does look fun, the minimum version’s placement looks awkward. I decided to scrap this version.

The second version still has both arms and legs and was certainly an improvement from the awkward version 1. I was able to transform the robot from its minimum scale to is maximum scale from the center of the canvas. The placement of the robot is good in both maximum scale and minimum scale this time. Because I scale down the parts of the robots one by one, I was able to play small details that I think make the design look better, such as bigger eyes when the robot is in its egg form and smaller eyes in the "grown up" version. The variations of the form mostly look good too. I almost submitted this version until I decided to do one last check and found out that the legs are scaling weirdly in some variations of the robot. The legs sometimes separate completely from the robot’s body and hang either below or above the robot. I thought the problem was with the legs’ coordinates, so I tried for several hours to change the coordinates and measurements of the legs to fix the problem. There were also problems with the connectors on the robot’s body, which also scale in a strange way and sometimes do not even attach to the robot.

I decided to experiment with a third version, getting rid of the legs and the connectors. The removal of those parts turned out to not affect the design as much as I thought. Other details on the robot can still indicate that it’s a robot, and with less parts, the robot looks more friendly and childlike. After tweaking the details a bit to my liking, I decided to go with this version, and adjusted the arms so that as they move, they can create the illusion of new parts on the robot like wings or antennas in some variations. I also made the lights on the robot change colors as it dance and party on its own.

Reflection

I’ve discovered that even though the form I’ve chosen consist of purely 2D geometric shapes, it’s still quite difficult to create parameterized design with it. The main problem is with the in between variations. When you trust the machine to generate these variations with little control, it’s hard to make sure that all variations look good. I think the lesson that I learned from this exercise is that the more we can control the generator, the better it is at creating functional and aesthetically pleasing forms.