Top Banner
MAT 200C: Pattern Formation May 5, 2015 Spring 2015 Final Project Due: Tuesday, June 9, 2015. For the final project, select one of the topics from class and significantly expand upon it. You are encouraged to connect this project to any other projects you may already be working on. Possible avenues for exploration include: Alternative input modalities: How can we drive one of the programs from class using a camera, an accelerometer, or a Kinect? More interestingly, how can you modify the underlying algorithm to this new source to generate more interesting patterns? Alternative output modalities: The programs from class all produce some sort of coherent visual structures. How these be used to create structure in other forms, such as sonification and fabrication? Improved performance: Many of the programs, such as Newton fractals, can be quite slow. What methods can be used to accelerate them, so that larger resolutions are available for interaction? This type of project should take a step past straightforward micro-optimizations of existing code. Extension to 3D: All of the programs that we have written have meaningful exten- sions to 3D which we have not explored. What new structures can be generated with 3D DLA, the Mandelbulb, or a 3D Game of Life? Some of the programs we have ex- plored, such as Newton fractals, do not have immediately apparent 3D versions. How could a third dimension be incorporated? Note that these are only suggestions. I would strongly prefer that you propose something specifically tailored to your interests. 1
14

MAT 200C: Pattern Formation May 5, 2015 Due: Tuesday, June ...

Dec 28, 2021

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: MAT 200C: Pattern Formation May 5, 2015 Due: Tuesday, June ...

MAT 200C: Pattern Formation May 5, 2015Spring 2015 Final Project

Due: Tuesday, June 9, 2015.

For the final project, select one of the topics from class and significantly expand upon it. Youare encouraged to connect this project to any other projects you may already be workingon. Possible avenues for exploration include:

• Alternative input modalities: How can we drive one of the programs from classusing a camera, an accelerometer, or a Kinect? More interestingly, how can you modifythe underlying algorithm to this new source to generate more interesting patterns?

• Alternative output modalities: The programs from class all produce some sort ofcoherent visual structures. How these be used to create structure in other forms, suchas sonification and fabrication?

• Improved performance: Many of the programs, such as Newton fractals, can bequite slow. What methods can be used to accelerate them, so that larger resolutions areavailable for interaction? This type of project should take a step past straightforwardmicro-optimizations of existing code.

• Extension to 3D: All of the programs that we have written have meaningful exten-sions to 3D which we have not explored. What new structures can be generated with3D DLA, the Mandelbulb, or a 3D Game of Life? Some of the programs we have ex-plored, such as Newton fractals, do not have immediately apparent 3D versions. Howcould a third dimension be incorporated?

Note that these are only suggestions. I would strongly prefer that you propose somethingspecifically tailored to your interests.

1

Page 2: MAT 200C: Pattern Formation May 5, 2015 Due: Tuesday, June ...

Timeline

• Preliminary Proposal: Write up a proposal of your project and send it to bothmyself and Aaron by midnight on May 12th. The proposal should be at least 500words. Include a weekly timeline of how you will implement what you propose, andwhat final deliverables you propose to submit upon completion.

The proposal is the most critical part of your project. Take it seriously.Select a specific project with a well-defined goal, and plan out as many of the detailsas possible. Past experience has shown that poorly thought out proposals lead toembarrassingly simplistic results, total garbage, or no results at all. Save yourselfthe stress and embarrassment later on. Plan your project now.

• Progress Reports: During the May 19th class, everybody will give a 5 minuteoverview of their proposed project, and show a preliminary result. Be careful to tailoryour timeline so that you have something to show by then.

• Final Presentation: Everybody will give a 10 minute final presentation during thefinal exam time, 4 PM June 9th, and submit their proposed deliverables over emailby midnight on the same day. One of your deliverables will a Tumblr posting thatsummarizes or represents your results. This is due by midnight on the same day.

Grading Breakdown

• Preliminary proposal, including timeline and list of deliverables (20%)

• Progress report, including some sort of working prototype (20%)

• Final presentation (40%)

• Final deliverables (10%)

• Final Tumblr summary (10%)

2

Page 3: MAT 200C: Pattern Formation May 5, 2015 Due: Tuesday, June ...

Examples to Avoid

Please avoid making the same mistakes as these past proposals.

