loading

Archive for January, 2006

blog.blprnt.com - Processing

L-System Source & Rundown

A couple of people have asked me recently for source code for my L-system projects from last year.

I thought I’d put them up in the shiny new forums, along with a quick primer on how they are used. Feel free to download the files and poke around a little bit. If you come up with anything interesting, let me know!

Pixelsumo

Totems

Totems

Totems by Krister Olsson, are three 3D forms, reminiscent of impossible sex toys. The project site describes the work :

The forms in “Totem” were developed by analyzing online pornography viewing habits. Custom software was written to sniff all incoming Web traffic at a discreet location, sorting packets by destination IP address, time, and source IP address or domain name (if available). Domain names and IP addresses were checked by hand for pornographic content with non-pornographic sites culled from the sorted data.

An application was then written in Processing to model the data. Time was represented by the vertical axis, with each model symbolizing a single day. Each form was vertically cropped to create variance in height. Individual bands generally represented time spent on a single site (although in some cases rapid clicking through many sites resulted in band overlap): the thicker the band, the more time spent. The radius of an individual band was logarithmically determined by the amount of data downloaded from the corresponding site.

Models were examined individually and metaphors applied to what were determined to be interesting forms. “Quickie” was so named because there was only a brief concentration of pornographic Web viewing over the course of one day. In “Work Safe?” it appeared as though large concentrations of pornographic Web viewing took place at the beginning and end of the day, bookending brief blips between 9 AM and 5 PM. The name “Vacation” was chosen for what appeared to be a full day of pornographic Web viewing. Further, the form was inverted manually as a reflection of the introverted nature of such activity.

Why do I blog this? I simply like 3D forms being generated from computational, generative and information visualization based processes.

Other UCLA projects include The King Has, Xylophone, Digital Grass and Enjoy By.

[also on we-make-money-not-art]

Chris OShea

Totems

Totems

Totems by Krister Olsson, are three 3D forms, reminiscent of impossible sex toys. The project site describes the work :

The forms in Totem were developed by analyzing online pornography viewing habits. Custom software was written to sniff all incoming Web traffic at a discreet location, sorting packets by destination IP address, time, and source IP address or domain name (if available). Domain names and IP addresses were checked by hand for pornographic content with non-pornographic sites culled from the sorted data.

An application was then written in Processing to model the data. Time was represented by the vertical axis, with each model symbolizing a single day. Each form was vertically cropped to create variance in height. Individual bands generally represented time spent on a single site (although in some cases rapid clicking through many sites resulted in band overlap): the thicker the band, the more time spent. The radius of an individual band was logarithmically determined by the amount of data downloaded from the corresponding site.

Models were examined individually and metaphors applied to what were determined to be interesting forms. Quickie was so named because there was only a brief concentration of pornographic Web viewing over the course of one day. In Work Safe? it appeared as though large concentrations of pornographic Web viewing took place at the beginning and end of the day, bookending brief blips between 9 AM and 5 PM. The name Vacation was chosen for what appeared to be a full day of pornographic Web viewing. Further, the form was inverted manually as a reflection of the introverted nature of such activity.

Why do I blog this? I simply like 3D forms being generated from computational, generative and information visualization based processes.

Other UCLA projects include The King Has, Xylophone, Digital Grass and Enjoy By.

[also on we-make-money-not-art]

Alison

Well, I got the FACT thing! Im now officially an…

Well, I got the FACT thing!




Im now officially an “artist”.




Which means from now on Ill be busying myself full-time with the ways of the game… and how to use games as tools. (which is handy as thats what my last project was about, mwa ha ha ha)




my proposal was called

“Interactive Sculpture, exploring the territory between live information visualisation, feedback and non persistent participation within a exhibition space and game environment.”




long title huh…




I got a new del.icio.us account which will hopefully accumulate lots of links related to my research.




Oh yeah I also might be doing an Mphil in Huddersfield uni, which’ll be nice. Oh and Ive also got a few exhibitions up my sleeves. I’ll obviously post something about them if and when they happen.




well thats all for now.

Well, I got the FACT thing!

Im now officially an “artist”.

Which means from now on Ill be busying myself full-time with the ways of the game… and how to use games as tools. (which is handy as thats what my last project was about, mwa ha ha ha)

my proposal was called
“Interactive Sculpture, exploring the territory between live information visualisation, feedback and non persistent participation within a exhibition space and game environment.”

long title huh…

I got a new del.icio.us account which will hopefully accumulate lots of links related to my research.

Oh yeah I also might be doing an Mphil in Huddersfield uni, which’ll be nice. Oh and Ive also got a few exhibitions up my sleeves. I’ll obviously post something about them if and when they happen.

