Emprender con Programación Gráfica
Vas a crear, en grupo, una pequeña empresa tecnológica cuyo objetivo es desarrollar un programa informático que dé respuesta a un problema o necesidad de la sociedad usando p5.js.
Tu empresa debe:
- Detectar un problema real (educativo, social, medioambiental, cultural, salud, bienestar…).
- Proponer una idea original e innovadora basada en programación gráfica.
- Desarrollar un producto digital funcional con p5.js.
El producto puede ser, por ejemplo:
- Un videojuego sencillo con mensaje social
- Una obra de arte digital interactiva
- Una aplicación visual educativa
- Una simulación o experiencia interactiva
Requisitos mínimos del proyecto
El proyecto debe incluir:
- Uso de programación gráfica con p5.js
- Interacción con ratón y/o teclado
- Uso de estructuras de control (condicionales y bucles)
- Un diseño propio y creativo, no copiado
- Un enfoque ético y responsable del uso de la tecnología
Trabajo en equipo y actitud emprendedora
Durante el desarrollo del proyecto se valorará especialmente que:
- Participes de forma activa en el grupo.
- Aportes ideas propias y escuches las de los demás.
- Compartas avances, aceptes críticas y mejores el proyecto.
- Muestres iniciativa, compromiso y liderazgo en el trabajo.
Entregables
Cada grupo deberá presentar:
- El programa funcional desarrollado en p5.js.
- Una breve explicación de:
- El problema elegido
- La solución propuesta
- Por qué vuestro proyecto aporta valor a la sociedad
🌍 Ejemplo de proyecto social: Clean the River
Idea del proyecto
Un programa interactivo que conciencie sobre la contaminación de ríos.
El usuario usa el ratón para eliminar basura. Cuando lo consigue, el entorno cambia y mejora.
🧠 Qué evalúa este ejemplo
Este programa demuestra:
- Creatividad computacional
- Uso de p5.js
- Interacción con rató
- Condicionales y bucles
- Mensaje social claro
- Diseño propio y comprensible
💻 Código de ejemplo (p5.js)
let basura = [];
let limpiado = false;
function setup() {
createCanvas(500, 300);
// Crear basura en posiciones aleatorias
for (let i = 0; i < 10; i++) {
basura.push({
x: random(50, width - 50),
y: random(150, height - 50),
r: 20,
visible: true
});
}
}
function draw() {
// Cielo
background(135, 206, 235);
// Río
fill(70, 130, 180);
rect(0, 150, width, 150);
// Mensaje
fill(0);
textSize(16);
textAlign(CENTER);
if (!limpiado) {
text("Haz clic sobre la basura para limpiar el río", width / 2, 30);
} else {
text("¡Buen trabajo! El río está limpio 🌱", width / 2, 30);
}
// Dibujar basura
let quedan = 0;
for (let b of basura) {
if (b.visible) {
quedan++;
fill(120);
circle(b.x, b.y, b.r);
}
}
// Si no queda basura
if (quedan === 0) {
limpiado = true;
}
}
function mousePressed() {
// Detectar clic sobre la basura
for (let b of basura) {
let d = dist(mouseX, mouseY, b.x, b.y);
if (d < b.r / 2) {
b.visible = false;
}
}
}
A partir de este ejemplo, podéis:
- Añadir contador de tiempo o puntos
- Cambiar el escenario (playa, ciudad, bosque…)
- Mostrar un mensaje educativo final
- Usar teclado para acciones especiales
- Mejorar el diseño gráfico
![]() |
![]() |

