loading

Archive for April, 2006

thinking on digital tools

Another online pixeleditor

http://www.owimahn.de/interaktives/guestbook/guestbook.html

To draw click here: http://www.owimahn.de/interaktives/guestbook/editor.html

020200 - analog digital design

Another onlinepixeleditor

http://www.owimahn.de/interaktives/guestbook/guestbook.html

To draw click here: http://www.owimahn.de/interaktives/guestbook/editor.html

Daniel

Ants

My “safe for space travel” blue ant farm is alive and kicking only sadly, I’m still waiting for actual crawly ants to arrive in the mail. But the software is ready: a Processing app saves an image of the ants every 5 seconds (which i hope to dump in some uber ant farm timelapse video) as well as uploads the live image to a web server every 30 seconds.

next step: real-time ant motion tracking?

live ant farm (with no ants, yawn) image

Daniel

Harlem Children’s Zone

Michael Schneider, Chris Ault, and I are installing some interactive works in a new health clinic at the Harlem Children’s Zone which is set to open next week.

blog.blprnt.com - Processing

CyperPipe Ljubljana

Having toted my laptop along with me to 4 countries in the last 3 weeks, it is always nice to find somewhere where I can connect and actually put this 7lbs of cargo to good use.

The best place I've ound so far was in Ljubljana. Taking up the basement of the Student center, cyberpipe is a true digital oasis. Free wireless, free terminal access, friendly people, tasty snacks… and a computer museum! According to the people that I talked to, the space also hosts performances and exhibitions of computer-related art and music. Beautiful.

Check out their great website (www.kiberpipa.org), and if you are in Ljubljana, drop in and get connected. 

Mike

Stigmergy

A lamppost covered in about 150 CD packaging stickers, outside the Best Buy location in Fairview Heights, Illinois. A wide variety of musical genres and time periods were present, and no other post in the lot had a CD…

Stigmergy

A lamppost covered in about 150 CD packaging stickers, outside the Best Buy location in Fairview Heights, Illinois. A wide variety of musical genres and time periods were present, and no other post in the lot had a CD sticker.

Stigmergy is a method of communication in emergent systems in which the individual parts of the system communicate with one another by modifying their local environment. […] ‘Stimulation of workers by the performance they have achieved.’”

I remember a ride at Six Flags when I was a kid that started with a boat going into a cave. Where the ceiling dropped into reach, there was a huge neon splotch where countless bits of chewing gum had been stuck together. One solid plate of gum, beginning with a single piece and accelerating outward.

toxi

JMF based video capture (teaser post)

I’ve got an imminent deadline for a prototype of my 1st serious camera tracking project and I just can’t seem get QT4Java to play nicely (make that “consistently”) on my dev machine. Sometimes it works. More than often it does not…

Yesterday I wasted almost a full day with (un/re)installing various versions of QT and WinVDIG, reading and hacking - then decided to throw in the towel and try my luck with the Java Media Framework to get a camera feed into my app…

Another 12 hours later, after wading through Sun’s JMF docs and various failed experiments, writing and merging little demos scavenged from across the web, I’ve got it working: Me waving back at myself in B&W on screen as JMF captured (and processable) video with Processing.

Disclaimers (and hence the “teaser” subtitle):

  • So far only working under Eclipse
  • JMF only exists for Windows and Linux (no OSX, sorry Robert!)

I’ve done some preliminary speed tests with a 640×480 window size and my Philips ToUCam Pro capturing at 320×240 @ 15fps:

P2D (default renderer) 44fps average
P3D 52fps average
(*both fps counts over 1 minute) - I’m not sure if/how much this is faster than the default QT4Java solution…

Next steps are obviously to wrap this up in a library, but this probably won’t be anytime until end of May since I want to do it properly. I might publish the existing code earlier, but it’s currently using an Java interface mechanism for callbacks and so will only work outside the P5 IDE (e.g. in Eclipse)… watch this space!

JMF based video capture (teaser post)

I’ve got an imminent deadline for a prototype of my 1st serious camera tracking project and I just can’t seem get QT4Java to play nicely (make that “consistently”) on my dev machine. Sometimes it works. More than often it does not…

Yesterday I wasted almost a full day with (un/re)installing various versions of QT and WinVDIG, reading and hacking - then decided to throw in the towel and try my luck with the Java Media Framework to get a camera feed into my app…

Another 12 hours later, after wading through Sun’s JMF docs and various failed experiments, writing and merging little demos scavenged from across the web, I’ve got it working: Me waving back at myself in B&W on screen as JMF captured (and processable) video with Processing.

