Tuesday, October 21, 2014

Project 3 - Chaos

Final Update

Description
For my Chaos Project, I wanted to use a series of webcams pointed at the HVS screen to create a video feedback loop. Along with some video filters and manipulations, the final result was more chaotic (fractals) than complex.

Equipment Used
  • 5 x Logitech HD C270 Webcams
  • 1 x Insignia 7-port USB Hub
  • 1 x 30ft USB Cable


Method
I used a Logitech C270 HD Webcam  pointed at the HVS screen to create a video feedback loop, and then created some Warhol-esque filters and video manipulations to add visual interest to the feedback. The video feedback was split into 15 separate videos (one for each screen) for the HVS.

Complications
My original plan involved using 1 webcam pointed at the HVS screen (15 screens in a 5x3 arrangement) to create feedback. The speed of the display ended up being very slow since 1 core was trying to throw the webcam feed up to all 15 screens. So I thought I would split the task into 5 separate processing sketches, with each sketch handling 3 screens. I chose 3 screens per sketch because that is the point before the display frames per seconds started to drop drastically.

Unfortunately, processing can not split 1 webcam's feed across multiple different sketches, so I went out and bought 4 more webcams and a 7 port USB hub. My thinking then was that I could devote 1 webcam to each sketch (5 total). Well, this is when another problem arose; all of the webcams had the same name... "Logitech HD Webcam C270". So I could not tell each sketch to use a different webcam since they all had the same name. Fortunately Processing puts cameras in a list so that they are easily accessible. Unfortunately, there is a current bug with capture lists, and my list contained 422 cameras, not 5 like it should have, so I couldn't easily access my cameras individually.

In the end, I presented 1 camera rendering on all 15 screens, and while it was slow it made for very interesting visuals.

Presentation
If my work was exhibited in a gallery with the same 5x3 screen arrangement, I would have a table in front of the screen, about 5-7 feet away with the 5-webcam arrangement pointing at the screens. They would be by themselves, enticing the viewers to come and pick up the cameras and play with them. There would also be some buttons that people could press to increase/decrease color values, saturation, and posterization levels.

Results
Videos Coming Soon


Conclusion
Thanks to this project I learned that there are actually two different kinds of video feedback. The route I pursued is more fractal-like in nature, and creates images with-in images within images, almost like a Droste effect (Droste Example). Phil pointed out that there's also a type of feedback where each subsequent frame is amplified, causing these weird noise artifacts that dance and swim around (see 2nd image above).

-------------------------------------------------------------------------------------------------------------------

Update 1

Right now I am learning processing, reading tutorials and books. Currently I do not have a plan for the Chaos project.

Some links I'm following:

Useful Processing API link:

Final Project Ideas

Idea #1

I want to use wind speeds and directions from a city to create a pollock-like painting for each season of the year, spring, summer, fall, and winter. This will involve using the data to spray particles onto a canvas, each particle will have a color random color in the range of the color I choose for the season. For instance, spring colors would be range from a Dark green to a light yellow. Summer could be a lot of bright blues and light yellows bordering on white.


Idea #2

I want to create a series of pieces that are generated to resemble micro-organisms. All of the projects I have done so far have been at the macro level, so I think it'd be fun to make something that looks micro but is made through a generative process.




Monday, October 20, 2014

Generative Artists

Diana Lange (Processing, geometric forms and lines):
http://www.openprocessing.org/user/5969
https://www.flickr.com/photos/dianalange/

James Connolly (Real-Time visuals with old CRTs):
http://www.jameshconnolly.com/
http://butdoesitfloat.com/A-Niagara-of-alien-beauty

Christian Zander (Generative landscapes, fractals, mainly deals with album covers, art covers etc.):
http://blog.houseandbike.com/
http://work.emperorofantarctica.com/

Really cool CGI fractals:

Tuesday, October 14, 2014

Project 2 - L-Systems

Description
For my L-System project I wanted to use real world lightning data from various cities around the world, to try and re-create lightning. Using L-Systems, Houdini and the data provided to me by the Weather Channel, I set off to accomplish this task!