well thats all for now.

blog.blprnt.com - Processing

FFWD Interview

There’s a short interview with yours truly over at the FlashForward Blog. Note also that today is the LAST DAY to get earlybird bricing for the conference. So, if you are planning on joining us in Seattle, get your tickets today and save a cool $100.

Seattle is a great city. Even though it’s hardly an exotic destination for me, being a 3 hour drive away, it does give me a good excuse to take a train. I really like trains.

flight404

San Franciscan, I am.

I am here. And I love it. Getting settled. Still don’t have internet at home but hopefully will be turned on next week. And hope to start being productive again by mid february. Fingers crossed.

v3ga

Vision Factory, updates.

Vision Factory [ see previous post ] has been improved for the few last weeks by adding some nice features :

  • - supports now live input sound thanks to Fmodex, which is a high quality multi-platform sound library. It has a per-channel FFT analysis built-in, an ideal feature if you want to have some beat detection stuff and sound reactive graphics. There are tons of great functionnalities available through a clean and well documented interface. And by the way : it’s free to use for non commercial products !
  • - supports now scene filtering on top on scene rendering. It’s now possible to chain 2D filters (see screenshot, a twirl filter was applied on the grey mesh), each of them having access to spectrum analysis for sync effects.
  • - supports flash movies playing, thanks to GameSWF library.
  • - supports vertex and pixel shaders through Nvidia CG library.
  • - can play RQBox scenes. RQBox is a Max/Msp-esque tool Mike (my friend & coworker) and I began to develop in the summer 2004. It allows to plug basic blocks for quickly prototyping 3D scenes. Once a scene has been composed, it’s possible to export it for playback and have some of its properties accessible from “outside”, like wires in a microchip. It’s in its early stage of development though.

I am currently working again with Jody and Luke from Hudson-Powell studio on a really cool project which will be using Vision Factory as a tool for generating images (for printing). It’s still in development at the moment. Once the project will be released, I will try to put a version of this piece of software online (Mac / PC).

RQBox
RQBox Editor

VFactory
Scene played in Vision Factory with a “twirl” filter applied.

v3ga

Vision Factory, updates.

Vision Factory [ see previous post ] has been improved for the few last weeks by adding some nice features :

  • - supports now live input sound thanks to Fmodex, which is a high quality multi-platform sound library. It has a per-channel FFT analysis built-in, an ideal feature if you want to have some beat detection stuff and sound reactive graphics. There are tons of great functionnalities available through a clean and well documented interface. And by the way : it’s free to use for non commercial products !
  • - supports now scene filtering on top on scene rendering. It’s now possible to chain 2D filters (see screenshot, a twirl filter was applied on the grey mesh), each of them having access to spectrum analysis for sync effects.
  • - supports flash movies playing, thanks to GameSWF library.
  • - supports vertex and pixel shaders through Nvidia CG library.
  • - can play RQBox scenes. RQBox is a Max/Msp-esque tool Mike (my friend & coworker) and I began to develop in the summer 2004. It allows to plug basic blocks for quickly prototyping 3D scenes. Once a scene has been composed, it’s possible to export it for playback and have some of its properties accessible from “outside”, like wires in a microchip. It’s in its early stage of development though.

I am currently working again with Jody and Luke from Hudson-Powell studio on a really cool project which will be using Vision Factory as a tool for generating images (for printing). It’s still in development at the moment. Once the project will be released, I will try to put a version of this piece of software online (Mac / PC).

RQBox
RQBox Editor

VFactory
Scene played in Vision Factory with a “twirl” filter applied.

blprnt

Switching Over

Today is the day.




I’m switching this blog over to a new design and a new server, so as of this post this blog has gone stale.




To find the new, mould-free one, go here:





http://blog.blprnt.com





For the new RSS feed, point to here:





http://blog-blprnt-com.bryght.net/node/feed





Don’t fear change.
toxi

Dissecting the discourse

As a follow up to yesterday’s stormy discussions on the Processing discourse, I have to say I’ve been quite perplexed by the impact of my last post and the intensity of the discussion started. It’s true I got things mushed up got carried away with some of my subjective views, yet I think Processing can’t be talked about merely as tool. We all know that and I take it the resulting intensity is a sign we all feel Processing has become a very important part of our (at least) creative lives…




The 2 main points of criticism of my raised issues were:

“I also think it encouraged a slightly superficial view of computational design by quickly gaining cult status amongst people never been exposed to programming before. I think it’s dangerous and a sign of crisis if every recycled L-System, Neural Network, Wolfram automata or webcam tracking experiment automatically is considered art (by their authors), simply because it’s been “(Re)Built with Processing”…”


