For this week’s assignment, I revisited the bunny self-portrait that I made last week. I wanted to make the portrait interactive while keeping the shapes and code simple, so I added a carrot that the bunny could respond to.
The carrot follows the mouse because its position is controlled by mousex and mousey. I used dist() to calculate the distance between the carrot and the bunny’s face. When the carrot gets closer, the bunny’s eyes become larger. The pupils also move toward the carrot, making it look like the bunny is watching it.
At one point, I removed background() from draw(). Because draw() runs repeatedly, the canvas did not erase the previous frames. Every position of the carrot remained visible, creating a trail around the bunny.

Without background() inside draw(), previous carrot positions remain on the canvas. Then I added **background() to draw(). This erased the previous frame before drawing the next one, so only the carrot’s current position remained visible.

After comparing the results, I realized that the unexpected trail could become part of the work. I moved background() into draw() , so it is drawn only once, and placed the carrot code before the bunny code. The carrot’s movement now creates a background pattern while the bunny remains visible in front.
The interaction makes the bunny feel more responsive rather than completely static. As the carrot moves closer, the bunny’s eyes grow larger and its pupils turn toward it, creating a sense of curiosity and attention. Meanwhile, the carrot trail records the user’s movement and gradually becomes part of the composition. I like how one simple mouse movement can change the bunny’s expression in the present while also leaving a visible trace of the past.