r _Web.log

Archives: 2009-09

Hackpact 2009/09/#30: Million particle snowstorm


So, it's the last day of the month-long hackpact that has motivated the almost-daily posts here for the past 30 days. Many have been missed, many have been lame, but it was an enjoyable process and triggered a lot of mini-works that wouldn't have come about otherwise.

The final hack is a relatively grand one, though still a work-in-progress: to celebrate the newfound power of my freshly upgraded computer and its Geforce 9600M GT, a million-particle snowstorm, whipping around the screen at 60fps and gratuitously mapped onto a sphere for good measure. The low framerate Vimeo capture unfortunately doesn't do it justice, but I'm still seeking a more satisfying method of capturing motion graphics from OS X.

Particle globe

Hackpact 2009/09/#29: Multiple bouncing windows in Processing

[icon] BouncingWindows.pde

Bouncing windows Another Processing hack following a tweet by Marius Watz: little borderless windows flying around the screen. At least on OS X, the slowdown is sufficient that it begins to creak to a halt with more than a handful, but fun (if essentially useless) sketch.

Hackpact 2009/09/#25: Dagstuhl creativity writeup


Final push on getting together this belated report on the Dagstuhl seminar Computational Creativity: An Interdisciplinary Approach I attended a couple of months ago. Features such diagrammatic gems as the attached, depicting ongoing interactions in group improvisation.

Hackpact 2009/09/#23+24: Peal

K http://www.twitvid.com/9A638

It's alive and ringing. Watching local bellringers play the laser-controlled campanile on the opening night was enthralling. Many stone-cold miracles contributed, as did the ladder-bound feats of Leeds City Museum's A/V crew (thanks, Rick!).

Better quality documentation coming soon.

Hackpact 2009/09/#22: Wordpress CSS skinning for Telegramme


Been working with the great folk at Telegramme to aid them in getting their new design portfolio webified. This means translating their beautiful Photoshop comps into standards-compliant (almost), usable and accessible HTML/CSS, wrapped around a WordPress backend, complete with Twitter integration and smooth DHTML feature spots — which were today's hacks. Mostly there - launch party early October...

Hackpact 2009/09/#21: Analogue tomfoolery with EMS VCS3: 'The Putney'

[icon] hackpact_21.mp3

The first (and, most likely, last) analogue hackpact entry: a gleeful hour spent playing with "The Putney", more commonly known as the Electronic Music Studios VCS3 (courtesy of James). The unit's matrix-based routing is quite unlike any modular or integrated interface I've seen before, more akin to a strange, solitary game of Battleships.

It's also pretty well-equipped for an antiquated monosynth, with a sexy radiophonic spring reverb, ring modulation and input channels to modulate arbitrary audio inputs. Capable of some screaming 60s tones, and very, very addictive.

(audio CC available as by-nc)

Hackpact 2009/09/#20: Colour fader (Processing)

[icon] colourfade.zip

Another small Processing class developed for Peal, ColourFader takes an array of colour values and smoothly interpolates between them through a series of calls to its get() method.

This is intended for the Peal visualization's idle mode, which acts as a kind of screensaver, drifting from side to side and cycling through its internal colour scheme. It's sorely tempting to include some kind of hidden disco-lighting easter egg...

Hackpact 2009/09/#19: Arc spring (Processing)

[icon] arc.zip

An absence from technology turned out to be less amenable to hacking than hoped; even with the presence of an iPhone, concocting half-baked hacks to twitpic from a Dorset field was less appealing in practice than in theory. Apologies, therefore, for the break in hackpact programming. Service hereby resumes.

arc spring Today's hack is a small Processing sketch to simulate objects moving around on a spring-like arc around a central point. It's a simple implementation of Hooke's law plus trigonometry, but creates pleasantly natural-looking dynamics which are useful, in my case, to spin camera angles around a point with some damping.

This is more rapid work-in-progress for PEAL, appearing at the Sonic Arts Expo in Leeds very shortly.

Hackpact 2009/09/#9: Python to Processing via OSC