For some reason (Sorry, I can’t quite isolate it) this has been interpreted as me preaching elitism or belittling beginners which is absolutely not the case. As I mentioned previously, my entire knowledge of programming is based on years of playful (often seemingly meaningless) experimentation. The above statement was more concerned with some of the emerging ego issues amongst the userbase. I think I also finally realised (not for the 1st time) that my concept of an artist is strangely incompatible with that of most others and my remarks where caused by this.




FWIW I consider an artist to be a seeker of knowledge, understanding, a master of craft and resulting insights into the very nature of what we call the universe. This is a process which doesn’t require nor has it place for bullshit. Life’s too short for such things and I can’t grasp why people do it instead of trying harder and raising their own standards a little. My mummy told me, be quiet if you don’t have something useful to say.




Maybe I should have taken this partial advice yesterday, yet I think the gist of my argument is valid somewhat, but should have been expressed differently. Don’t be hurt!

“In terms of pure expressiveness of ideas, concepts and thought processes as code, Processing is inferior to straight Java or dynamically typed languages like JavaScript or Ruby.”


Now this really was a tricky one and definitely should have been expounded by me a bit deeper. What constitutes Java is not just its overblown and almost uncomprehensible standard library, it also is just a language with very nice features. Try to consider them on their own, the statement above was referrig purely to that. The same goes for the other two languages mentioned. I know exactly where most of you were coming from with your criticism of this above statement: Getting simple things done in straight Java can be cumbersome. On the other hand the language has a handful of simple mechanisms to allow us to construct increasingly complex systems of code without having to constantly reinvent the wheel. My question to that was why does “Processing” not make use of those handy features? - and here it’s not really the tool I am talking about but the way those things are totally excluded from the processing reference. If people (beginners) are never made aware that things exists how can they learn about it (Google doesn’t count here!)? I also think the teachers amongst us should maybe give students a little bit more credit in grasping OOP concepts?




Another weird question, but it would be ++interesting to know: Has it maybe to do with the fact that most of you (teachers) have never been taught OOP/design patterns yourself?




A while ago I decided for myself that everything (code related) I do should be specialized and yet generic enough to be reusable in future projects, but alas I cannot do that fully with Processing in its current form.




Re: JavaScript and other dynamic languages. I think Ben’s argument of saying he can’t produce his work with JS is a slight paradox. If he would have chosen JS as base language for his project (with an underlying layer in C, e.g. by using SpiderMonkey) - he maybe would be able by now to do so. IMHO it’s a little bit misconstrued, but I won’t hit on it any further, since as he rightfully pointed out, there’re much more important things to be solved at current.




Reason why I mentioned JS (and above all Ruby) as alternative was because those dynamically typed languages allow for very powerful coding idioms which one can only dream of in Java. But of course these again are very advanced topics and as such are only interesting to that part of our community. This was one of the mushed points of my last post.




Keeping on talking about object orientation just a bit longer, I find it very interesting Casey mentioning MAX, PD and VVVV as tools being almost purely targeted at the artist community. All of those tools are not dealing with text based programming, yet are deeply rooted in an object oriented approach. In fact their entire essence is based on an huge number of tiny encapsulated objects, fulfilling very specialized tasks and are loosely coupled. In order to create a “sketch” people choose them like building blocks and connect them via “wires” to create a directed process graph/execution flow.




So I think some take away points from that are:

  • Objects are not alien concepts to programming newbies - I think it’s all down to teaching styles. The visual programming metaphor obviously helps beginners on those platforms more since with the textual approach of Processing the connecting wires are initially invisible and have to be mapped out and “stored” in the students mind.

  • Secondly, the highly modular architecture of those systems has contributed to their incredible success (IIRC, MAX has been on the market for +15 years). Also because of their fine grained modules (which have to be written in C++, lo and behold…) beginners can start out writing just tiny atoms of code instead of thinking on library scale. Because those tools enforce by their nature all objects/patches to be encapsulated, every effort spent on writing those extra bits of code is well spent in the knowledge it can be easily reused, potentially in infinite ways. This behaviour is not the case with Processing.


To back up some of the above, here’re some search results for the word “object” for the various community websites:





PureData ~35200 results


VVVV ~2400


Processing 442 results




I couldn’t find a decent start site for MAX, but there’s maxobjects.com which is hosting roughly 2900 MAX/MSP objects of various complexity.




Do you get my drift?!




toxi

</Procrastination>

Note: This article is using “computational art/design” as compound term also including “generative” approaches.




Code lies at the very heart of computational design, a discipline becoming increasingly popular as proven by the mushrooming number of blogs, books written, conferences and workshops held - all using “code” as their core concept and pivotal sales hook. Yet there’s apparently little intelligent discussion taking place about Code (with capital C) which goes beyond the art theoretical/cultural mindset and touches more on its raw (dare I say “technical” side), discussion about its manifold structures, expressiveness, metaphors in generative systems…




