My fascination for particle systems is endless – and no, not the fancy complex things producing “real” images – the simplest one :)
In my exploration of both Processing and particle systems I created a Processing sketch which augments a user controlled particle system on top of a world map. Below is a sample image of one potential output as well as the code and application.
Well, so what’s the point? I have no idea – but I’m still fascinated of the results for this. Inevitably I’ll have to find something useful application of this? Or maybe it the artistic contribution is enough?

Particle system augmented on a world map
Source and application
Instructions:
// MouseLeft: Add attractor (almost not visible circles)
// MouseRight: Start particlesystem
//
// Space: Reset
//
// s: save the positions in "positions_xx.txt" (OBS! Gets very large - very fast!)
// Enter: Save frame to frame-xxxx.png
Det virker som om nesten “alle” har et eller annet fokus på CO2 for tiden. Det er ingen hemmelighet at biler utgjør en stor del av utslippene (dog kanskje ikke mest.). Bilprodusentene bruker ihvertfall CO2-utslipp som salgsargument med tiltalende setninger som: “Kun 99 g/km” og lignende. I snitt opplyser Statens Vegvesen om at norske biler slipper ut 151 g/km. Men hvor mye utgjør egentlig dette?
Min idé var å lage et system som lå “på toppen” av de vanlige nettsidene for å finne kjørebeskrivelser – som for eksempel Google Maps. I systemet kunne brukeren ha søkt opp sin egen bilmodell og fått kalkulert et ganske bra estimat på utslippene assosiert med kjøreturen planlagt i fks. Google Maps. I tillegg kunne systemet gi brukeren et forhold til dette tallet ved for eksempel å visuelt vise hvor mye skog som skal til for å binde denne CO2′en.
Jeg søkte naturligvis litt rundt på dette og fant, ikke overraskende at datakilder på CO2-utslipp på biler er tilgjengelig, men ikke i noe lett form (i.e. pdf’er, statiske web-sider og lignende). Siden jeg er lat så orket jeg ikke gjøre en stor innsats videre med disse dataene. Selv om det bør la seg gjøre med litt screen-scraping.
Det jeg også fant i min søken etter data var at Islendingene allerede hadde lagd et veldig likt system! Det finnes på http://orkusetur.is/flex/calc/no#. Jeg mistenker dog at dette systemet dessverre ikke har fått en tilstrekkelig popularitet – kanskje på grunn av at det er vanskelig å finne i forhold til Google Maps, Gulesider og lignende?
Så ideen var ikke lenger fryktelig innovativ. Men som et slags lærerikt eksperiment prøvde jeg meg på å lage et Greasemonkey-script for en slags proof-of-concept. Jeg tror ideen har noe for seg, mitt utkast er kun en tidlig start og jeg oppfordrer alle som har lyst og evner til å forbedre det med fks. valg av bilmodell og visualisering! Scriptet finner du på: GoogleEmission.user.js
Kildekoden følger under og har CreativeCommons lisens på seg:
// Google Maps Norwegian average CO2 emission
// version 0.001
// 2010-05-24
// Alexander Salveson Nossum (alexander@nossum.net)
// Creative Commons 3.0 Attribution
// http://creativecommons.org/licenses/by/3.0/
//
// --------------------------------------------------------------------
//
// This is a Greasemonkey user script. To install it, you need
// Greasemonkey 0.3 or later: http://greasemonkey.mozdev.org/
// Then restart Firefox and revisit this script.
// Under Tools, there will be a new menu item to "Install User Script".
// Accept the default configuration and install.
//
// To uninstall, go to Tools/Manage User Scripts,
// select "Google Maps Norwegian average CO2 emission", and click Uninstall.
//
// --------------------------------------------------------------------
//
// ==UserScript==
// @name Google Maps Norwegian average CO2 emission
// @namespace http://blog.alexanno.net
// @description Simple script to calculate an average CO2 emission based on the driving directions from Google. Currently uses an average of 151 g/km.
// @include http://maps.google.no/*
// ==/UserScript==
GM_log("ran");
function parseAndWrite() {
var lengthContainer, newElement;
lengthContainer = document.getElementById('dir_title');
length = document.getElementById('dditd');
if (lengthContainer) {
var str = length.innerHTML;
var lengthValue = str.match("[1-9]+")
var emission = (151 * lengthValue)/1000;
newElement = document.getElementById('msg');
if(!newElement) {
newElement = document.createElement('div');
}
newElement.id = "msg";
newElement.innerHTML = "<div>Expected CO2 emission: <bold>" + emission + "kg</bold></div><small>(Based on average 151 g/km emission)</small>";
lengthContainer.parentNode.insertBefore(newElement, lengthContainer.nextSibling);
}
}
window.addEventListener(
'load',
parseAndWrite,
true);
document.addEventListener('click', function(event) {
parseAndWrite();
},true);