Disclaimers (and hence the “teaser” subtitle):

  • So far only working under Eclipse
  • JMF only exists for Windows and Linux (no OSX, sorry Robert!)

I’ve done some preliminary speed tests with a 640×480 window size and my Philips ToUCam Pro capturing at 320×240 @ 15fps:

P2D (default renderer) 44fps average
P3D 52fps average
(*both fps counts over 1 minute) - I’m not sure if/how much this is faster than the default QT4Java solution…

Next steps are obviously to wrap this up in a library, but this probably won’t be anytime until end of May since I want to do it properly. I might publish the existing code earlier, but it’s currently using an Java interface mechanism for callbacks and so will only work outside the P5 IDE (e.g. in Eclipse)… watch this space!

jesus gollonet

Conversación.

Primero,

captura del delicious de missha

por lo que

captura de mi inbox en delicious

y yo, pues,

captura del formulario de bookmarks de delicious

Ella lo vió,

captura del delicious de missha

y bueno, el resto ya es historia:

Captura de una captura en flickr de un feed de delicious sindicado via bloglines

3 servicios web más tarde, allí seguía yo, con cara de tonto, pensando en los bonitos viajes que hacen los datos, y en la cantidad de formatos que pueden adoptar, y en cuantas maneras de comunicarse hay…

toxi

Colour code snippets

I needed to sort a given colour palette by certain criterias, for example by luminance, saturation or by proximity to another colour. This, for instance, comes quite handy when trying to bias a random colour choice using a fixed palette (e.g. favour darker over brighter colours in the palette or pick more yellow shades than blue). Am sure such a readymade util exists in some form, but sometimes writing stuff yourself is quicker and more worthwhile than googling for it. So DIY won yet again with the 3 results below:

/** * sorts a given colour palette by saturation * @param cols array of integers in standard packed (A)RGB format * @return sorted version of array with element at last index * containing the most saturated item of the palette */int[] sortBySaturation(int[] cols) {  int[] sorted=new int[cols.length];  Hashtable ht=new Hashtable();  for(int i=0; i<cols.length; i++) {    int r=(cols[i]>>16) & 0xff;    int g=(cols[i]>>8) & 0xff;    int b=cols[i] & 0xff;    int maxComp = max(r,g,b);    if (maxComp > 0) {      sorted[i]=(int)((maxComp - min(r,g,b)) / (float)maxComp * 0×7fffffff);    }     else      sorted[i]=0;    ht.put(new Integer(sorted[i]),new Integer(cols[i]));  }  sorted=sort(sorted);  for(int i=0; i<sorted.length; i++) {    sorted[i]=((Integer)ht.get(new Integer(sorted[i]))).intValue();  }  return sorted;}

/** * sorts a given colour palette by luminance * @param cols array of integers in standard packed (A)RGB format * @return sorted version of array with element at last index * containing the “brightest” item of the palette */

