Interactive City: Fishes



For this project, what I wanted to create was something that gave the user the option to create a negative action and a positive action. Building off my moving text project, what I ended up creating was a school of fish which would either turn away from the mouse or swim towards the mouse if you presented food. The negative action being the default setting which causes the fish to swim away from the mouse cursor, and the positive action being the clicked mouse setting which projects a worm for the fishes to eat. The user and the fish perform very binary act. Either the fish run away from the mouse, or they move towards it.

Knowing that I needed to simulate the movements of retreat, I figured I could split the screen into two vertical halves, controlling lateral movement. In this way, if the fish continuously moved from the left or the right, it would seem as if they were backing away from something, and it gave the user the option to force the fish one of two ways. Controlling the fish with the presence of the mouse rather than pressing a key creates a more realistic setting. The user is invading their space and they are disturbed with the new invasive presence. Involving the option to press the mouse as a means to add food for the fishes to call them only added another layer to the space related control, which means in total there are four actions which the user can implicate, just on the positioning of the mouse and whether or not it is clicked.

There were several things which went wrong when creating this project. Initially I had intended to use only one fish that would randomly appear at a different level of the ocean after exiting off screen when scared, but since I could not successfully incorporate the random function and its variables into the script without errors I settled for creating a fish on every level of the ocean. In defense of the school of fish I ended up using instead of the singular fish, it is easier to feel the effect of one’s actions upon a group rather than an individual. Another problem which I still do not understand is that with the addition of more “fish” into the script, the faster they moved when the program was running. I would assume the addition of more fish into the script would delay the speed of the code since there would be more to run through, but that was not the case. To accommodate for the speeding fish, I added a delay to the draw function. In relation to the creation of the project these were the two most notable problems. In response to how people interacted with this project, the greatest problem was how quickly people got tired of it. The project is a simple interaction that does not really allow for any creativity beyond where you get to place the worm, so it was not a huge surprise that it did not hold the attention of users for long.

However, in the end everything else went right. I was able to keep the fishes as images created from keyboard symbols. Even the worm follows this style since it is an orange “s”. The means by which users interact also worked as I had hoped it to, and I believe it is appropriate that the default setting is the one that repels the fish since it is easier in real life to disturb than to nurture. I would also say this project relates to LAX’s Urbanimals in that it invites you to interact with these simple animals, but would stress how the intention is different. I have seen from the people I have shown this to that it creates an emphasis on the difference between welcome and unwelcome actions, whereas Urbanimals focuses on welcoming actions only. In other words, the project here allows the user to control the relationship between them and the rudimentary fishes, while the LAX interaction presents a more mutual relationship.

Garrett Hsuan