Michael McCullough
Semester 2, 2024
Lab 10 requirements:
fork the MP repository
start some aspect of your MP
commit and push it to gitlab
think about the following questions
“How does this sketch reflect the major project theme? How does this sketch engage the viewer? What is the address of your sketch on the test server?”
In your MP you have an instructions.md
file as well as an artist statement.
This file is for explaining how to set up and operate your work, just in case it isn’t intuitive or you have special requirements.
but don’t confuse the instructions file with the artist statement.
We don’t mind if you start with someone elses code or ideas, as long as you change it significantly and put it in your references file.
If you take ideas from somewhere they must go in your references.md
, even if you’ve significantly changed the code.
A minimum of two references are still required
Include all asset files (images, sounds, fonts) in your references.md
with full author and source information.
your major project is an interactive p5 artwork for a hypothetical new-media art exhibition
gallery attendees are able to walk around and may interact with your work
your goal is to provide them with an engaging experience of roughly three minutes exploring the project theme
you can interpret the theme however you like
but read the requirements carefully
make a start on your project and have something finished for your lab in week 10.
by your week 10 lab…
everyone should have forked and made at least one commit!
We don’t cover all that there is to know about programming or p5
in this course.
You have enough knowledge to create a great major project!
Now it’s time to look beyond the basics and look at recent developments in Art and Interaction Computing
1720 Students:
6720 Students: the above, and it’s a course requirement!
See the major project requirements…
If you are a student enrolled in COMP6720, then as an additional task you must explain how your artwork reflects recent developments in Art and Interaction Computing in your
comp6720-recent-developments.md
file (max 200 words).
Today we will start and cover some fundamental concepts.
In the last part of this course we look at specific topics that have a good connection with p5
:
Something that happened in the last 15 years…
What we’re talking about today starts in the late 90s, early 2000s…
Resources to help:
Human-Computer Interaction is the field of study of how people use computer systems (and how to design them).
There has been a move from “ease-of-use” to “experience” in studying interactions.
Movement towards studying tools to support creativity.
“there is a move from routine work and productive concerns to human and creative ones.” (Edmonds, 2018).
Refernce: Edmonds, E. (2018). The art of interaction: What HCI can learn from interactive art. Morgan & Claypool Publishers. ANU Library Link
Artists are “creative power users” (Candy, 2007).
Artists show us the boundaries of human-computer interaction (excess of je ne sais quoi)
Studying interactive art gives us insight into the potential of creativity support tools in the hands of experts.
This translates into findings about “everyday creativity” (Edmonds, 2018)
interactive art and human-computer interaction have important connections.
research about interactive art is often wrapped up in HCI research.
now lets look at some big concepts and examples
Charles Martin et al.
Sverm Resonans
2018
Charles Martin and Zeruo Liu
Listening to Listening
2019
Yichen Wang
Sonic Sculptural Staircase
2021
Wait a minute… haven’t we looked at objects already?
Yes, but there are other ways to create objects that are useful if you want to make lots of them.
You can look at more info here in the MDN docs.
recall this way of creating a “sally” object:
let sally = {
species: "Pikachu",
level: 1,
hp: 100,
};
Object constructors are special functions that generate objects, you mark them by using a capital letter at the start of the function name:
function Pokemon(species, level, hp) {
this.species = species
this.level = level
this.hp = hp
}
You can use this as follows:
sally = new Pokemon("Pikachu", 1, 100)
new
sally = new Pokemon("Pikachu", 1, 100)
new
is a special word that tells JS to create an object from a constructor.
this
function Pokemon(species, level, hp) {
this.species = species
this.level = level
this.hp = hp
}
this
is a special variable name in JS that refers to the current object.
We can use the Pokemon()
constructor to make lots of different objects, so this
is a way of saying “not THAT pokemon, THIS pokemon!”.
You can put methods in constructors too:
function Pokemon(species, level, hp) {
this.species = species
this.level = level
this.hp = hp
this.hello = function() {
console.log("Hi, I'm", this.species)
}
}
this
is especially handy for methods.
Suppose you forgot to make a constructor, or just didn’t want to.
let sally = {
species: "Pikachu",
level: 1,
hp: 100,
};
You can still make more pokemon!
let jeffrey = Object.create(sally);
(Question: Why would we need to do this?)
Edmonds, E. (2018). The art of interaction: What HCI can learn from interactive art. Morgan & Claypool Publishers. ANU Link
Shneiderman, B. (2007). Creativity support tools: Accelerating discovery and innovation. Communications of the ACM, 50(12), 20–32. https://doi.org/10.1145/1323688.1323689
Computational Creativity: 14 AI Artists
Full bibliography for this lecture: https://cpmpercussion.github.io/art-and-interaction-bibliography/index.html