Example 1: I am going to show the growth of several distinct virtual specimens that aredesigned using several pattern formation algorithms, such as DLA, diffusion-reaction, noise,etc. The specimens aggregate, disperse, grow into more complex structures, or die over timebased on certain parameters of the environment. The data from several sensors such as touchsensor, photocell, microphone, etc is fed into their algorithm as parameters that determinetheir rate of growth or decline. Therefore their behavior, while under observation, is deter-mined indirectly by human interaction. Through this interaction, the spectators become apart of this synthetic bio-system.

This proposal does not actually propose anything. It says it will take some of the algo-rithms from the course and attach some inputs to them. That is a restatement of the projectparameters, not a description of an actual project. Which algorithms will be used? Whatinputs? What are you trying to produce that we have not already seen in class? Be specific.

Example 2: Today moreso than ever before, it is of the utmost importance that we humanbeings develop more holistic perspectives regarding our selves and the universe in which wedwell. This is essential in every aspect of our existence from our art, to our relationshipswith others, to the way we treat our planet. There is no singular entity separate from the rest- all is connected in a permanent web of interrelation. Every action affects everything else,and nothing goes unnoticed in the eyes of the cosmos. For my final project, I wish to portraythis truth by integrating the physical and digital realms with a combination of anatomicalmovement, visual pattern formation, and sound.

Nothing here is relevant. This is not a book report to pad out with bizarre ramblingsuntil you hit 500 words. If you find yourself coming up short, think the details of your projectthrough more thoroughly, and write those specifics down.

Example 3: The title and focus of this course is “Pattern Formation”, referring generally tovisual patterns, such as waves, diffusion-limited aggregation, fractals, and so on. Auditoryand musical patterns offer an interesting extension of this, since humans are particularlyenamored with patterns and repetition with variation in sound and music – in fact, it couldbe said that patterns are fundamental to the structure of music as we perceive and enjoy it.As someone who enjoys both listening to and creating music, and has an interest in digitalsound synthesis and composition, this is an area I would like to explore.

A visual system – such as a fractal, reaction diffusion, wave equation, or similar – presentsa number of aspects which can be used to control or influence parameters for sound synthesis.Each pixel can have a value, or a set of red, green and blue color values, the overall image canhave frequency-domain components, and systems like the Game of Life and Diffusion-LimitedAggregation can record the number of times a cell has been “walked” on.

3

Page 4: MAT 200C: Pattern Formation May 5, 2015 Due: Tuesday, June ...

Sound synthesis, accordingly, presents many parameters that can be controlled. For eachoscillator (of which a synthesizer can have, at least in theory, an arbitrarily large number,though in practice this is limited by memory and computational power), one can controlthe waveform, frequency, and amplitude. Filters, such as the low-pass Butterworth filtercommon in musical applications, can be applied to the signal, and parameters such as theircutoff frequency and resonance amount can be controlled. The audio signal can be pannedto the left or right, affected by reverb, an amplitude envelope, or similar. In conventionalsynthesizers, these parameters are generally controlled by (physical or virtual) knobs, sliders,MIDI input, et cetera.

In my project, I would allow aspects of the visual system, such as pixel values, to controlparameters of the sound synthesis system. The visual systems we have studied in this coursecan become very complex, and change significantly from moment to moment, which shouldprovide for very dynamic and unpredictable variation of sound-synthesis parameters, poten-tially leading to new and unexpected sounds and musical expressions.

There is tons of irrelevant padding in this text. Please do not tell me what the title andthe content of the course is. I assure you, I already know.

This proposal is slightly better than the previous examples, but still not specific enough.It proposes to do something sound related, presents a list of algorithms from class, and thena list of sound control parameters from another class. Plugging a bunch of things togetherand hoping the result is not random garbage is not a specific goal.

Example 4: The following is my timeline. Week 1, I will get it working. Week 2, I willexperiment with it. Week 3, I will experiment with it some more. Week 4, I will present theresults.

No, this does not count as a plan.

Examples to Follow

Yoon Chung Han’s Proposal (2012): This proposal is very specific. The high level goalis to generate a desert-like virtual world. Obviously we have not seen anything like this inclass. The goal will be specifically accomplished by using a Kinect, a sandbox, and DLA.Additionally, it will also be possible to destroy DLA aggregates using the sand, which wealso have not seen in class.

