Kresge Theatre & Alumni Concert Hall, CFA
Saturday, May 4, 2019, 8-10PM
Free and open to the public.
Pushing Air is an evening of music, soft-sculpture, and textile robotics presented in two parts. In the first section of the evening, presented in Kresge Theatre, the musicians of Exploded Ensemble will be joined onstage by robotic performative sculptures designed by the students of Kinetic Fabrics. Together, Exploded Ensemble and Kinetic Fabrics explore concepts of oscillation, polyrhythm, and complex pattern-making.
In the second section of the evening, the musicians of Exploded Ensemble move to Alumni Concert Hall where they will be surrounded by architectural scale artworks designed by the students of Inflatables and Soft Sculpture. Together, the inflatable sculpture and abstract music/sound create an immersive space for the audience to explore and interact with.
A more extended program is available via the Exploded Ensemble site.
]]>If you have not yet sent me scans or photos of your ideation drawings, please do so today.
Today:
Pages we will reference:
Code resources we will discuss:
]]>Today we will discuss theory and practice of programming dynamic systems to use as playable instruments, followed by individual project meetings.
Pages we will reference:
Code resources we will discuss:
]]>For this sixth assignment, we are preparing the first stage of developing the final performance. It will serve as a project proposal, a proof-of-concept test, and an exploration into incorporating music with motion.
Performance Context
We will perform our final show on May 4 in the Kresge Theater in CFA in conjunction with the Exploded Ensemble. Our aim is that the visual composition of the fabric pieces work in a dialogue with the music, neither existing as visual rendition of the music (e.g. ‘music video’) or the music as a voicing of the visuals (e.g. ‘soundtrack’).
We will also be scaling up our technical hardware from the lab to a stage setting, including lighting and possibly fans. We will have limited access to the Kresge stage on the day of the performance, so we anticipate using a portable set of rigging based on C-stands. There is some potential for using the box seats in Kresge in addition to the stage. For now, we encourage you to think more broadly about using a large space, allowing for more motor channels, and using digitally-controlled stage uplighting.
Proposal
As a proposal, we would like you to consider the complete course of the project over seven weeks leading to a live performance. The course calendar has a rough breakdown showing how we envision using this time: three weeks of iterative development and testing prior to Carnival, followed by three weeks of technical and creative rehearsal. Our aim is that each project be completely prototyped and moving by April 9 so the final weeks can focus on choreography, improvisation practice, and minor technical revisions.
The main elements of the proposal itself are as follows:
Proof of Concept
For this assignment, we would also like to choose a physical element to rapidly prototype and animate which will help resolve some element of the plan. Our goal is for you to identify the area of greatest uncertainty and develop a first test to prove the concept. Some possible approaches are making an experiment toward working out an unknown technique, creating one prototype for a series of multiples, or testing a visual textile effect.
The Exploded Ensemble has both improvisatory and scored performance styles, and so it would be best if we explored both. For now, the closest proxy we have is to improvise or score against the ensemble’s previously recorded tracks. As a proof-of-concept test, we would like you to choose an excerpt from a 2018 performance and create choreography which works in coordination with it (without necessarily articulating it). Given the generally ambient character of this performance, this likely means creating movements with a pacing and tone that either coordinates, contrasts or complements what we hear.
As before, please begin by manually puppeting the fabric pieces to explore movement ideas, working with your selected musical excerpt. You are encouraged but not required to rig and automate the movement. Please carefully document your performance on video. Please make sure the musical soundtrack is audible, we recommend overdubbing the audio track with a time-aligned clean sound file.
Resources
Music excerpts are available on Google Drive in Audio Samples.
Deliverables
To be uploaded as a post to the course blog:
For this fifth assignment, we are going to consider not only the fabric structure and rigging, but the software which provides the affordances for animation. Our expectation is that fully realizing the kinetic potential of the fabric and rigging will require customizing the human interface and automation. In this way we hope you can create a kinetic instrument a human can both perform and choreograph.
The assignment will also be performed in assigned pairings. We would like each member of the pair to make their own fabric structure, then compose them into a single animated scene in which the movement considers the relation between the pieces. You are welcome to use the samples we pleated together in class as your fabric pieces or to create new fabric samples on your own.
The emphasis is on the possibilities of pleating, but all previous techniques (boning, cordage, shirring, etc.) are also available.
As before, please begin by manually puppeting the fabric pieces to explore movement ideas. Then carefully consider both a rigging design and the kinds of motor movements which will activate it. Using the software simulator, create a customized input mapping to enable your choreography. After the choreography has evolved, please move to the capstan bench and create an automated version. Please carefully document the resulting performance.
Please document your discoveries and points of interest.
Interface Inspirations
Here are a couple of ideas for performance interface improvements to stimulate your thinking:
Resources
Sample code is now available incorporating both the hardware interface and the simulator, please download exercise5.zip. The course software is documented under Software Resources.
Assignment Specifics
For this exercise, please:
Deliverables
To be uploaded as a post to the course blog:
We will review your posts prior to class and select one or more to discuss at the start of our next class.
When you go to run the hardware, the exercise 1 lab notes will help.
The following code sample was included by inserting a block of type “SyntaxHighlighter Code”, selecting Python from the Code Language combo box under Settings on the right panel, then inserting the plain text of the code using cut and paste. It is important that indentation and original line lengths be preserved for legibility.
class ControlLogic(kf.midi.MIDIProcessor): """Core performance logic for processing MIDI input into winch commands.""" def __init__(self): super(ControlLogic,self).__init__() self.winches = None self.display = None self.frequency = 1.0 self.damping_ratio = 1.0 self.winch_dir = [0,0,0,0] # array to keep track of currently moving winches for aftertouch control return def connect_winches(self, winches): """Attach a winch output device to the performance logic, either physical or simulated.""" self.winches = winches def connect_display(self, display): """Attach a console status output device to the performance logic.""" self.display = display #---- methods to process MIDI messages ------------------------------------- def note_on(self, channel, key, velocity): """Process a MIDI Note On event.""" log.debug("ControlLogic received note on: %d, %d", key, velocity) row, col, bank = self.decode_mpd218_key(key) # Each column maps to a specific winch. # Rows 0 and 1 move forward, rows 2 and 3 move backward. # The middle rows make small motions, the outer rows make larger motions. delta = 5 * velocity if row <= 1 else -5 * velocity if row == 0 or row == 3: delta = delta * 8 self.winches.increment_target(col, delta) self.winch_dir[col] = 1 if delta > 0 else -1 if delta < 0 else 0 return def note_off(self, channel, key, velocity): """Process a MIDI Note Off event.""" log.debug("ControlLogic received note off: %d, %d", key, velocity) row, col, bank = self.decode_mpd218_key(key) self.winch_dir[col] = 0 self.winches.set_velocity(col, 0) def control_change(self, channel, cc, value): """Process a MIDI Control Change event.""" if cc == 3: # Knob #1 on MPD218, use to control resonant frequency self.frequency = 0.05 + 0.1 * value elif cc == 9: # Knob #2 on on MPD218, use to control damping ratio self.damping_ratio = 0.05 + 0.01 * value self.winches.set_freq_damping(self.frequency, self.damping_ratio) self.display.set_status("Frequency: %f, damping ratio: %f" % (self.frequency, self.damping_ratio)) def channel_pressure(self, channel, pressure): """Process a MIDI Channel Pressure event.""" log.info("aftertouch: %d", pressure) velocities = [direction * 10 * pressure for direction in self.winch_dir] self.winches.set_velocities(velocities)]]>
Textiles are constantly in motion all around us, from clothing to flags to sails. But the central question of this course is how to create expressive movements in a textile piece using automation, that is, with deliberate intent but without direct human interaction.
For this exercise, we would like to help you develop your understanding of the possibilities and difficulties of this problem by using a capstan winch system to puppet a single piece of cloth to perform an expressive movement.
We would like you to restrict yourself to a single square or rectangle suspended from two, three, or four lines. We will provide a four-motor capstan winch together with software to ease creating an actuated motion.
As a first step, we strongly recommend attaching short lines to your fabric and practicing manual puppetry to explore the possible motions. The central challenge is limiting your hand movements to linear spaces analogous to the capabilities of the motors. The fabric, though, can respond to the linear movements with complex folds and waves. Even simple line movements combined with air will activate the fabric. As starting points, we suggest exploring these prompts:
After identifying a movement of interest, practice hand-puppetry to refine a brief performance and capture video documentation.
Then come to the lab outside of class time and explore creating a similar motion via the interactive winch interface. Note that your hands are capable of considerably more subtle motion than the motors; you may need to adapt your concept as needed. The motors, however, will never get tired.
Clarification: please also shoot video of the motor-driven motions. When in doubt, shoot early, shoot often, document both final results and any illuminating milestones along the way.
To be uploaded as a post to the course blog:
We will review your posts prior to class and select one or more to discuss at the start of our next class.
When you go to run the hardware, the exercise 1 lab notes will help.
]]>the event of a thread – Ann Hamilton
Kinetic Fabrics brings together the fields of robotics and textiles to explore their unified creative and expressive potential. It is a wide-open frontier for kinetic art, wearable art, and architectural installation. In this course students will build a variety of performative systems combining fabrics and robotic technologies.
]]>