I've been spending some free cycles thinking about the development of Luminance and how it compares to software development processes. Also, about how the desired outcome is more about creating art than producing software.
One of the things I sense us continually grappling with are usability issues conflicting with artistic direction. At time, I sense losing sight of the artistic process for the sake of trying to solve something that is more suited to a software bug or web site interface issue. Luminance is neither of those. It is a multimedia art installation. Interaction is a key piece of it. Most likely it is the most crucial. However, dumbing down the interface should not be done at the sake of reducing the creativity.
We held a second user testing session last night. Overall, the session went very well as certain notions were enforced, while other thoughts and areas of inquiry crept up.
Here are some random notes:
*The macintosh is killing us. Both from the perspective that is is a difficult dev environment for Scott and I to make needed adjustments along the way. I am sure that we are creating more errors when trying to fix a bug on that mac.
I also question the performance the Mac is giving us. Truly think that we a windows pc would serve us better.
*Sound has really added to the piece. Many comments overheard on how users enjoyed the sound...especially the bell sounds.
*Definitely need to figure out how to allow users to control the flow of scenes. Changing scenes catches them off guard. They wonder how they did things.
*The fish scene isn't adding anything. Its a nice screensaver at this point.
*The transition scene of the larger bubbles is surprisingly effective. Definitely creates an emotional reaction. Users start backing up.
*The most wonderful thing: the installation inspriing someone to dance.
What follows are my notes after reading "Emotional Design" by Don Norman.
=================================
*Norman's Three Levels of Design
1) Visceral Design – Appearance
2) Behavioral Design – The pleasure and effectiveness of use
3) Reflective Design – Self-image, personal satisfaction, memories
How these impact Luminance:
1) Visceral – Luminance graphic scenes have been designed with soft colors and edges (curves) so that a user is attracted. Particular attraction emphasis has been given to the eye introduction.
2) Behavioral – Luminance is designed so that reaction, response, and feedback is immediate. This is the key behind all scenes and actionscript powering all scenes. The feedback loop must be short so that the participant can build awareness that he/she is impacting the installation
3) Reflective – testing has shown people to explore personal satisfaction via the “joy of doing things”. Other participants have entered a “trance” state where they seem to be meditating. The imagery (particularly photos) have been designed to spike memories and tell stories.
“NO SINGLE PRODUCT CAN HOPE TO SATISFY EVERYONE”
the only way to satisfy a wide variety of needs and preferences is to have a wide variety of products. (Luminance xplores this with the different scenes and interactivity)
Behavioral design of modern video games stresses powerful graphics and fast reflexes. (Luminance stressed reflex/response, often at the expense of powerful graphics…The Participant is the centerpieces and key…not the graphics)
***True long-lasting emotional feelings take time to develop --- they come from sustained interaction***
Luminance scenes are designed to build over time…sustained interaction PLUS increasingly unique/complex interaction ADDS immersiveness and evocation of emotional feelings within the participant.
PHOTOGRAPHS have special appeal. They are personal. They tell stories. Photographs are social instruments, allowing memories to be shared across time, place, and people. (This is why Luminance uses photos in foggy windows. The foggy windows adds to the mystery and process of discovery.)
Visceral Design --- we are exquisitely tuned to receive powerful emotional signals from the environment that get interpreted automatically at the visceral level. Visceral design is what nature does.
For someone to use a product successfully, they must have the same mental model as that of the designer. But the designer only talks to the user via the product itself, so the entire communication must take place through the system image: the information conveyed by the physical product itself (see diagram, p. 76)
***This is a key to user-centric design processes. The PARTICIPANT COMES FIRST!
Iterative, human-centered design works for behavioral design, but not for visceral or the reflective side. In visceral and reflective, the iterative method is design by compromise and committee, and by consensus. This guarantees a safe and effective result, but also dulls it down.
(iterative processes within process phases --- these designs encounter tradeoffs, because user is already first…nothing can jeopardize design for desired behavior)
(thought: whereas in painting, the canvas is the centerpiece…in sculptre, the clay is the centerpiece, in installation art…the participant is the centerpiece)
Films---test screening results dramatically change storylines to increase movie popularity/profit potential. Test results need to be balanced against creative crews.
*Three emotional levels (Jon Boorstein: “The Hollywood Eye: What makes movies Work”
1) Visceral – images, mis-en-scene, lighting, music
2) Vicarious – watching and observing, involes the participant in the story and emotional line. Profoundly moving
3) Voyuer – of the intellect, standing back to reflect and observe. Depth and complexity, metaphors and analogies…produce a deeper, richer meaning than is visable on the surface with characters and story. “The voyeur’s eye is the mind’s eye, not the heart’s”
The level of cognition, understanding, and interpreting. Logical and reflective
The voyeur can ruin it by critiquing it
*Mis-en-scene
People need to communicate continually, for comfort, for reassurance ….. This is why the feedback loop in Luminance is important. Continuous feedback/response assures the participant…validates his/her role.
Love-Hate relationship in design: irritation/dislike of a design is as much a result of social norms and standards as much as the design itself. These can only be changed by society itself.
*Especially true in technology…most modern technology centers around communication. Communication values usually driven by social standards.
*Emotional Machines
machines with emotions don't seem real. They still seem like machines. Not able to bridge the gap between man and machine.
I tried creating a second sound object in Luminance. This object would be reponsible for managing event sounds...such as the line drawing method within TinkerToys. I was able to attach a sound and attach it to the function that recongnized a neighbor and drew a line.
The result was disappointing. The data is coming too fast...basically what happens is that it is a constant tone. I even tried using just a simple event beep (similar to what's in windows operating systems). Again, the result was just constant beeping. It was more annoying than anything. Certainly did not add to the user experience.
This does not mean that we can not continue to explore event sounds. The event just needs to be well-defined.
Working on a way to utilize a single function for parsing messages in the init scene, while still allowing for proper cleaning.
The parseMessages function is the key function in Luminance and handles the activity associated with incoming XML data. But with each Luminance scene, there is a need to clean out all the old data points, then restructure and reorder the screen elements. Thus the parseMessage nodes may not have the same depths everytime.
Additionally, we don't want to have to sever and reconnect the XMLSocket everytime. What is needed is way to handle parsing of incoming XML in a different way. At least temporarily.
So here is the workaround I'm testing.
mySocket.onXML = handleIncoming; //this is the eventhandler for incomingXML
// *** event handler for incoming XML-encoded OSC packets
function handleIncoming (xmlIn) {
parseMessages(xmlIn);
}
function parseMessages(node) {
...lots of commands in here...
}
CHANGE IT TO SOMETHING LIKE THIS
mySocket.onXML = chillOut; //This would be added to winstonWolf for
cleaning
//this goes in init scene
//this allows data to still come on, connection isnt severed, just no
parsing is going on
function chillOut (xmlIn) {
trace("waiting for next scene");
}
mySocket.onXML = handleIncoming; //put this in each scene to redefine the
onXML event handler for mySocket
So if this works...then we can put parseMessages(node) back in init scene.
BUT...parse messages needs to be able to adapt to what we want it to what
function we want it to do (setCoord or setLarger or somethingelse that we
came up with)
Managed to do an initial stitching together of scenes into a single .fla for Luminance. Had some intial success testing locally. But concerned how the repeated function use may affect performance. It seems redundant to be redefining the same function over and over. Especially when there is no change in what the function actually does.
Cleaning scene also works REALLY well. Its definitely good practice to be removing all the various depths and layers before constructing the next scene.