Intro to Computation

Work in Progress: Social Media Sustained Ecology

December 7, 2016
/ / /

FINAL || Instructor: Allison Parish || Collaborators: Carlie Zhang

The flocks’ movements are generated by a variety of environmental factors. For both flocks, the individual agents push and pull with cohesion forces and separation forces to avoid collision.  There is a general Perlin noise field which helps the flocks seem to move with intent and purpose.  The field vectors also keep the flock within the parameters of the screen.  Where flock one generally moves with the field vectors, flock two’s main objective is the chase and collide with flock one.  When food is generated on the screen, both flocks however, are drawn strongly to the food source to sustain their existence.  Food is the strongest motivating force in this system.  Individual agents will break from the larger group if food is in sight.  The number of food particles generated is equal to the number likes and the number of characters found with in the comments of the post.

Read More

Social Media Sustained Ecology

November 17, 2016
/ / /

FINAL  || Instructor: Allison Parish  ||  Collaborators: Carlie Zhang

Inspired by my childhood digital pet game, Tamagotchi, our project imagines a digital micro ecosystem which feeds off the social media activity: ‘posts’, ‘likes’, and ‘comments’.  The system of intelligent behavior particles, or flocks, swarm and feed from food source nodes which emit food particles and sustain the individual agents within the flock.  The food nodes are taken from a users Instagram posts and the food particles are representative of the posts and comments on each post.  Without sustained feeding of the flocking agents, the story takes a dark turn, the flock will start to exhibit abnormal behavior as agents within the flock begin to cannibalize each other.   The first flock changes into a predatory pack hunting down remaining agents from the original group until the food source returns.

The first example below shows flocking behavior with the individual agents informing the group behavior and vice versa.  The second example shows independent autonomous particles moving based on a Perlin noise flow field.

Targeting Flocking Behavior p5.js alpha editor link || Perlin Noise FlowField p5.js alpha editor link

Read More


October 13, 2016
/ / /

This is an initial study into systemic coding.  The distance between the nodes are evaluated to each other and if the nodes are with in a certain respective distance to each other, a connection is made.  I am more interested in what these nodes can be, and what rules must be met for a connection to be made.  The nodes could be anything from swarm particles, people, or sites.  The reason for connection can be more complex and can be used to reveal relationships and visualize data.

Constellation p5.js alpha editor link

Start by clicking in black space…

Read More

Synthesis Day: Serial Communication

October 10, 2016
/ / /

Synthesis Day ||  Collaborators: Danni Huang


Danni and I, built off of a partially completed script.  We initially wanted to make an “atomic model” with a changing number of orbiting electrons.  We used our FRS (and photosensors, later) to make the radius and the electron numbers increase and decrease.  We made an array of orbiting ellipses and set the value to 1000. The frequency of the orbiting ellipses created an unexpected illusion.  It looks like a series of dilating rings composed of many smaller particles.

SuperNova p5.js alpha editor link

Read More


September 21, 2016
/ / /

StrobeEye p5.js alpha editor link.

While getting too caught up in the p5js geometry, I used some linear algebra to plot variable geometry.  In order to get variable geometry that would change consistently with my mouse point on the screen (mouseX, mouseY),  it was necessary to find the variable slope and variable inverse slope of my mouse point to another point on my canvas.  This allowed me to create geometry that would automatically rotate and shift in respect to my mouse point on screen.  I failed, however, to consider “undefined” values and possible “asymptotes”.  So, although I was able to generally get my geometry to perform as I wanted, things start to fall apart at certain instances like when the rise of my slope is greater or less than zero and my run of my slope is zero.

I used these basic point and line formulas below to make the variable geometry currently culled out of my code…. womp womp womp…screen-shot-2016-10-10-at-2-45-21-pm


Read More