int[] sortByLuminance(int[] cols) {  int[] sorted=new int[cols.length];  Hashtable ht=new Hashtable();  for(int i=0; i<cols.length; i++) {    // luminance = 0.3*red + 0.59*green + 0.11*blue    // same equation in fixed point math…    sorted[i]=(77*(cols[i]>>16&0xff) + 151*(cols[i]>>8&0xff) + 28*(cols[i]&0xff));    ht.put(new Integer(sorted[i]),new Integer(cols[i]));  }  sorted=sort(sorted);  for(int i=0; i<sorted.length; i++) {    sorted[i]=((Integer)ht.get(new Integer(sorted[i]))).intValue();  }  return sorted;}

/** * sorts a given colour palette by proximity to a colour * @param cols array of integers in standard packed (A)RGB format * @param basecol colour to which proximity of all palette items is calculated * @return sorted version of array with element at first index * containing the “closest” item of the palette */

int[] sortByProximity(int[] cols,int basecol) {  int[] sorted=new int[cols.length];  Hashtable ht=new Hashtable();  int br=(basecol>>16) & 0xff;  int bg=(basecol>>8) & 0xff;  int bb=basecol & 0xff;  for(int i=0; i<cols.length; i++) {    int r=(cols[i]>>16) & 0xff;    int g=(cols[i]>>8) & 0xff;    int b=cols[i] & 0xff;    sorted[i]=(br-r)*(br-r)+(bg-g)*(bg-g)+(bb-b)*(bb-b);    ht.put(new Integer(sorted[i]),new Integer(cols[i]));  }  sorted=sort(sorted);  for(int i=0; i<sorted.length; i++) {    sorted[i]=((Integer)ht.get(new Integer(sorted[i]))).intValue();  }  return sorted;}

Added bonus: Using a webcam and applying the 2nd function (sortByLuminance) to the contents of the current pixel buffer, you can instantly and possibly unintentionally create a close copy of this “amazing” piece of “infoviz” concept art… Sorted! :)

Also, I wasn’t sure whether I should continue posting code snippets like this to this blog. A year ago I set up an account with Code Snippets which used to be more Ruby, JS and generally webdev oriented, but meanwhile has quite a big range of languages and subjects covered. Then of course there’s also Processinghacks, but it didn’t seem fitting for this either…

jesus gollonet

Breadboardband.

Una vuelta de tuerca más al livecoding: Live short circuiting!

Concierto de la breadboardband.

One Sentence Description:

Electronic Improvisational Music Performance with DIY wiring

Música electrónica manipulando directamente los cables sobre breadboards. Su discurso se basa en una objeción contra los instrumentos musicales que llaman “de caja negra”:

The Breadboard Band raises objections toward black-box electronic musical instruments and computers. This objection is raised in the form of showing the electronic components of an instrument, directly touching and forming the electric circuit by hand, and producing audio and visual expression through the most minimal, fundamental elements. This can be considered the hardware version of software programming. The circuit change during a performance is called “On-the-fly Wiring”.

Pero aparte lo realmente importante (lo que suena) es bastante bueno. Vean, vean.

Via la lista de correo de toplap

chris

Visual Scratch

Visual Scratch

Visual Scratch by Jesse Kriss is a realtime visualization of scratch DJ performance. Ms Pinky is used to get the velocity of the turntable into Max/MSP using a control record. Ms Pinky allows you to scratch an MP3, so the sound is routed out to the mixer, and then back into Max where volume & frequencies are analyzed. A second machine is used to output the Processing visuals. Jesse has previously created MaxLink, a method of communication between Max/MSP & Processing, used in the project Visual Scratch.

Watch video.

(via processing.org)

jesus gollonet

Digital art critique

Siempre que se atisba discusión en eu-gene, la lista de correo de generative.net, hay que frotarse las manos. La cantidad y profundidad de conocimiento sobre arte digital, electrónico, generativo y derivados que por allí se destila es enorme.

A mi me gustó especialmente ésta discusión sobre el mapeado en el arte digital, que se desató a raiz de un mail sobre el scribbler-bot. El desencadenante (“esencialmente una máquina de dibujo que convierte información digital en un dibujo físico”), es lo de menos. Lo interesante fue la cantidad de temas que se tocaron, entre ellos:

  • Muchos trabajos de arte digital tratan de la mera traducción (mapeado) entre elementos del mundo físico y el digital: Dibujos físicos controlados por archivos digitales, elementos que se mueven en la pantalla según el sonido en la habitación… Si la traducción es lo único que sustenta el trabajo y no tiene una justificación, es probable que se trate sólo de un alarde técnico, no artístico. (más sobre esto en los links de abajo).
  • En el arte (de cualquier tipo), es más importante el por qué que el cómo. Es fácil quedarse en la mera fascinación tecnológica.
  • ¿Necesita una obra de arte ser “discutible” o, como dicen, “renderizable en palabras”? ¿Acaso no es el remanente inexplicable lo definitorio del arte? Cuando pedían a Neruda que explicara una poesía respondía “la poesía no se explica”
  • ¿Hay que leer una documentación de 15 páginas para poder comprender una obra de arte? ¿Es más válida una obra de arte que no precisa documentación?
  • En el mercado hay herramientas que facilitan cada vez más la creación… ¿Es más artístico un proyecto creado con chips caseros que uno que utiliza los kits de makingthings?

…y algunos otros. Creo que merece la pena echarle un vistazo a toda la conversación.

Bonus:

  • Formula for computer art, del artista Jim Campbell. Una animación irónica sobre el problema del mapeado.
  • Vademecum of digital art, referenciado en la discusión de arriba, un decálogo (bueno, dodecálogo) también con tono graciosillo para servir de guía a jurados, comisiones, marchantes, etc. en las procelosas aguas del arte digital.

Y es que hace falta un poco de crítica. Como dice Maeda, también hablando sobre la situación actual del media art:

(today) “There is a lot to see, but merely that: a lot”

Autonota: ¿Qué sentido tiene poner el hreflang =”en” si nunca pongo enlaces en castellano?