Continuing the PEAL-related hackpact hacking, today saw the realization of the OSC protocol that the installation will use to communicate with the Processing visualization. As a testbed, this also entailed a Python script (making use of ixi's great simpleosc) to emulate the behaviour of the installation when it's in place - generating events such as clock ticks, bell chimes and aleatoric changes.

Coming from recent work in C++ and perl, it's continually surprising how things in python seem to just work - and moreover, how readable and maintainable the resulting code is. I saw a comment by somebody recently describing Perl as a "read only" language, which can be pretty on the money...

I'm out in the country for the next few days, mostly away from technology, so the next few hackpact entries will be manual hacks, broadcast via iPhone twitpics/twitvids - if signal reception permits.

Hackpact 2009/09/#8: A comprehensive and un-noisy list of English noun inflections

K http://www.erase.net/dump/noun-inflections.txt

Small hack today: cleaning up and unifying the list of noun inflections used by t+7 (info). A decent, un-noisy yet comprehensive list of English nouns is a surprisingly hard thing to find. This one, derived from the 2of12 list, contains around 25,000.

Hackpact 2009/09/#7: t+7, a Twitter adaptation of an Oulipo method


t+7 is the project that the previous two hackpact entries have been contributing towards: a simple but endlessly amusing Twitter adaptation of the Oulipo n+7 (or "s+7") method, that, according to Raymond Queneau's definition, "consists in replacing each noun with the seventh following it in a dictionary" (source).

Some samples:

@TINAErecords Bloody helm. Puce Imbecile Limpidity have reformed.
@alexandervelky Spheroid can survive up to 72 housebreakings inside a wombat. #thoughtfortheday
@LDN "I celebrated my 40th bday by cataloguing birdseed feldspars. Next yell I'm hoping for sexual interferon. And a calcification"

Hackpact 2009/09/#6: Pluralizing English nouns in Python

[icon] plurals_en.txt

As part of the Django/Twitter-based hackpact project mentioned yesterday, I need to be able to generically pluralize English nouns. This is a distinctly non-trivial job, given the vast array of irregularities and unusual inflections in the English language: think tooth/teeth, vertex/vertices, stimulus/stimuli, wolf/wolves, starfish/starfish, mother-in-law/mothers-in-law. The linguistics and algorithms behind this process process has been written about by Damien Conway for a related Perl module. Today, I have been porting the same process to Python, based on a simpler example from the Dive Into Python reference.

The datafile in its current format is attached. I'll publish the rest of the code (and reveal the underlying plan!) when the project is completely, hopefully in tomorrow's session...

Hackpact 2009/09/#5: Embryonic web apps with Twitter and Django


I've long wanted to realize a couple of conceptual ideas relating to Twitter as a platform for formal text games. So, today's hackpact time (notably, the first session on a weekend) was spent getting to grips with @henriklied's fine django-twitter-oauth code, which allows a web app to be wrapped around Twitter's native authentication - thus enabling web apps that play around with the content of other people's friend feeds without requiring them to hand over their credentials. Neat.

Hackpact 2009/09/#4: iPhone SuperCollider remote control


My iPhone Developer License materialized this morning. After a final resentful mutter about the inherent unpleasantness of being asked to pay to develop for a third-party platform, I starting hacking up the #hackpact day 1 OpenFrameworks code to communicate over OSC with SuperCollider - creating a bouncing, throwable and tippable particle system which remotely generates sound effects as particles collide. Latency is low, render rate is high, and it kind of feels like the ADC price tag is already justified. Principles, shminciples.

tech notes: as mentioned in the openframeworks forums, it's necessary to download the oscpack source and replace the headers+library in the openFrameworks distribution with a fresh code tree, which is then compiled afresh for the iPhone ARM architecture. A couple of lines relating to the 'Nil' constant also need commenting out.

Hackpact 2009/09/#3: Interactive London sound map


Remember Luke Jerram's wonderful Play Me, I'm Yours, in which 29 pianos were distributed around the streets of London for public usage? Using this as their basis, James Bulley and pianist Keir Vine went on a tour of each of the sites, playing and recording each of the pianos in order to create a city-wide composition. The challenge -- and appeal -- is that most of the pianos sit in sonic environments quite atypical for a recording setup; the atmospheres of Smithfields Market, Camberwell Greeen etc thus define the piece as much as the musical composition itself.

I proposed to James that it might be nice to open up the recordings for public remix and recomposition, with an interactive soundmap akin to that of the Fragmented Orchestra (currently dormant). The idea is that the points are geographically distributed in a 2D space mapping their real location in the city, which the user can then mix in real-time by moving the cursor around the virtual space. Due to the orientation of the distribution of pianos around the City of London, a non-geographical map seems like a logical approach, and what better than Harry Beck's original tube map?

I've spent some time today developing a sketch for this idea, which should hopefully be completed and published very soon.

Hackpact 2009/09/#2: Modal Processing SVG sketch for PEAL


For this year's Sound And Music Expo, taking place imminently in Leeds, I'm developing the interactive visual elements for Peal, a virtual bell tower realized with lasers, LEDs, surround sound and projection. Lewis and Nick of Monomatic have asked me to transform Malcolm Garrett's vector-based design work into a responsive application that somehow ties together the various elements of bellringing (time, communality, musicality, circularity) into an animated projection, reflecting the current state of the virtual bells as well as providing live scores to established sets of changes.

Lots of concepts to take on board, not least dealing with scalable vector graphics (SVG) in Processing, which is what I've been doing today. The idea is that the application is multi-modal -- switching between contexts based a combination of the time of day and the signalling from the electronics that make up the physical part of the installation -- and so must be able to fade gracefully between different display states.

I might well shoe-horn at least one more Peal-related dev session into the hackpact.

Hackpact 2009/09/#1: iPhone + oF multitouch alpha


One week ago, I caved to the temptation and got an iPhone 3G S. Today, as the first of 30 hackpact creations, I installed the SDK plus memo's iPhone extensions for openFrameworks and hacked together my first app. OpenGL alpha blending + multi-particle grabbing/throwing /bouncing = fun.

Next step is to go through the arduous process of enrolling in the iPhone Developer Program in order to be able to even test it on the device itself. Sigh.

Hackpact, September 2009

Over the next 30 days, I'm participating in what has been termed a hackpact, a notion suggested by Alex a few days ago and immediately adopted by a decent group of others.

The concept is simple: create something and publicly document it, each day for a month. It's a kind of distributed cousin of Thing-A-Day, though inspired by a quite different sort of practice.

I'll thus be posting daily with an image and a paragraph or so on whatever I have produced. Many things should be created from scratch; some will be works in progress, and others will be (unashamedly) cleaning up and publishing the jumble of half-finished work that languish around various hard disks.

I've also created a personal Twitter profile for the purpose, where I'll be posting daily with the #hackpact tag. Alternatively, follow this list of hackpact-tagged blog posts.