Garth Zeglin – 16-376 Spring 2019 https://courses.ideate.cmu.edu/16-376/s2019 Kinetic Fabrics Tue, 14 May 2019 03:12:33 +0000 en-US hourly 1 https://wordpress.org/?v=5.1.18 Pushing Air https://courses.ideate.cmu.edu/16-376/s2019/2017/pushing-air/ Thu, 02 May 2019 19:46:47 +0000 https://courses.ideate.cmu.edu/16-376/s2019/?p=2017 Kinetic Fabrics, Inflatables and Soft Sculpture, and Exploded Ensemble

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.

]]>
Class 16: Rapid Performance Prototyping https://courses.ideate.cmu.edu/16-376/s2019/1991/class-16/ https://courses.ideate.cmu.edu/16-376/s2019/1991/class-16/#respond Thu, 07 Mar 2019 14:05:29 +0000 https://courses.ideate.cmu.edu/16-376/s2019/?p=1991
Rapidly prototyped fabric performance recorded during class. Performed to recorded music which was not captured by the camera, so a similar selection was overdubbed.

If you have not yet sent me scans or photos of your ideation drawings, please do so today.

Today:

  1. Quick TouchOSC demo.
  2. Quick explanation of DMX.
  3. Quick explanation of goals of the day.  
  4. We need leaders for:
    1. mechanism/motors
    2. fabric/rigging
    3. lighting
    4. automation/programming

Pages we will reference:

Code resources we will discuss:

]]>
https://courses.ideate.cmu.edu/16-376/s2019/1991/class-16/feed/ 0
Class 15: Programming Demos https://courses.ideate.cmu.edu/16-376/s2019/1903/class-14-sharing-ideas-creating-teams-2/ https://courses.ideate.cmu.edu/16-376/s2019/1903/class-14-sharing-ideas-creating-teams-2/#respond Mon, 04 Mar 2019 21:25:37 +0000 https://courses.ideate.cmu.edu/16-376/s2019/?p=1903 If you have not yet sent me scans or photos of your ideation drawings, please do so today.

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:

]]>
https://courses.ideate.cmu.edu/16-376/s2019/1903/class-14-sharing-ideas-creating-teams-2/feed/ 0
Assignment 6: Proposal and Proof of Concept https://courses.ideate.cmu.edu/16-376/s2019/1830/assignment-6/ https://courses.ideate.cmu.edu/16-376/s2019/1830/assignment-6/#respond Thu, 28 Feb 2019 14:57:51 +0000 https://courses.ideate.cmu.edu/16-376/s2019/?p=1830 Due: Wed, Mar. 6, 11:59PM.

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:

  1. Storyboard drawing showing the overall visual concept and movement narrative.
  2. Detailed sketches highlighting the proposed textile structures and techniques.
  3. A paragraph of text describing the performance concept.
  4. A brief discussion of any specific roles assumed by individuals within the group.
  5. A listing of specific milestones. We will be looking to see identifiable progress each week. Please carefully consider the ordering so that the greatest uncertainties are resolved early.
  6. An estimated “Bill of Materials” listing expected material usage and any special materials or parts to be acquired. We would prefer you work from our textile supply as much wherever possible, but there may be accessories you need.

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:

  1. Each element described under proposal: storyboard images, textile sketches, concept text, milestone list, bill of materials.
  2. A brief paragraph outlining your proof-of-concept explorations: intended effect, surprises, discoveries, successes.
  3. Any modified code samples, posted using syntax highlighting.
  4. Rigging drawings needed.
  5. Short video clip (no more than a minute) of proof of concept portion. Please shoot from a stable camera, not handheld; we have tripods and Magic Arms available at Lending, or you may use a laptop resting on a table. Please embed the video so it can be directly viewed; you may either upload an MP4 file to our server (up to 16 MB) or use supported third-party hosting. N.B. hosted .mov files cannot be embedded; please convert to MP4.

]]>
https://courses.ideate.cmu.edu/16-376/s2019/1830/assignment-6/feed/ 0
Assignment 5: Pleated Instrument https://courses.ideate.cmu.edu/16-376/s2019/1813/assignment-5/ https://courses.ideate.cmu.edu/16-376/s2019/1813/assignment-5/#respond Thu, 21 Feb 2019 14:16:33 +0000 https://courses.ideate.cmu.edu/16-376/s2019/?p=1813 Due: Mon, Feb. 25, 11:59PM.

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:

  1. Map particular pads to parameter presets, e.g., one that configures the motors for slow, smooth motion, and one for fast oscillations.
  2. Map a pad to randomize the parameters.
  3. Map one or more pads to produce coordinated motions, e.g. simultaneous move multiple motors in some fixed ratio.
  4. Map a pad to start playing back a fixed sequence of motion commands over time.
  5. Map knobs to set the frequency and damping for individual motors rather than just the whole ensemble.
  6. Map a pad to trigger a rhythmic sequence of motions that ‘pumps’ the oscillatory motion, along with a knob to adjust the pumping frequency and a knob to adjust the oscillator resonant frequency.
  7. Add an algorithmic pattern generator to produce movement patterns, then map knobs and pads to adjust the algorithm parameters and trigger modes.

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:

  1. create a fabric sample using pleating techniques
  2. create two, three or four tendon attachment points for actuation
  3. experiment to find movement points of interest
  4. record a short (no more than a minute) demo video of the effect of the movement (s) using the capstan bench
  5. post a short blog entry with the video and a paragraph or two explaining your explorations.
  6. new this time: please include a drawing of your rigging design.
  7. new this time: please post your modified code. You must use the correct syntax highlighting so it is legible, please see below. Please omit as much of the standard code as is reasonable, e.g., if you modify the ControlLogic class, please just include the full definition for the class but leave out the GUI and MainApp classes.

