sweetcorn – MidSemester

What good is a party without attendees?

For my mid-semester project, I chose to revise my generative people. I had lost a lot of charm when I ported my face generation code from JavaScript to python implementing vsketch with shapely, particularly due to the loss of curves that I had originally written with p5.js’s beginShape(), endShape(), and curveVertex(). I could have figured out the Bezier curves, but I don’t really care to do that. I rewrote the head and its associated coordinate system using a parametric cranioid equation that Golan sent me. I was not very smart in how I had set up a lot of placements last time. Instead of prescribing positions, this time I more often got the boundaries of previous geometries and used their positions to relatively place other geometries.

I also found my previous sweaters’ pattern to be a missed opportunity for variation. I implemented trimesh’s medial_axis functionality on the sweater (after adding arms and hands, which were unfortunate things to have left off last time) in order to get a simple structure off which I could base a faux-dimensionality. I broke the sweater into polygons using this medial axis and filled each polygon with the sweater’s original hershey-symbol-character-based pattern, this time sheared proportionally to the polygon’s centroid’s distance to the nearest point on the axis. This breaks the sweater into sections, each with a not very accurate three-dimensionality. Below is an image of the boundaries of each section that composes the sweater. I’m reminded of my Grandma on my Mom’s side, who would make and sell little flat paper-clothed dolls.

Below is a gif of several .svgs created, showing some of the range of the generativity. Note that the angle of the arms sometimes pushes them past the bounds of the paper (which in the here-horizontal direction is strict for the plotter) which is an error I have yet to fix. Often if the arms are generated in the down position, they form an internal polygon between the elbow and the body. That’s only natural, but trimesh and shapely are not handling that internal polygon very well for various reasons. The result is that most of the successfully-generated people have their arms in the air, which contributes to a certain anxiety to these figures which Mali pointed out.

These .svgs are converted into HPGL files using a custom config file for vpype to be plotted life-sized on the USCutter MH871-MK2. Below is a photo of a completed plot. For my last two projects, I had made the mistake of using too thin a drawing instrument for such large paper, leading to some legibility issues. This time, I used a thick purple sharpie and set the USCutter up such that significant pressure was applied to the paper with the sharpie, making a thicker line. I do wonder if the child-like quality of thick Crayola markers would be appropriate to use as I had for the first plot. Longevity isn’t exactly a concern, given the relatively short length of parties these figures are to attend. Most of the plotter-communication error I ran into last time must have been somehow due to the concentric filling of the hair, which I have since changed to simple vertical hatching. I also filled the pupils and sometimes the lips to the point where they appear solid. I fortunately ran into no plotting problems other than my laptop falling asleep before I plugged it in, stopping the transmission of data to the plotter. This put a big line right through my first plot. Not the first time I’ve made this mistake.

And for fun, a video of the sweater being plotted:

Future directions for this project include better sorting out the sweater-sectioning and shearing method to completely fill the sweaters dimensionally, adding more detail to the pants and shoes, implementing flow-field-based hair filling, multi-color plotting, and variance in pose/activity for each person. The goal in the end is to be able to generate and plot enough figures to have a lovely party.

~xoxo