Category: Theory

The Generator.x 2.0: Beyond the Screen workshop and exhibition kicks off in Berlin this Thursday. In addition to the workshop there will be two evenings of presentations open to the general public, intended to bring the topics of the workshop to a larger audience.

The presentations will take place at the Ballhaus Naunynstrasse, which is also the venue for the workshop. If you’re in Berlin I hope to see you there!

Generator.x 2.0: Presentations #1 - Thu 24 Jan, 19:00 - 21:00

  • Keynote: Marius Watz [NO]
  • Boris Müller [DE]
  • Satoru Sugihara - Morphosis [JP/US]
  • Eno Henze [DE]

Generator.x 2.0: Presentations #2 - Mon 28 Jan, 19:00 - 21:00

  • Aram Bartholl [DE]
  • David Dessens [FR/DE]
  • Tim Schork - MESNE [DE/AUS]
  • Skylar Tibbits - Theverymany [US]

See the Club Transmediale site for a full list of Generator.x 2.0 events. Documentation of the event will be posted on the Generator.x blog and Flickr group as it becomes available.

No Comments »

Since Flickr is just about my favorite web service and I use it a lot, it should come as no surprise that I also like to complain about it. Well, not so much about the service itself, just the lack of a few features and some of the more inexplicable things they’ve done. Some of my previous gripes (like black thumbnails) have actually been fixed. Others, like the stupefyingly bad SafeSearch feature are alive and well.

So here’s my current list of annoyances about my favorite web service:

  • Flickr Uploadr 3.0 is a very buggy piece of software. In fact, it’s so bad it probably should never have been released. In particular, it should not have been released just before a big holiday when development teams would not be on hand to fix it. I’ve downgraded to Uploadr 2.5. It might be clunky, but at least it uploads your pictures.
  • There is still no way to hide non-public images from yourself so that you could navigate the photostream the way other people see it. About 3000 pictures in my account are private, being either high-res backups or of a personal nature (not that personal, though…) Wading through them often becomes a chore, since I typically upload batches of 30-100 images for backup at a time. I’m almost considering opening a separate Flickr account just for backups, but that would become frustrating quite quickly.
  • When you add photos to an existing set using the Organizr, the sets are listed in the order you’ve arranged them in for viewers. When you have 50 sets, it gets annoying to find one that might be number 20 on the list. The option to switch to alphabetical listing would have been very useful.
  • The SafeSearch / NIPSA issue is still around, although Flickr seems less aggressive about enforcing it at the moment

On a more positive note, the new Flickr stats work just fine. I’ve been able to observe some interesting trends in how my photos are being viewed, including a better idea of what constitutes my “greatest hits” on Flickr. Great work indeed.

2 Comments »

I don’t read many programming or tech blogs unless they are directly related to the fields of generative art or computational design. One of the few exceptions is Jeff Atwood’s blog Coding Horror, which I’ve found to be a consistently brilliant source of techy commentary and sound programming advice. Often it’s not really applicable to my own projects since I’m not building business apps of grand complexity, but it’s inspiring reading nonetheless.

It was therefore gratifying to see that Atwood just blogged about Processing in a post entitled Modern Logo. In reference to another blog post about rediscovering LOGO, Atwood suggests that while LOGO might have some depth to it, turtle-based drawing ultimately “sucks”. Instead, he points to Processing as an updated alternative with similar educational goals. Sweet.

Oh, and happy holidays, no matter how you’re spending the time between Dec 24-31…

No Comments »

Club Transmediale.08­ - Unpredictable
Festival for Adventurous Music and Related Visual Arts

Generator.x 2.0: Beyond the Screen
24 Jan -­ 2 Feb 2008, Ballhaus Naunynstrasse / [DAM] Berlin
Workshop / Exhibition / Performance

071127_gx20_lennyjpg.jpg

Leander Herzog: thePhysicalVertexBuffer