Code is language. It can be used and articulated in infinite ways. Poets use language in different, often far more subtle and sophisticated ways compared to our average modes of conversation. Their mastery and/or unique approach to language is what makes them artists, even before theorists can utter the words “political” or “historical” as their main point of interest. I much rather subscribe to something like Tolstoy’s naturalistic description of art.




So personally and especially in regards to computational art, I find myself repeatedly standing in direct conflict with the often voiced opinion that literacy in the digital medium is unobtainable or even undesirable.




Processing…




…is a real phenomenon. Heralded as the new “it” tool for computational artists, it actually doesn’t directly embrace or promote any state-of-the-art software designs (i.e. code structures). It’s true, Processing has been primarily developed as teaching tool and always had in mind a beginner target audience, yet I’ve been thinking for quite some time that it merely delays the learning curve and lures in an increasing number of users (or shall I say “ongoing generative artists”?) with its easy to learn (and teach!) syntax to get quick visual (mainly) bang-for-the-buck. There’s no arguing about its potential as digital sketching tool and its suitability for short workshops.




Being focused on small code sketches/experiments and used by various respected artists the tool created an huge amount of interest fairly quickly. In retrospect (well, for me after almost 3 years) I also think it encouraged a slightly superficial view of computational design by quickly gaining cult status amongst people never been exposed to programming before. I think it’s dangerous and a sign of crisis if every recycled L-System, Neural Network, Wolfram automata or webcam tracking experiment automatically is considered art (by their authors), simply because it’s been “(Re)Built with Processing”… Of course this is in no way to attack the tool or its intent, but is my growing issue with the surrounding community ethos. We have blogs writing about data equals nature and math being the language of nature, yet there doesn’t seem to be any deep understanding of the importance of clean code designs and intelligent data structures or even community interest in further researching and experimenting with those artistically.




boolean isWrong = ( isExperimental != hasGoodDesign);


In fact from conversations with various fellow Processing users and lecturers I gather most are not aware of the total absence of decent software designs in the majority of the work produced with the tool so far. Due to the simplicity of its syntax, authoring environment and reference examples, the implicitly encouraged coding style is somewhere between procedural C programming (minus the pointer mess) and barely scratching the surface of object oriented designs.




In terms of pure expressiveness of ideas, concepts and thought processes as code, Processing is inferior to straight Java or dynamically typed languages like JavaScript or Ruby. Its ease of use has been gained by sacrifying scalability. Processing is based on convenience methods and it shows indirectly too. The Processing community at large has started to grow into one of consumers of previously written code.




On the other hand I believe artists (ongoing or not) working with “computational strategies” (can we please quit the marketing speak) must, or at least should, be aware of and work on intelligent software designs in order to advance the(ir) discipline. Form follows function.




In response to that I also believe it might hurt Processing as platform in future if experienced users will find themselves forced to breakout and leave the tool behind. To pre-empt this to happen, I think the community at large should pay more attention and spend time on extending the current library base. Above all, library authors should also respect the tremendous amount of work put in by Ben+Casey so far and too embrace the open source mentality of their core tool. The licenses are many (as well as much misunderstood, choose wisely!). That way existing library functionality can be further extended without having to reinvent the wheel (yet again!)…




An extensive library base for Processing will help the tool’s longevity, even if users will slowly outgrow the initial proposal of the tool and only continue to use it library itself.




Open source is for doers. Happy, belated 2006! Glad I’m still alive…




blog.blprnt.com - Processing

Index for X: An Experiment in Mass Collaboration

I was lucky enough to be asked to build a piece for the Winter issue of Born Magazine. The poem, Index for X and the Origin of Fires is a truly beautiful work by Ander Monson.

What I wanted to avoid in this project was forcing the reader into one particular interpretation of the poem. I think the beauty of verse lies in its ability to speak in different ways to different readers.

blog.blprnt.com - Processing

blprnt in Budapest



My tree.growth project has been accepted into the Process Revealed exhibition, part of the EvoMUSART workshop in April, in Budapest. From the website:

EvoMUSART 2006 is the fourth workshop of the EvoNet working group on Evolutionary Music and Art. Following the success of previous events and the growth of interest in the field, the main goal of EvoMUSART 2006 is to bring together researchers who are using biological inspired techniques for artistic tasks, providing the opportunity to promote, present and discuss ongoing work in the area.

I am honoured to be a part of this exhibition - and excited about a trip to Hungary! If anyone has any good travel advice or must-sees in Budapest, I’d love to hear it.