1. https://alpha.editor.p5js.org/full/ry6ERF87x

2. https://alpha.editor.p5js.org/full/Bk8uoVvml

3. https://alpha.editor.p5js.org/full/ByscaqIXl



I would like to talk about the process, about my process at ICM and this final work.

As you might recall it began with clouds and marble sculptures, well actually it began with looking up, looking into the blue skies and finding myself amazed with the movement of white.

So I decided to study particle systems and clearly Shiffman’s tutorials were not enough, but I found myself looking for more, trying to understand how nature works how we work. I couldn’t understand the math or the physics really but there was something I felt i did understand something that seemed very logic and visual to me but very abstract when I tried to define it.

I decided to stop the online tutorials for a moment and I went back to books. I think it was the best decision I made because I realized that all of those interesting, complex and fascinating ideas that I read about in my books on anthropology, sociology and art theories I now imagined them being created or expressed in p5 sketches and suddenly a door opened!

I kept on reading and mixing my books with new books on physics and code; in the midst of my research a thought came to me: “an acoustics of change begins with an encounter”1 …

Somehow, I thought this quote explained the logic behind particle systems. And I wondered, How can I express this with code?

Acoustics= waves/amplitude

Encounter= the immediate thought is: to meet someone or something else, but isn’t the first encounter with ourselves?

We see the canvas or space as empty, as waiting for our creativity and information to be deployed, but in reality the canvas is already full, how much information: layers of information make it. x y z , etc plus our own images assumptions information etc, therefore what we do as we approach canvas is to delineate, to subtract, understand.

An encounter implies space and time. – as we attempt to delimit our own geographies by following our vibrations we realize that in order for this to happen the other most exist, a wave will not delimit our geometry if there was no distance, if we didn’t position ourselves in space and in relation to others.

Like particles  as they grow together.

I went back to my old notes from the first ICM classes and realized I have been wondering around the same concepts.

“It is our task to organize the silence in which we begin.”

“That is, the software “corrects” us through the assumptions of approximation.”

“Our most ancient and exquisite self-correcting tool has always been neither the pen nor the scalpel, but the algorithm.6″

“If we operate according to an acoustics of change, the one who holds the microphone listens in the space of silence. Silence is the desire of the other. It organizes a politics of many. If the microphone is only used to amplify oneself, then one may as well have grabbed a hammer.”


Ultra-red, “Some theses on militant sound investigation, or, listening for a change.”

Francesca Hughes, “Facilities for Correction”


//computer tell me something that makes me think, that moves me.
//Then I click and I see an encounter. Show me a virtual encounter, show me a real encounter. Which one happens first? 
//An encounter seems to be with the other, but isn't it always with ourselves first? For the point to exist, does it need a line? It needs another point. 