Method
For this project I was able to receive data from the Weather Channel's national and global archives. The cities chosen were:
  • Anchorage, Alaska, USA - 100 miles - 2012 to 2013
  • Bogota, Colombia - 100 miles - 2013
  • Death Valley, California, USA - 100 miles - 2013
  • Houston, Texas, USA - 100 miles - 2013
  • Kuala Lumpur, Malaysia - 100 miles - 2013
  • Munich, Germany - 100 miles - 2013

 The data contained: 
  • date and time
  • length in time of the lightning strike
  • lat/long coordinates
  • polarity of the lightning strike
  • amplitude of the lightning strike
  1. I began by narrowing my data down to 100 lightning strikes per city, chosen at random (some cities had up to 200,000 in one month!). Lightning chosen was based on the months with the most activity for each city.
  2. I then began creating a base L-System that would get me close to the look and feel of a lightning strike.
  3. Next I brought in the lat/long coordinates of lightning data for each city and mapped an L-system to each point.
  4. I then used the length in time of the each lightning strike to dynamically control the number of generations each lightning strike would have. Quick lightning strikes would have fewer generations compared to longer lightning strikes.
  5. Next I used the polarity of each lightning strike to control whether the lightning strike was more of a large individual bolt, versus a more webby/spread out lightning bolt.
  6. Next, I used the Amplitude as well as the Polarity to control 3 different branching angle variables to determine branching at various stages in my L-System construction (implemented in Rules 1, 2, and 3).
  7. Finally, I used the length in time again to control the thickness of the lightning strike branches. You'll notice that individual bolts(faster strikes) are fatter than the larger, more webby strikes, where the branches taper off to a smaller radius.
Presentation
I imagine these images as being printed out on 18x24 paper and presented with a small card detailing the City used, radius sampled around the city, and year the data was taken from.

Results
Cities presented in alphabetical order. Anchorage, Bogota, Death Valley, Houston, Kuala Lumpur, Munich.

Process Images

Below, actual lightning strike points and L-systems are shown for each city. The L-Systems are 3D.

Anchorage

Bogota

Death Valley

Houston

Kuala Lumpur

Munich

This final image here just blows my mind. This is the lat/long lightning data for Houston in May of 2013. 207,163 lightning strikes in one month! The next highest city was Bogota in October at 66,000 strikes.

Tuesday, September 16, 2014

Project 1 - Chance


Description
For my chance project, I used the inherent variations found among music to create art based on the randomness of creation. No two pieces of music are exactly alike, and this is reflected in my generative art piece.

Method
  1. For each piece of music chosen, I extrapolated 5 variables - the songs' BPM and 4 ranges of frequency. 
  2. Each of the 4 frequency variables were normalized and then ran through a random number generator, whose range was fitted from (0-1), to the new normalized range of each frequency. This introduced additional variation in the production of the art.
  3. The Low Frequency Range, 25-124hz, was used to generate the bend in each curve.
  4. The Low-Mid Freq. Range, 125hz-1000hz, was used to generate the polarity of each curve.
  5. The High-Mid Freq. Range, 1001hz - 8000hz, was used to generate twist around the Y axis.
  6. The High Freq. Range, 8001hz +, was used to control a multiplier on the twist that gave the twist variations.
  7. The BPM was used to control the density of the art piece. Songs with higher BPM are far more dense than songs that have a lower BPM.



Reference
Reference for common grouping of frequency ranges.



Final Results
For my final piece, I ran 7 songs through my tool made in Houdini, and rendered out a side view and a top view for each. Each clip is ~30 seconds long. My main work with this art piece has been through animation, not still images. As such, I'm currently rendering out a 3.5 minute long sequence of all of these songs being cut together and run through my wire generator. Screenshots from the final animation can be seen at the bottom.


Video
This video shows a glimpse into what the final product will look like when rendering completes.

Thursday, September 11, 2014

Preliminary Tests

Audio Driven Animation

http://vimeo.com/54073054

http://vimeo.com/66031207