Generator.x in collaboration with Club Transmediale and [DAM] Berlin presents Generator.x 2.0: Beyond the screen, a workshop and exhibition about digital fabrication and generative systems.

Digital fabrication (also known as “fabbing”) represents the next step in the digital revolution. After years of virtualization, with machines and atoms being replaced by bits and software, we are coming full circle. Digital technologies like rapid prototyping, laser cutting and CNC milling now produce atoms from bits, eliminating many of the limitations of industrial production processes. Once prohibitively expensive, such technologies are becoming increasingly accessible, pointing to a future where mass customization and manufacturing-on-demand may be real alternatives to mass production.

For artists and designers working with generative systems, digital fabrication opens the door to a range of new expressions beyond the limits of virtual space. Parametric models apply computational strategies to the analysis and synthesis of space, producing structures and surfaces of great complexity. Through fabbing these forms may be rendered tangible, even tactile.

071127_gx20_jaredtarbell.jpg

Jared Tarbell: Spheroids and cubes

Call for participants

We are looking for 15 artists, designers and architects who have an existing practice based on generative systems and custom software, and who are interested in investigating physical formats through digital fabrication. The workshop will be practical in nature, and will produce a selection of works that will be included in the exhibition at [DAM]. Participants will have access to an on-site laser cutter, and an introduction to this technology will be part of the workshop.

The workshop is free of charge, but we will not be able to provide support for travel or accomodation. Participants are expected to have experience with programming software that will allow them to produce work suitable for production, such as Processing, VVVV or any other system capable of producing vector output. Previous experience with laser cutting or digital fabrication technologies is a bonus, but not a requirement.

Applications must be in PDF format and should including a CV and a short statement of intent, describing why you want to participate in the workshop and how fabbing relates to your existing practice. You should include a maximum of 5 images of relevant work, with a total file size of 2 megabytes. Feel free to provide links to web sites containing documentation such as videos or downloadable software, but please don’t send such content by email.

Please submit applications by email to generatorx [at] clubtransmediale.de. The deadline for application is December 21, 2007, accepted participants will be notified at the beginning of January 2008.

071127_gx20_theverymany.jpg

Theverymany (Fornes / Tibbits): Tesselated panels

Generator.x 2.0: Beyond the screen is supported by The Office for Contemporary Art Norway. We also thank our partners: Institut HyperWerk HGK FHNW and Lasern. .

3 Comments »

ZZap! 64 Magazine covers

ZZap! 64: Magazine covers

It’s maybe too close to the deadline of the computer game assignment to give much additional inspiration, but I found an interesting link to an online archive of ZZap! 64. A magazine devoted to Commodore computer games with an obvious focus on the C64, it’s now a treasure trove of retro computer game culture. In particular, the magazine covers are a sight to behold.

Another site I only found after giving the assignment is Dot Eaters, an excellent overview of classic video game history.

[ZZap! 64 link via the excellent 30gms.]

1 Comment »

A little history
Since the first very computers, there have always been computer games. Games are in many ways the ultimate icons of computer culture. The computer excels at the kind of interactive simulation that games require, giving the user immediate response to her actions.

Early computer games tended to be iconic in their representations. Restricted by limited CPUs and low quality graphics, their worlds were often comprised of the most basic shapes: Lines, squares and dots. As a result, the focus was purely on gameplay: How do the elements interact, and what makes for an interesting game?

Examples of classic games are Tetris, Snake, Space Invaders, Spacewar and Pong. These are all visually primitive, but remain among the most addictive games around. They are quick to engage with and learn the principles of, but typically feature scaleable difficulty that means that even experienced players will find a challenge.

Later, pixel sprite games became popular, giving more potential for representation. The platform game model became more common. The focus was still on basic gameplay, but the visual environment became richer and there was more of a sense of a landscape in the games. Examples from this era include Dig Dug, Forbidden Forest, Gauntlet, Donkey Kong and Lode Runner.

