Ir al contenido

Unidad 2

En esta unidad repasarás el concepto de vector y algunas de sus operaciones básicas y experimentarás con conceptos matemáticos y físicos, como velocidad y aceleración. Estos conceptos te permitirán controlar el movimiento de tus elementos gráficos en tus proyectos interactivos.

Veamos juntos este hermoso video Tom Mohr How Particle Life emerges from simplicity que conecta la unidad anterior cuando hablamos de sistemas generativos y esta unidad donde exploraremos vectores y movimiento.


Criterio (peso)Cumple plenamente (5.0)Se cumple medianamente (4.0)Problemas importantes (3.0)Falta comprensión básica (2.0)No hay evidencia (0.0)
1. Aplicación + bitácora (40%)La app se ejecuta sin fallos en el entorno acordado. Evidencia completa y verificable en bitácora. Todo consistente con lo mostrado en la demo.La app funciona y cumple lo esencial. La bitácora permite verificar, pero hay 1–2 vacíos menoresLa app funciona parcialmente o depende de condiciones no declaradas. Bitácora con vacíos importantes o incompleta.La app no corre o no demuestra lo requerido. La bitácora no permite verificación de la app.No se entregaron evidencias o no se puede acceder a ellas
Evaluación
2. Sustentación (60%)Responde a las preguntas con precisión, conectando: (a) lo que se ve, (b) cómo está hecho, y (c) por qué. Usa su bitácora para justificar decisiones. Reconoce límites/errores y propone cómo probar/mejorar.Respuestas correctas pero con imprecisiones menores o justificación superficial. Usa parcialmente la bitácora para sustentar.Responde solo “qué hizo” pero le cuesta explicar “cómo” o “por qué”. Necesita guía para conectar con su propia evidencia/bitácora.No logra responder de forma coherente o responde sin relación con lo presentado/documentado. Evidencia falta de comprensión básica del trabajo entregado.No se entregaron evidencias o no se puede acceder a ellas
Evaluación


Set: ¿Qué aprenderás en esta unidad? 💡

Sección titulada «Set: ¿Qué aprenderás en esta unidad? 💡»

En esta unidad aprenderás una técnica fundamental para controlar el movimiento de los objetos visuales de tus creaciones interactivas. Se trata del marco motion 101. Este marco no solo será útil en esta unidad, sino que también te acompañará en las siguientes unidades, ya que es una técnica esencial para el desarrollo de proyectos interactivos. Y no solo eso, sino que podrás aplicar esta técnica en cualquier lenguaje de programación, o entorno de desarrollo, ya que es un concepto universal en la programación de gráficos y animaciones. Lo mejor de todo es que para aplicar esta técnicas no necesitas un motor de físicas.

Exploración de artistas que usan vectores y movimiento

Sección titulada «Exploración de artistas que usan vectores y movimiento»

Te presentaré algunos artistas que utilizan conceptos de vectores, velocidad y aceleración en sus obras.

Vas a indagar y a experimentar con los conceptos fundamentales de la unidad 1 del texto guía. En particular, queremos explorar los conceptos de vector, velocidad y aceleración y cómo los podemos usar para controlar el movimiento de objetos gráficos en un entorno interactivo.

En esta actividad vamos a repasar algunos conceptos básicos de los vectores. Te propondré que analicemos juntos algunos de los ejemplos del texto de guía.

Comencemos por el ejemplo: Example 1.2: Bouncing Ball with Vectors!

Realiza este ejercicio del libro Exercise 1.1

Dale una mirada a este código:

let position;
function setup() {
createCanvas(400, 400);
position = createVector(6,9);
console.log(position.toString());
playingVector(position);
console.log(position.toString());
noLoop();
}
function playingVector(v){
v.x = 20;
v.y = 30;
}
function draw() {
background(220);
console.log("Only once");
}

Vamos a darle una mirada a la clase p5.Vector aquí.

Vas a tomar como inspiración este ejemplo de la referencia de p5.js:

function setup() {
createCanvas(100, 100);
}
function draw() {
background(200);
let v0 = createVector(50, 50);
let v1 = createVector(30, 0);
let v2 = createVector(0, 30);
let v3 = p5.Vector.lerp(v1, v2, 0.5);
drawArrow(v0, v1, 'red');
drawArrow(v0, v2, 'blue');
drawArrow(v0, v3, 'purple');
}
function drawArrow(base, vec, myColor) {
push();
stroke(myColor);
strokeWeight(3);
fill(myColor);
translate(base.x, base.y);
line(0, 0, vec.x, vec.y);
rotate(vec.heading());
let arrowSize = 7;
translate(vec.mag() - arrowSize, 0);
triangle(0, arrowSize / 2, 0, -arrowSize / 2, arrowSize, 0);
pop();
}

Vas a modificarlo para generar este resultado:

Resultado

  • Analiza cómo funciona el método lerp().
  • Nota que además de la interpolación lineal de vectores, también puedes hacer interpolación lineal de colores con el método lerpColor().

Dedica un tiempo a estudiar cómo se dibuja una flecha en el método drawArrow().

En la sección del texto guía llamada Motion with vectors, el autor propone un marco de movimiento llamado motion 101. Así mismo, el ejemplo 1.7 muetra cómo se aplica este marco en un ejemplo simple.

En el libro proponen una regla (que eventualmente se rompe cuando conviene):

The goal for programming motion is to come up with an algorithm for calculating acceleration and then let the trickle-down effect work its magic.

Para investigador el significado de esta frase te propone que construyas un experimento donde analices cómo se comporta un objeto en movimiento con:

  • Aceleración constante.
  • Aceleración aleatoria.
  • Aceleración hacia el mouse.

En esa fase vas a aplicar los conceptos investigados y vas a crear una pieza de arte generativo interactivo en tiempo real usando vectores y el marco motion 101.

Vas a crear una obra generativa interactivo en tiempo real que utilice los conceptos de motion 101. La idea de este sistema generativo es experimentar con reglas distintas de manipulación para la aceleración.

Recuerda que tu obra debe ser interactiva y generativa en tiempo real. Puedes usar el mouse, el teclado o cualquier otro sensor de entrada para interactuar con la obra.

Es momento de consolidar lo aprendido en esta unidad.

Para esta última actividad de la unidad te pediré que regreses a uno de los ejemplos del texto guía. Se trata del Ejemplo 1.10. Estudia en detalle el código. Ahora te pediré que revices en detalle una parte de la charla del artista Jared Tarbell que encontrarás aquí en el minuto 49:38 hasta el 54:02. Luego de esto revisa el proyecto original que menciona Jared. Se trata del trabajo Clusters del artista Jeffrey Ventrella. Puedes encontrar una explicación del propio artista aquí.

Enriquecido con esta información, te perdirá que crees algo inspirado en:

  1. Las ideas de Jared y Jeffrey
  2. En lo que trabajaste en esta unidad sobre vectores y motion 101.