Archive for May, 2006
Cstem-PDF-Sketch-03

Cstem-PDF-Sketch-03, originally uploaded by watz.

I am testing blogging pictures from Flickr.

This is a closeup of 3D shapes rendered as PDF with the new beginRaw() function in Processing. The results are amazing. Have a look at these for reference: 1, 2, 3, 4.

The upshot of this new function is that one can now output complex 3D geometry complete with transparency, and get practically identical images in PDF and OpenGL. I predict that a deluge of Processing print pieces will follow… I’ll post some sample code for this functionality in the next few days, it’s not so well documented yet, as it’s fresh out of Ben’s dungeon.

1 Comment »

Back from OFFF Festival. Just saw that Regine from We make money not art has interviewed Jose Luis de Vicente. Jose Luis is the Spanish media art curator largely responsible for making the Extend workshop happen, as well as establishing such a heavy Processing presence at OFFF this year. Have a read.

Code-related links:

No Comments »

Today is the last day of the workshop. Zach spoke about the role of the question mark in art. Don’t just ask “how”, but also “why”. I spoke about code-related blog resources, and presented VVVV and visual programming as an alternative to text-based programming environments.

VVVV is a tool created by the German media design group Meso, and is an excellent tool for VJ’ing and other visually oriented tasks. Because it is a patching system, it lends itself to spontaneous hacking, and even live coding (see Toplap).

Finally we had demos of what people have been working on over the course of the workshop. Some very nice projects were presented, hopefully we will be able to publish some results of the workshop online.

No Comments »

Zach talked about openFrameworks, a C++ library he’s been working on with his students. It supports standard frameworks like OpenGL, Quicktime, Fmod, Freetype etc. The focus is somewhat similar to Processing, aiming to simplify standard coding tasks in a modular, reusable way.

Ben talked about self-organizing visualizations of dynamic datasets.

  • Links: Anemone, Valence, Isometric haplotype blocks
  • Growth and atrophy models used to control behavior.
  • Different models of visualizing haplotype blocks. Contrast behind numerical and visual representations. Ben’s Isometric haplotype blocks combines multiple standard notations in the same visualization, with simple ways of transitioning between them.
  • Using integrators to dynamically change values, so that one can see changes in value.
  • Controlling the axis data is shown on in order to dynamically respond to areas of interest. Zooming, panning of axis scope (again using integrators for dynamic change.)
  • More dynamic qualities: Color, transparency, rotation and translation in 3D space.
  • By using combinations of these qualities intelligently one can produce seemingly very different visualizations of the same data set.
  • Genome browser. Using levels of detail to enable browsing of genetic code at multiple scales, from large blocks to individual characters of genetic code.

David Cuartielles is our guest star of the day, and spoke about his work with the Arduino hardware interface board project. He also showed some real-world examples of using Arduino to get input from sensors.

  • Arduino.cc
  • Arduino is really the name of the cafe where Ivrea students would go for aperitivos
  • Used for robotics, physical computing, sensors etc. Interfaces with many environments: Flash, Processing, Max/MSP etc.
  • The Arduino interface is blue, because Tom Igoe was using both Wiring, Arduino and Processing and constantly got confused because the interfaces all used the same color. So Arduino is blue so that it won’t be confused with Processing.
  • Pictures of robot built with Arduino, created by Fallen
  • Arduino playground: Processing, user-contributed information about integrating Arduino with Processing.
  • InstanSoup, physical computing hacks.

No Comments »

  • Genotyp, great Flash project by Michael Schmitz doing genetic recombination of fonts. It was his final project for the Universität der Künste, and so is nicely didactic.
  • Quasimonda aka Mario Klingemann has some nice Processing code over on incubator.quasimondo.com. In particular, his fast blur examples (1, 2, 3 are useful. There is also some great Flash code.
  • Also by Mario Klingemann - slides from a lecture for FITC called "Welcome to the club - making a VJ tool in Flash". He proposes using Processing for MIDI input and sound analysis, sending values to Flash using Javascript.

No Comments »

  • Just noticed that Tom Carden has added this to the Processing Blogs aggregated feed. I can only hope it will be worth the aggregation.
  • The OFFF festival opens today, read about the exhibition here (official link here). Thanks to the OFFF crew, Hangar and not least Jose Luis de Vicente for bringing all of us to Barcelona both for the festival and the current workshop.
  • More workshop pictures are up on Flickr.
  • This blog was linked on resarch, a blog about architecture, design and research by Brett Steele, director of the Architectural Association in London.. I wasn’t aware of that blog before, some very interesting information over there.
  • There is a new site called builtwithprocessing.com, built by the indefatigable Florian Jenett.

1 Comment »

Links from day 3 of the Extend workshop at OFFF in Barcelona:

No Comments »

Update: SoniaHelper should be renamed FFTHelper and integrated into unlekkerLib, but that hasn’t happened yet. The best way to use it right now is to download the code examples from the VJ workshop I did at Cimatics 2007. That has the code you need as well as some examples of practical usage.

I’ve put together a hack for normalizing the FFT analysis values produced by Sonia’s LiveInput.getSpectrum(). It looks at the maximum values produced, and scales them according to the most recent maximum values. That way, quiet sections will produce relative differences according to the current maximum value, so that both quiet and loud sections give dynamic results.

It also allows you to dampen the values so that the rate of change in values can be controlled. This can be used to make the values change appropriately according to the quality of the music, making it easier to use them for visuals that match the music.

Source code

You initialize SoniaHelper like this:

  // SoniaHelper(int _n, int _nbands,boolean doAvg)
  // Start up Sonia
  LiveInput.start(spectrumLength);

  // ...or start up Ess
  Ess.start(this);
   myChannel=new Channel("hello.aiff");
  myChannel.setupFFT(512);

  // init SoniaHelper
  ffthelper=new SoniaHelper(spectrumLength,32,false);
  ffthelper.setMaxLimits(200,2000);
  damperval=0.1f;
  ffthelper.setDamper(damperval); 

Update SoniaHelper inside draw() by passing spectral values from Sonia or Ess:

void draw() {
  ...
  LiveInput.getSpectrum();
  ffthelper.update(LiveInput.spectrum); 

// Ess equivalent
  myChannel.loadSpectrum();
  ffthelper.update(myChannel.spectrum);

  for(int i=0; i< spectrumLength; i++)
	ellipse(i,height/2,
		100*ffthelper.spectrum[i], 100*ffthelper.spectrum[i]);
  ...
}

See the sample code in the ZIP file for more code examples.

Downloads

9 Comments »

Some links for today:

No Comments »

Some unordered links from the workshop participant presentations:

1 Comment »