Increasing computing power produced new genres of games, from advanced platform games (Prince of Persia) to new models like god games (Sim City, Populous etc.) Today, games are practically unlimited in their graphic complexity, and often tend to have strong narratives and advanced spatial environments. Meanwhile, 2D games are having a renaissance on mobile terminals.

Why you’re going to make a computer game
Computer games are perfect examples of interaction design. Games are interactive applications that potentially demonstrate a range of interesting qualities: Visual sophistication, advanced interaction and psychological aspects of experience design. A good game is usually immediately recognizable as such,

Games also present a complete model of a functional application. They take user input, process it against an internal model and output a visual (or multisensory) result in response. You’ll be able to use everything you’ve learned so far and put it to good use in an interactive situation.

A good game consist of several elements:

  • A game model: What does the game challenge consist in, and how can the user win?
  • Gameplay: What does the user control, and how does that control influence the game?
  • Visual elements: What is the environment the game takes place in? Is the “world” constant, or does it develop over time?
  • Scaleable difficulty: How does the game get more challenging as the user plays it?
  • Addictive aspect: What will make the user come back for more?

Process

  1. Find a group you want to work with. You should be two or three people per group.
  2. Do some research on games. Look up some of the games mentioned in this introduction and see how they worked. Try to understand what makes them into classics.
  3. Come up with a concept sketch. Describe the game idea on paper, explaining what the components are and how they will interact.
  4. Do initial code sketches, not focusing too much on details but showing the basics of interaction.
  5. Present these ideas to Marius and Mosse in individual talks on the morning of Friday 28.09.
  6. By Wednesday 03.10 you should have a basic prototype ready. Marius will be available all the days Wednesday to Friday, but you will be working individually and there will be no proper teaching.
  7. Final presentation is Friday 05.10 at 13:00. You should have sent the assignments to Marius on email before then.

2 Comments »

Smart screensavers: SETI and Electric Sheep

Smart screensavers: SETI@home / Electric Sheep

After last week’s assignments you should be ready to tackle a more complex application. Our test case will be a screensaver. What is the essential nature of the screensaver? Is it just pretty graphics, or could it be a medium for information?

Screensavers serve several functions:

  1. They save screens. Literally, they prevent phosphor burnout on CRT screens. On LCD screens they’re not quite so useful in this respect, since it’s healthier for the screen to power down than to stay on.
  2. They lighten up the office environment, and even entertain people with their endless animations.
  3. In a well-regulated office or school environment with little room for self-expression, having a special screensaver can be the equivalent of wearing a T-shirt with a band name on it. People customize their technology because it’s an expression of their identity.
  4. For more information on screensavers, see Wikipedia: Screensaver and Wikipedia: After Dark

Generative screensavers
To the frustration of many digital artists, screensavers have much in common with generative art. They often rely on some kind of ruleset to allow infinite animation and to avoid burning a single image into the screen because of repetition. Many classic screensavers use mathematical formulas like Beziers or Lissajous curves. But most screensavers are created by programmers, not designers, hence the bad reputation they have as cultural artifacts.

Smart screensavers
Recently, screensavers have gotten a whole lot smarter. The SETI@home screensaver is in reality a client for a distributed computing platform trying to find signs of intelligent life in outer space. Scott Draves’ Electric Sheep is also a distributed computing client, but it aims to create life rather than find it in space. By letting it run on your computer you’re taking part in a massive genetic algorithm aiming to produce interesting fractal animations.

Widgets: Apple

Widgets: Apple’s Dashboard and Yahoo Widgets

What about widgets?
Widgets are simple mini-applications that have been gaining in popularity since the introduction of Apple’s Dashboard. Many widgets are interactive, such as calculators or notepads. But others are information gathering devices, listening to RSS streams and other forms of online information and delivering it to the user. Could we mix our screensaver metaphor with the idea of a widget? What kind of information gathering device could a screensaver be?

