Kategoriarkiv: Processing


Graphs, triagrams and national strategic foresight panel

I had another really meaningful meeting with former GapMinder staff Jörgen Abrahamsson and Professor Jonas Löwgren at Medea, Malmö Högskola this tuesday. Jonas documented it really well and put it up here, including a video where we all speak swedish to the pretty pictures :-)

I was really baffled by Jörgens triagrams and their simplicity and look forward to get going on showing some quadragrams together with Jörgen soon. Bertin keeps coming up as a fundamental I still haven’t caught up on.

The feedback on the experiments on the graphs I played with using Jung incorporated in Processing was good and healthy. I really need a good real-world case to test my gut instinct on the effectiveness of my twisting the algorithms. I still feel there is something really good is lurking in them.

The strategic foresight panel Jonas spoke about gives me hope for some good government funding for visualization in general in sweden and hope they keep their good work going.


Processing JS – 1.0 arrived – including 3D

I thought I would post my progress on graphs during the summer but things took another direction. At least I got a picture for it. I will write more about that and marrying Jung with Processing later. Picture is NOT ProcessingJS. It sure could have though.

Because tonight I was amazed to see that ProcessingJS came to 1.0. Including the 3D! I cannot express what this means.

13 years ago I bought this book ”Teach yourself VRML2.0 in 21 days”. I thought I would rock in three weeks time, but it never happened. The browser plug-ins that rose, crashed and burned finally killed my interest in 3d on the web. Tonight I start to wonder if the dream is about to wake again. By using Javascript, HTML5 the people at ProcessingJS got something amazing going. WebGl is needed however, but this is included in all the major browsers coming releases. So not to worry about that. I look forward to experiment something real out of this as soon as time will let me. Importing 3d models is not really going to happen anytime soon unless someone writes a cool thingy soon. So back to handwriting the models again and using generated basic models in the meantime.

Amazing times we live in.


Inspiration – I

Just a simple thing as learning it all: http://processing.org/learning/

The wonderful books http://processing.org/learning/books/

The inspirational work of others http://processing.org/exhibition/, http://www.openprocessing.org/, http://www.vimeo.com/tag:processing.org, http://www.youtube.com/group/processing

The endless discussions in this excellent community where even boring problems becomes fascinating http://processing.org/discourse/yabb2/YaBB.pl

Experimental solutions come into light http://processing.org/hacks/

Processing has inspired me more than any other platform so far, apart from typography in general. Processing stands for creativity in the rawest of formats. Amazing, inspirational, mindbending, attention altering and simply wonderful.


Project Visual Enterprise


Some words about this project since it is about to come to public attention anyway through a European Union connected exhibition (For the Moment) that is going from Stockholm, Sweden, Malmö, Sweden (for the closing of the swedish chairmanship of EU) and to Mirano, Brussels (swedish embassy). Visual Enterprise is shown in the company of 45 other swedish companies with mainly ”designed” products (SonyEricsson, Axis, Källemo, Jonas Lindvall, TRETORN etc) promoting swedish innovation and creativity. Yay!

Project Visual Enterprise purpose

The purpose of the project is to create a visual, interactive visualisation of the complete Enterprise and its business logic. This means to show everything an enterprise consists of, from products, people, organisations to relations and processes and more. We use several different visualisation techniques, some traditional and some more innovative. We aim to show the complete Enterprise to different kinds of users. The user can reside in different organisational levels within the organisation and thus have different needs for information. We are sketching CEO Dashboards as well as views intended for information details for the individual from several perspectives. The Visual Enterprise is detached from the even bigger visualisation concept – the Corporate Command Central which includes hardware and innovative user interfaces.

The Visual Enterprise Project is limited to the visualisation of the Enterprise and its business logic.
The focus is the ability to derive knowledge and comprehension from the visualisation. We want to understand the nature of the complete enterprise and thus allow for decisions to be made based on facts rather than instinct or complacency.

Filling the demand

Demands from the market
The overview of the complete enterprise is missing. There are methods, like a Balanced Scorecard, of controlling an enterprise from  top management in an overview manner, but no means of following the development in the enterprise that reflects the events in reality for the enterprise. The present available informationssystems (Qliktech, SAP, Hyperion etc) and techniques focuses mainly on one kind of information, whether it would be categorised as transaction data, subarea data (GIS, Product portfolio management, performance information etc) for the enterprise. These systems tends to increase the fragmented image of the enterprise, increase complexity in information retrieval and increase the dificulty of comparison of information coming from different systems rather than simplify the intended situation. Our focus would be on the complete picture – in historic, present and future contexts. This in combination with overflow of unstructured information makes swedish industry and corporations vulnarable and limiting the competitive advantages the enterprise possess.

Three main demands:
• Complete picture: multidimensional information, informationstructure, historic data, all information areas – overview and details in conjunction.
• Time: covering past, present and simulating future
• Managing the evolution of the enterprise in realtime


The long term competitiveness of the swedish (and international) businesses is affected by the capabilitiy of running, maintaining and surveilling todays informationsystems. And in its extension follows the capacity for decisionmaking supplied by the informationsystems.

Visualising the complete enterprise is the only possible way to perceive and digest the enormous amount of critical information, derived from the complete enterprise, needed on a daily basis. The visualisation is aimed for multiple roles in an enterprise. Individual needs for perceiving information is vital and implies multiple visualising techniques of the enterprise’s information.

Download pdf with more images and some details here.


Transparent application window in Processing


The transparent window or shaped window was supposedly not easy to do. I found that by tweaking in the awt of Java it worked kind of as I would like it to do. On Windows XP. NOT on MacOSX. Also the shaped window which is demonstrated here. If labbed with some more you should find that you could do pretty much all you want to do, by tweaking the shaped window or tweaking the setOpaque or setOpacity which is two different things. Depending on what you want to do and depending on platform.

Note! This code does not work on MacOSX. Due to different Java implementations I guess. AND it’s hackish. No exception handling and there is alot of stuff that can go wrong I guess.

UPDATE! December 10 209, the java implementation was updated on MacOSX 10.6, to the current version available on windows. Nice and all, but the problem persists. Hmm. AWT? Workaround on the mac?

Read more on the subject right here:


Heres the code I got working on Windows XP:

import com.sun.awt.AWTUtilities;
import  java.awt.GraphicsDevice.*; // PC only
import java.awt.Shape;
import java.awt.geom.*;
import javax.swing.*;

public void init(){
// to make a frame not displayable, you can
// use frame.removeNotify()


// addNotify, here i am not sure if you have
// to add notify again.
//  frame.addNotify();
// frame.removeNotify();

void setup() {
size(200, 200);
frame.setAlwaysOnTop(true); // Alltid på topp
AWTUtilities.setWindowOpaque(frame, false);
AWTUtilities.setWindowOpacity(frame, 0.9f);

Shape shape = null;
//shape = new Ellipse2D.Float(0, 0, frame.getWidth(), frame.getHeight());
//shape = new Ellipse2D.Float(0, 0, 200, 200);
//  shape = new RoundRectangle2D.Float(0, 0, 200, 200, 20, 20);
//shape = new Polygon(int[] xpoints, int[] ypoints, int npoints) ;
int[] myXes = new int[4];
int[] myYs = new int[4];
shape = new Polygon(myXes, myYs, 4) ;
AWTUtilities.setWindowShape(frame, shape);


void draw() {
setBackground(new Color(0,0,0,255)); // should work with normal background(255) command
//  frame.setVisible(true);

fill(255, 0, 0, 255); // the alpha is not in play at this point – but it come into play when doing per-pixel translucency
rect(23, 23, 54, 54);