Category: Processing / Java

I just finished a set of concerts with Alexander Rishaug, starting in Berlin at CTM.08 / Generator.x 2.0: Audio-Visual. This week we did two more gigs, first at VJ picks DJ in Bergen and finally on our home turf at Kabinett #3 in Oslo. For an impression of the set you can have a look at the clip above, posted by Pablo Sanz. For a short interview you can take a look at WatchBerlin's coverage of the concert and exhibition opening.

It was great to play with Alexander and develop our collaboration further, his cinematic soundscapes are a treat to work with. Audience responses seem to indicate that we’re doing something right, so hopefully we’ll find more chances to play together in the near future.

Rishaug & Watz- - Kabinett #3 GX20 Concert 0006 Alexander Rishaug & Marius Watz

GX20 Concert 0005 Alexander Rishaug & Marius Watz GX20 Concert 0002 Alexander Rishaug & Marius Watz

Kabinett poster by Diogo Valerio / photos from performance at Generator.x 2.0

3 Comments »

080205_rhinoscript.jpg

Rhinoscript sketch, extruding a revolution surface along random curves. Good cheesy fun.

I had a chance to see a bit more of the impressive tool Rhino 4 during the Generator.x 2.0 workshop, and so I thought I’d have a go at making a simple sketch in Rhinoscript. As it turns out, the fact that Rhinoscript is based on VBScript makes coding feel horrible at first. Seriously, who would want to use syntax like that? It might be easy for beginners to pick up, but it quickly gets painful once you’re dealing with complex API calls and 100+ lines of code.

Nevertheless, frustration soon gives way to amazement at the built-in Rhino library and its vast array of heavy-duty functions for creating and manipulating curves, meshes and NURBS surfaces. In comparison, mesh generation in Processing is enough to give anyone a headache, and I seriously doubt anyone would even attempt to implement NURBS. Even Boolean mesh operations is a staggering task, with no good Java libraries readily available.

While Rhinoscript is firmly a non-realtime tool, its power for pure geometry is amazing. I would definitely use Rhino as a creative tool for digital fabrication projects, where animation is not the goal. There are some excellent RhinoScript resources online, for starters look at RhinoScript 101 and David Rutten’s tutorial. I would also definitely recommend using the Monkey Script editor instead of the built-in editor, it’s more powerful and has a very useful documentation feature.

The script below gives a basic idea of the Rhino syntax, and while it is a basic sketch suffering from 3D clichées, it shows the power and versatility of Rhinoscript. I just wish it wasn’t Visual Basic.

Code: RandRail.rvb

Read the rest of this entry »

6 Comments »

Simple example of how to generate meshes with Processing and then output them to STL using unlekkerLib.

import unlekker.util.*;
import unlekker.geom.*;
import unlekker.data.*;

import processing.opengl.*;

boolean doSTL=false;

void setup() {
  size(400,400, OPENGL);
}

void draw() {
  background(100);

  if(doSTL) {
    beginRaw("unlekker.data.STL","cyl.stl");
  }

  translate(width/2, height/2, 0);
  rotateY(radians(frameCount));
  rotateX(radians(frameCount));

  fill(255,255,255);

  for(int i=0; i<100; i++) {
    pushMatrix();
    translate(random(-300,300),random(-300,300),random(-300,300));
    rotateY(random(PI*2));
    rotateX(random(PI*2));
    cylinder(50,random(50,200));
    popMatrix();
  }

  if(doSTL) {
    endRaw();
    doSTL=false;
  }

}

void keyPressed() {
  if(key=='s') doSTL=true;
}

void cylinder(float w,float h) {
  float px,pz;

  beginShape(QUAD_STRIP);
  for(float i=0; i<13; i++) {
    px=cos(radians(i*30))*w;
    pz=sin(radians(i*30))*w;
    vertex(px,-h,pz);
    vertex(px,h,pz);
  }
  endShape();

  beginShape(TRIANGLE_FAN);
  vertex(0,-h,0);
  for(float i=12; i>-1; i–) {
    px=cos(radians(i*30))*w;
    pz=sin(radians(i*30))*w;
    vertex(px,-h,pz);
  }
  endShape();

  beginShape(TRIANGLE_FAN);
  vertex(0,h,0);
  for(float i=0; i<13; i++) {
    px=cos(radians(i*30))*w;
    pz=sin(radians(i*30))*w;
    vertex(px,h,pz);
  }
  endShape();
}

7 Comments »

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 »

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 »

The AHO students needed a simple file uploader that would automatically transfer files from a local folder to a web server. The following application will simply watch a given folder and upload any files it contains to the FTP server. Note that it will delete the local copy upon successful upload, so be careful how you use it.

Code: FTPUploader.pde

The code for the application is given below, but downloading the following ZIP will give you the required edtFTPj library files as well as a sample config file:

Read the rest of this entry »

1 Comment »

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 »

Ira Greenberg’s "Processing: Creative Coding and Computational Art" (published by Friends of Ed) was the first Processing book to hit the shelves this fall. I haven’t had a chance to look at it in Person, but from the sample chapters provided it looks very useful.

“Appendix C: Integrating Processing within Java” should be of interest to anyone looking to better understand how Processing and Java work together. It breaks down the basics of how pure Java syntax differs from Processing, and shows how you can make the switch quite easily. It wraps up with a useful example of how to write a Swing GUI application with a Processing sketch as a GUI Component.

The two other sample chapters deal respectively with 3D rendering (including a quick introduction to vector math) and drawing more complex shapes. You can download all of them from the Friends of Ed site, where you can also buy the book in hardcopy or ebook form.

[via Processing forums: Two windows in pure java?]

1 Comment »

Quick Chick: A game made in Processing

Fan Fan, Knut Karlsen, Natacha Ruivo: Quick Chick - a Processing game

Over on Fan Fan’s blog I just found documentation of one of the funniest games the students made: “Quick Chick” starring Billy the Chick who must dodge poisonous falling apples and thorny flowers while making his way home before dark.

Quick Chick is a classic scrolling-landscape type game with obstacle avoidance and good gameplay. Graphically it’s so smooth you’d swear it was done in Flash (it’s JAVA2D). And the graphics are some of the cutest I’ve ever seen in a Processing sketch.

Quick Chick: A game made in Processing

3 Comments »

I got an email from two Caseys last night (i.e. [Casey Alt-http://caseyalt.com/] and Casey Reas), announcing the relaunch of the artsoftware.org Wiki. The intention of the site is to be a gathering point for information about free and Open Source software created by and for artists.

Take a look at the list of existing pages and see if you can’t contribute something…

1 Comment »