Coding tips

  • If you’re making an animation that is meant to run forever without obvious repetition, you need some kind of random behavior. Consider using state counters with random intervals.
  • Even better: Try using noise() instead of random(). noise() produces a continuously fluctuating random value that can be used to produce smooth animations.
  • If you’re interested in doing information gathering, take a look at this blog post. It shows how to use the del.icio.us API with Processing. The openStream() function can also be used to read web pages from URLs, it’s not well-documented but there is an example here.

1 Comment »

When writing realtime applications optimal code is always the goal. But it’s hard to always know exactly what is going to be “expensive” in terms of CPU time.

Java Performance Tuning is a very comprehensive optimization resource, but a bit too dense for less experienced programmers. JavaWorld has an article called Make Java fast: Optimize!, which is more accessibly and explains some basics quite well. More importantly, it provides a benchmark applet that gives an overview of the relative CPU cost of basic Java instructions.

For instance, the assignment “int x = 0″ would take 987 picoseconds to execute a certain number of times, while “x[0]=x[10]” would take 1304 picoseconds. See below for benchmark examples.

There is also the classic Jonathan Hardwick optimization tutorial, which is a bit more technical. It’s old (1998), but the basic concepts are still valid. One thing he warns against is the cost of object instantiation. Creating a new object instance can be expensive, particularly if it’s a complex object with lots of data. Try recycling complex objects rather than creating new ones.

Keep in mind that spending tons of time optimizing single lines of code is usually not worth it. Small differences in the benchmarks below would only matter if you’re doing some calculation a huge amount of times. Try using a profiler if you have the time and the need to figure out which parts of your program suck CPU cycles.

Otherwise, some basic rules of thumb should get you a long way:

  • Don’t calculate values more than once. Instead, store them in a local variable for reuse.
  • Avoid creating new complex objects when you could recycle old instances instead.
  • If possible, use simple data structures. A one-dimensional array is faster to access than a two-dimensional one.
  • If you’re doing work with Strings, consider using StringBuffer to avoid instantiating temporary String objects.
Benchmarks

Read the rest of this entry »

No Comments »

Next week I’m not teaching, so instead I want you to work on the exercises given below. You will have a teaching assistant and maybe sometimes Mosse to help out. Also, the Urban Interface conference is warmly recommended. It’s free, but you should sign up for it in advance.

Exercises for week 37
  1. Social software: Sign up for Flickr. Join the AHO Interaction Design group. Post a link to your blog there.
  2. Social software: Find 3 blogs you like that are related to interaction design. Post the links to the AHO Interaction Design group. Set up a feedreader like Google Reader, Newsgator or similar and subscribe to the feeds of those blogs.
  3. Random composition (EX02): Create two compositions. One should be based on principle of order and regularity. The other should manifest chaos. Be particular about color. Consider transparency as a way to add depth. Save a representative image from each sketch and post them to Flickr. Prefix the filename with “EX02″.
  4. User interaction (EX03): Create a drawing tool where the gesture of the user is used to draw images. Don’t be literal, but rather interpret the user’s input to control a dynamic drawing system. The user should still have a sense of control, however. Draw a representative image and post them to Flickr. Prefix the filename with “EX03″

No Comments »

Spiegel Online has just published a feature on generative art: Kunst aus dem Computer: Malen nach Zahlen (in German). It features work by myself, Neil Banas (who was blogged on Generator.x a while back) and San Base.

The opening paragraph strangely proclaims that “Marius Watz is always afraid.” (Marius Watz hat ständig Angst.) That seems to be a slighthly overenthusiastic interpretation of a comment I made about the importance of backup and having access to data while travelling. It also states that I’ve exhibited in Los Angeles, which I haven’t.

The rest of the article seems ok, if a tad superficial. In particular, I think the issue of whether or not generative art can be sold is a bit more resolved than it comes across in the article. The answer is yes, of course it can. The main challenges here are reaching collectors and museums, as well as to make sure the work is collected in a form that can be maintained for posterity.

See the following two articles at Artinfo for some pointers on the subject of selling and collecting media art:

Thanks to Christina Vassallo for providing me with these links in the first place.

2 Comments »