var weWantToShowTheVideo = false;
var mic;
var micLevel;
var points = [];
var prevFrame;
var threshold = 100;
function preload() {
 img = loadImage("titulo.JPG");
 capture = createCapture(VIDEO);
function setup() {
 var cnv = createCanvas(windowWidth, windowHeight);
 mic = new p5.AudioIn()
function draw() {
 background(255, 17);

if (weWantToShowTheVideo) {
image(capture, windowWidth / 2, windowHeight / 2);
 } else {
image(img, windowWidth / 3, windowHeight / 2, 450, 50);
micLevel = mic.getLevel();
for (i = 0; i < points.length; i++) {
function mouseMoved() {
 if (weWantToShowTheVideo) {
 var newPoint = new Point();
 newPoint.xpos = mouseX;
 newPoint.ypos = mouseY;
function Point() {
 this.xpos = 0;
 this.ypos = 0;
 this.display = function(micLevel) {
ellipse(this.xpos, constrain(this.ypos - micLevel * this.ypos * 10, 0, this.ypos), 10, 10);
ellipse(this.xpos, constrain(this.ypos - 40 + micLevel * this.ypos * 10, 0, this.ypos), 10, 10);
function mousePressed() {
weWantToShowTheVideo = true;
//I enjoy the movement of the console.


Code 2:

//initial positions

var posInitX1;
var posInitX2;
var posInitY1;
var posInitY2;

//current position
var posX1;
var posX2;
var posY1;
var posY2;

//movement for updating position
var incrementX;
var directionX;
var incrementY;
var directionY;
var myDiameter;

var mic;
function setup(){
 mic = new p5.AudioIn()
 //first ellipse starts in upper left corner
 posInitX1 = 0;
 posInitY1 = 0;
 //second ellipse starts in lower right corner
 posInitX2 = width;
 posInitY2 = height;
 //initialization of position
 posX1 = posInitX1;
 posY1 = posInitY1;
 posX2 = posInitX2;
 posY2 = posInitY2;
 //diameter of ellipses
 myDiameter = 10;
 //define movement direction and amount
 incrementX = 1;
 directionX = 1;
 incrementY = 1;
 directionY = 1;
function draw(){
 background(255, 17);
 micLevel = mic.getLevel();
 //ellipse(width/2, constrain(height-micLevel*height*5, 0, height), 10, 10);
 //ellipse(width/2, constrain(0+micLevel*height*5, 0, height), 010, 1);
 // incrementX = 5*micLevel;
 //update position of ellipses
 if (micLevel > 0.02 && (dist(posX1, posY1, posX2, posY2) > 1)) {
 posX1 = posX1 + incrementX*directionX;
 posX2 = posX2 - incrementX*directionX;
 posY1 = posY1 + incrementY*directionY;
 posY2 = posY2 - incrementY*directionY;
 ellipse(posX1, posY1, myDiameter, myDiameter);
 ellipse(posX2, posY2, myDiameter, myDiameter);
 //ellipse(mouseX, mouseY, 70,50);


var vid;
var mic;
function preload(){
 vid = createVideo("MARGRID.mov");
function setup(){
 createCanvas(400, 400, WEBGL);
 mic = new p5.AudioIn()

function draw(){
 //pass video frame as texture
 micLevel = mic.getLevel();
 plane(200,constrain(height-micLevel*height*5, 0, height));
 micLevel = mic.getLevel();

Final Project Idea1



I am interested in:

-A sudden suspension of the natural order.

-Observation, to notice and wonder.

-An intelligent cloud/spheric connections of space.

-“Humans are beings that participate in spaces unknown to physics.”Peter sloterdijk

-“And how perplexed must any womb-born creature feel, who is obliged to fly thin air.”Rilke

Wouldn’t it be amazing if we could look up to the blue sky and see the smoke coming out of factory chimneys transform into classic marble sculptures. They rise and are shaped with the smoke and then disappear in thin air one by one.

I would like to try this idea using p5 and data from museums all over the world, so you could control the marble sculptures that you want to see, from specific time period or artists. Also, if possible a real video of smoke from different factories.

I am not sure if this is possible but I have asked around ITP and some say it is, they tell me to explore: 3d simulation, webgl smoke and this library that looks incredible:


skeleton tracking with bubbles
















Body outline cone #openframeworks

A post shared by zach lieberman (@zach.lieberman) on


Body curl uncurl in place #openframeworks

A post shared by zach lieberman (@zach.lieberman) on






The problem with network theory, Sloterdijk claims, is that it overstates the linear connections of points within a planar surface to the detriment of the intrinsic volume of all social space—network theory replicates rather than analyses the Euclid hierarchy in which a point is that which has no part, lines are made out of these empty points, planes from lines, and spheres from planes. For Sloterdijk—and it would seem for Levi-Strauss as well—because humans cannot reside in a point, in the beginning there was the bubble.12 Third, for Levi-Strauss, because every cultural world feels like a closed space to those within it, each cultural world is structured immunologically in the sense that each world interprets every difference within it as a possible foreign invasion and uses mechanisms to neutralize, expel, or extinguish this “invasion.”



p5: https://alpha.editor.p5js.org/projects/ByrdU98kl

Bubble drawing with P5



A machine that draws with bubbles and ink.








Is it possible to calculate the structure or predict the drawings with P5?












I would like to trace a code in space, in actual space, and that the stroke is a light source. An animation of an exquisite corpse that is created in space with light, real time and in a human scale.





Infinite possibilities/potential, this is what I would like to explore. A concept that seems so easy for a computer or a programing mechanism and so difficult for humans, but in reality the human body-or nature-seem to have organically infinite possibilities.
I would like to understand how can we measure the dialogue amongst these infinite possibilities. How can we learn from it? Is it a new measurement unit? Is it maybe a new way of learning that is not based in comparison?
I feel that artists have always thought about the fabrication of reality, in different levels and spheres. Just as anthropologists or other social sciences. (In the beginning there was the bubble.) With P5.js, everyone could think about this, everyone can participate in the dialogue or can resonate with someone else’s dialogue with reality. I have questions.
Can I use coding to make drawings with light in space? Can I upload my own hand drawing and transform it into code and then have it virtually in space, similar to:

article-2109060-11fea371000005dc-386_306x406 picasso_3 http-%2f%2fa-amz-mshcdn-com%2fwp-content%2fuploads%2f2014%2f10%2fpicasso-light

Can I change the entire color/light of a room during time using coding and connect the technology to a chemical  process?

P5 Sketch: https://alpha.editor.p5js.org/projects/ryIdOBd2