Aaron Jones’ Proposal (2013): This proposal is also very specific. Mobius transforma-tions could be used in a way that is similar to the Mandelbrot set and Newton fractals fromclass. The high level goal is to find out if they also give interesting patterns. It is fine forexperimentation to be a significant part of this proposal, as it is here.

The difference is that experimentation should not be the entire proposal. There is a bigdifference between “I propose to implement the Mobius transform and then experiment with

4

Page 5: MAT 200C: Pattern Formation May 5, 2015 Due: Tuesday, June ...

it” and “I propose to experiment with an algorithm from class. I don’t know which one. I’lldecide later.” Again, please be specific.

Alexis Crawshaw’s Proposal (2014): This proposal does a very good job of integratingconcepts from the class into existing interests, e.g. Alexis’ pre-existing project on vibro-tactiledevices. I usually need some convincing when non-trivial hardware is being introduced intothe project, but the proposal does a good job of convincing me that she already has someexperience with these devices, and will not be starting from zero.

5

Page 6: MAT 200C: Pattern Formation May 5, 2015 Due: Tuesday, June ...

MAT 200C Spring 2012 Final Project Proposal Yoon Chung Han (1st year MAT Ph.D student) Desert bloom

Using improved and modified Diffusion Limited Aggregation, my final project will be an interactive installation and artificial nature environment called Desert bloom. I was fascinated by the creation of DLA and I discovered possibility of generating algorithmic nature structures by using DLA. I would like to apply the algorithmic results as artificial nature creatures and environment, which will be virtual blooming trees/flowers in dry desert. There will be a sand box, a Kinect camera, and a mini projector in this installation. (Please see an installation plan image below) Kinect camera can measure the depth of 3D object so I will get the data of 3D surface and depth of sand in the sand box in real time. When audience plays with sand, and change the depth and shape of sand surface, the artificial creatures (trees, flowers, or unnamed creatures) will be appeared and projected at the deep lower sand hole. The creature will be bloomed at each sand hole, and it will bring unique experience to audience; they can become to God to create artificial nature environment by hands. When audience recovers the hole, the creature will be gone as the same manner in real desert; sand storms, desert devastation or human’s industry/development destroys all the creatures and end up them in death. Kinect projection mapping is necessary, and due to use of Kinect camera library, I will use Processing (http://processing.org/) as a main programming language to implement this project. Main algorithm will be DLA but I may use Newton Fractal and Reaction-Diffusion as ways of generating other various creatures. Also, DLA 3D will be possibly considered.

Page 7: MAT 200C: Pattern Formation May 5, 2015 Due: Tuesday, June ...

Fig.1. Reference images of Diffusion Limited Aggregation Time schedule May 14th – 20th: Create basic DLA and many variations in Processing, test Kinect projection mapping, and buy/borrow a sand box and mini projector May 21th – 27th: Create a prototype of Desert bloom – simple interaction with Kinect camera and DLA processing sketch May 28th – June 3rd: Develop more advanced, and detailed DLA creatures, finish Kinect projection mapping on sand box June 4th – 6th: Final test, set up all installation, and fix bugs June 7th: Final presentation

Page 8: MAT 200C: Pattern Formation May 5, 2015 Due: Tuesday, June ...

Fig.2. Desert bloom installation plan

Page 9: MAT 200C: Pattern Formation May 5, 2015 Due: Tuesday, June ...

200C Final Project Proposal

Aaron Demby Jones

May 14, 2013

In complex analysis, Mobius transformations are functions f : C → Cdefined by

f(z) =az + b

cz + d, (1)

where a, b, c, d ∈ C such that ad − bc 6= 0. Conceptually, a simple way tounderstand Mobius transformations is to consider them as the composition ofseveral basic geometric transformations: translation, dilation, rotation, andinversion. In fact, every Mobius transformation can be decomposed into somecombination of these geometric operations. It follows from the fundamnetalproperties of these simple transformations that the composition of Mobiustransformations is also a Mobius transformation. Hence, Mobius transfor-mations form a group under composition and are of interest algebraically aswell as analytically.

Since several of the concepts we have studied so far (e.g., the Mandelbrotset and Newton fractals) have involved iterating a complex quadratic poly-nomial, considering the iteration of a different type of complex function suchas a Mobius transformation may yield interesting results. However, becauseof the aforementioned compositional property, Mobius transformations havesimpler iterations than quadratics, whose composition is a more complicatedquartic. Hence, the first results may not be as exotic or interesting as theMandelbrot set and Newton fractals. Nonetheless, implementing an iterativevisualization of Mobius transformations is a convenient first step toward amore involved final project.

Anticipating that the iterated Mobius transformations will be more of astarting point than an end goal, let us review the Newton iteration procedure

1

Page 10: MAT 200C: Pattern Formation May 5, 2015 Due: Tuesday, June ...

we studied in the course to see whether it can be modified. We consideredthe iteration

zn+1 = zn −f(z)

f ′(z), (2)

but a more general procedure could be employed by considering the iteration

zn+1 = zn −a f(z)

f ′(z)+ b

c f(z)f ′(z)

+ d, (3)

which combines the concept of Newton iteration with Mobius transforma-tions. Furthermore, besides interactively controlling the zeros of the functionf(z), the user could also modulate the four complex parameters a, b, c, andd.

My weekly plan for deliverables runs as follows.May 14–21: I will implement iterated Mobius transformations and experi-ment with modulating a, b, c, and d as well as different color schemes. Thedeliverables will comprise the images and videos of my best results.May 21–28: I will implement the combined Newton and Mobius transfor-mation iteration and continue to investigate color schemes. User interactionwill be increased with the additional option of modulating the zeros of thefunction f(z). Again, the deliverables will comprise the images and videosof my best results.May 28–June 6: I will try to ‘break’ my work so far and branch out into otherapplications. One possible connection deals with two-by-two matrices—everyMobius transformation f(z) = az+b

cz+dcan be put into one-to-one correspon-

dence with an invertible matrix of the form(

a bc d

).

Hence, there may be interesting ideas related to an eigenanalysis, or possiblegeneralizations to larger matrices. Another possibility could be to expandthe class of functions from Mobius transformations to conformal mappings.Yet another idea would be to incorporate the concept of the Buddhabrotcoloring. As time permits, I will try to explore at least one of these experi-ments. Once again, the final deliverables will be a collection of images/videosdemonstrating my most interesting results.

2

Page 11: MAT 200C: Pattern Formation May 5, 2015 Due: Tuesday, June ...

Aesthetically, my goal is to explore a rich area of complex dynamics withthe hope of generating interesting or enlightening visual content. Ultimately,my research plans center around visualizing and sonifying mathematical pat-terns; thus, this project will possibly be the beginning of a more long-termproject which would incorporate audio as well.

3

Page 12: MAT 200C: Pattern Formation May 5, 2015 Due: Tuesday, June ...

FINITE DIFFERENCE SPATIALIZATION TECHNIQUES IN VIBROTACTILE MUSIC DIFFUSION

Alexis Story Crawshaw

MAT 200C, UC Santa Barbara Final Project Proposal

I propose an implementation of the heat and wave equations within the C++-

based Gamma to control the gain and spatialized movement of a given signal in multi-channel vibrotactile music diffusion. As with multi-channel audio music diffusion, varying the amount of gain across an array of vibrotactile outs may convey the illusion of a moving phantom source or “cutaneous rabbit.”1 Provided the possibility for this perceptual construct in the tactile domain, I will explore the artistic potential of using these diffusion and reaction-diffusion equations to illustrate the displacement of a given tactile signal source when spatialized across a one-dimensional trajectory on the human body.

Specifically, I will use the heat equation to control the width of a given tactile signal source— its scope across a given number of channels— mapping the visual parameter of brightness to amplitude, concentrated to one channel initially, and eventually diffused to the entire array. I will use the wave equation to control how a given tactile signal source propagates out from a given starting point along the array, out to the other channels. Time permitting, using the wave equation, I will attempt to impose “borders” of varying width that contain and reflect the waves to certain channels. From these starting points, I will experiment with different applications of the equations as well as different aesthetic modifications to the code. The product of this exploration and research will be given in the form of a demonstration of these effects within a short musical étude of about 2-3 minutes in duration, delivered to an audience (one person at a time) via wearable, 6-channel vibrotactile “sleeves.”

Figure 1: Vibrotactile Sleeves with 6-channel actuator configuration and signal flow chart.

Page 13: MAT 200C: Pattern Formation May 5, 2015 Due: Tuesday, June ...

As the sleeves device is conceived, the actuators are arranged in a circular configuration with the spatialization effects occurring across a one-dimensional line, running along the azimuth of said circle. This sleeve is currently in development with the help of the Santa Barbara company Crowson Technologies, and in the event that there would be a problem in delivering the sleeve hardware by the end of the quarter, I have in my possession a 4 to 8-channel vibrotactile board that may be used in its stead. The multi-channel spatialization for this device would also occur along a one-dimensional line: see Figure 2 below.

Figure 2: Vibrotactile Board with 8-channel actuator configuration and signal flow chart.

Given the heat equation, given as:

𝑝!,!! = ∆𝑡 ∗ 𝛼 ∗𝑝!!!,!!!! + 𝑝!!!,!!!! − 4𝑝!,!!!! + 𝑝!,!!!!!! + 𝑝!,!!!!!!

∆𝑥 ! + 𝑝!,!!!!

and the wave equation, given as:

𝐴!!! = ∆𝑡! ∗ 𝑐! ∗𝑝!!!,!!!! + 𝑝!!!,!!!! − 4𝑝!,!!!! + 𝑝!,!!!!!! + 𝑝!,!!!!!!

∆𝑥 ! + 2𝐴! − 𝐴!!!

one can modify their laplacian components to adapt these equations to a one-dimensional line as follows:

𝑝!!!,!!!! + 𝑝!!!,!!!! − 2𝑝!,!!!!

∆𝑥 !

These equations will be used in a Gamma program to control a musical signal,

using the model of the Gamma instruments/compositional templates used in the MAT 276IA and B courses, Introduction to Micro-Structural Composition and Sound Synthesis, in which I have been and am currently enrolled, respectively. Thus, I am already familiar with Gamma and in creating my own instruments and code for composition within this framework. I will equally have the support of David Adams, the course’s teaching assistant, in resolving any programming issues that may arise. Ryan

Page 14: MAT 200C: Pattern Formation May 5, 2015 Due: Tuesday, June ...

McGee has equally been assisting me with some of the code for multichannel panning in Gamma.

Although both the diffusion hardware and modality of sensory reception may be

novel from an artistic perspective, from a programming standpoint, the task at hand is comparable to spatializing an audio signal within a circular multi-channel speaker array (or with the board, a multi-channel linear array). The devices used for diffusion are tactile (linear) actuators, which, like audio speakers, can transduce an electrical waveform signal into motion. This motion — instead of displacing a membrane coupled to the air, as with audio speakers— is displacing a surface that, when pressure is applied to both sides, can produce vibration through the solid to which it is coupled. When coupled to the human body, this waveform signal is perceived as touch through the skin’s mechanoreceptors, specifically as vibrotactility. As such, concerning the vibrotactile “sleeves,” six small actuators are strapped onto points along the arms, the actuators pressed against the skin with straps applying an outside force. Regarding the vibrotactile board, eight larger actuators are sandwiched between the ground and a wooden board. The subject may then lie down on top of the board to feel the actuators along the length of his or her body.

I already have experience employing multiple vibrotactile diffusion devices at a time in various live performances, such as Sur le Chemin…(Université Paris 8, Ecole Normale Superieure, and La Maison du Portugal: Paris; April-May 2013), Des Gestes Touchants (UCSB Music Bowl, April 2014), and La Perception Transamplithéâtrale (transLAB, April 2014). Although the signal going to these devices were all mono, the issue of multichannel diffusion— as I mentioned above— is no different than with using the ever more common audio speakers. I will have access to a sound card and amplifiers with the necessary number of signal outputs to enable this. In conclusion, I hope to offer an original application of these equations in the emerging art form of vibrotactile music and explore what aspects of these equations can contribute to aesthetically salient corporal spatialization techniques within this developing domain. TIMELINE: Week of May 12 th: Resolving multichannel diffusion issues in Gamma, writing necessary header panner files, figuring out where in the architecture of the code to best run the equations, initial experimentation, testing out hardware, buying/acquiring necessary cables and equipment Week of May 19th: Refining implementation of equations, implementing “borders” in the wave equation, refining the strapping mechanisms for the hardware and resolving other hardware issues that may arise Week of May 26th: Exploration of effects, experimentation, composition of the étude. Week of June 2nd: Continued refinement of effects and of composition.                                                                                                                1 E. Gunther, “Skinscape: A tool for composition in the tactile modality,” Masters’ Thesis, Massachusetts Institute of Technology, 2001.