Deliverables

To be uploaded as a post to the course blog:

  1. A brief paragraph outlining your explorations: intended effect, surprises, discoveries, successes.
  2. Modified code samples, posted using syntax highlighting (see example below).
  3. Rigging drawing.
  4. Short video clip (no more than a minute). Please shoot from a stable camera, not handheld; we have tripods and Magic Arms available at Lending, or you may use a laptop resting on a table. Please embed the video so it can be directly viewed; you may either upload an MP4 file to our server (up to 16 MB) or use supported third-party hosting. N.B. hosted .mov files cannot be embedded; please convert to MP4.

We will review your posts prior to class and select one or more to discuss at the start of our next class.

Grading rubric.

When you go to run the hardware, the exercise 1 lab notes will help.

Syntax Highlighting Example

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)

]]>
https://courses.ideate.cmu.edu/16-376/s2019/1813/assignment-5/feed/ 0
Class 12: Interface Programming https://courses.ideate.cmu.edu/16-376/s2019/1802/class-12-programming/ https://courses.ideate.cmu.edu/16-376/s2019/1802/class-12-programming/#respond Thu, 21 Feb 2019 00:53:20 +0000 https://courses.ideate.cmu.edu/16-376/s2019/?p=1802 Thu, Feb 21.

Reference Links


Discussion

Code Walk

In-Class Challenge

  1. Assign pairings for challenge and assignment 5
  2. Main challenge:
    1. Design a variation on the input mapping using at least one parametric and two event inputs. For now, stick to no more than six parameter knobs and 16 pad inputs.
    2. Implement it by modifying the sim1.ControlLogic class.
    3. Test it with one of the physical MPD218 controllers.
  3. Optional challenge: develop a new continuous-motion strategy and implement it by modifying the kf.path.Path class.
]]>
https://courses.ideate.cmu.edu/16-376/s2019/1802/class-12-programming/feed/ 0
Class 8: Intro to MIDI, OSC, and Live https://courses.ideate.cmu.edu/16-376/s2019/1693/class-5-cords-channels-boning-2/ https://courses.ideate.cmu.edu/16-376/s2019/1693/class-5-cords-channels-boning-2/#respond Wed, 06 Feb 2019 23:34:11 +0000 https://courses.ideate.cmu.edu/16-376/s2019/?p=1693 Thu, Feb 7.

]]>
https://courses.ideate.cmu.edu/16-376/s2019/1693/class-5-cords-channels-boning-2/feed/ 0
Assignment 1: Moving Cloth https://courses.ideate.cmu.edu/16-376/s2019/1449/moving-cloth/ https://courses.ideate.cmu.edu/16-376/s2019/1449/moving-cloth/#respond Fri, 11 Jan 2019 14:39:01 +0000 https://courses.ideate.cmu.edu/16-376/s2019/?p=1449 Due: Mon, Jan. 21, 5PM.

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:

  1. slow drifting without changes of shape
  2. sailing, rippling, floating through the air
  3. collapsing or folding into a heap
  4. rhythms and patterns

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.

Deliverables

To be uploaded as a post to the course blog:

  1. A brief paragraph outlining your explorations: intended effect, surprises, discoveries, successes.
  2. Short video clip (no more than a minute). Please shoot from a stable camera, not handheld; we have tripods and Magic Arms available at Lending, or you may use a laptop resting on a table. Please embed the video so it can be directly viewed; you may either upload an MP4 file to our server or use supported third-party hosting. N.B. hosted .mov files cannot be embedded; please convert to MP4.

We will review your posts prior to class and select one or more to discuss at the start of our next class.

Grading rubric.

When you go to run the hardware, the exercise 1 lab notes will help.

]]>
https://courses.ideate.cmu.edu/16-376/s2019/1449/moving-cloth/feed/ 0
Coming Soon! https://courses.ideate.cmu.edu/16-376/s2019/1424/coming-soon/ https://courses.ideate.cmu.edu/16-376/s2019/1424/coming-soon/#respond Tue, 30 Oct 2018 14:47:51 +0000 https://courses.ideate.cmu.edu/16-376/s2019/?p=1424

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.

Syllabus

]]>
https://courses.ideate.cmu.edu/16-376/s2019/1424/coming-soon/feed/ 0