David's Avatar


26 Feb, 2014 11:45 AM

Hi there,

First of all, I discovered Nodebox only a few days ago and must say, I am a big fan. I have been using grasshopper for rhino for a few years now and really enjoy your tutorials because they rely much more on data imput. Grasshopper having a python component, it could be interesting to see a porting of nodebox into grasshopper :)

Any ways, my situation is this:

To start understanding workflow in data visualization, I followed the zipmap tutorial. I then moved on to try to work out how to take it from the last point of the tutorial to the example with the colors (in the given examples/topic section).
After a lot of head scratching, I kinda got my head around zipmapping and tried to write the example on my own. I came up with a visual that in my mind makes more sense than the one your example comes up with :

In the CSV file, the list is organised by frequency per album, so one album follows the next one. In my visual this clearly shows: all the words in the circle follow that list so one year/album point creates a regular fan to its section of the circle + a couple of other strings that dont fit into the fan because duplicates have been removed. In your example however, the points appear to connect much more randomly with their allocated words in the circle. Looking at the nodes, I don't really get it as it seems that we followed the same zipmapping process.

Hopefully you can make sense of what I am saying and tell me what I am missing or not understanding properly.

PS: I added a count to your lines and it ends up with 360, I cant make a sense of that number too since the list is 442 long or 248 without the duplicate words.


  1. Support Staff 1 Posted by lievenmenschaer... on 27 Feb, 2014 12:10 PM

    lievenmenschaert's Avatar

    Hi David,

    i had a look at it. The dataset contains 360 words, 40 most used for each of 9 albums. The distinct list keeps 210 unique words. Our example is constructed so that each word get's connected to the album but from a specific location (the distinct wordlist zipmapped over points in a circle). Some words have appearances in more than one album. In that way if you count the lines it's only logic to obtain a total amount of 360. (or the original amount of the set).
    The order is random because it bases it's points on the unique words and not the original list.

    I saw i the examples you have send that you refer to an other dataset. Maybe open the example in the examples browser to see the set that i am talking about.



  2. 2 Posted by David on 27 Feb, 2014 02:31 PM

    David's Avatar

    Hi Lieven,

    Thanks for the prompt response. I did swap the dataset from the web tutorial (with the 442 words) with the one from the given examples (with the 360 words). It did come up with the same fan-like pattern, so I went through both nodebox files point by point and correct me if I am wrong, but I think I might have picked up on a misconnection in your file, leading to your pattern to become random.

    I compared the table with all the words against the distinct words table, and it seemed to remove duplicate when it finds them, without changing the order of the list. Which means that the list should still follow one album after the other.

    However I found that in your example, the second lookup node's key is connected to the distinct album list (with only 9 items) where my version is connected to the lookup node the the 360 entries.

    Which means that your line drawing connects 360 word points with 9 album points, when I have 360 overlapping album points (I checked the count entering the line node). My question is this, How does the drawing node know which word to connect to which album, if both list have different sizes ?

    If I rewire your example to follow mine, it comes up with the fan pattern as well (which in my mind still makes more sense). (see wiring A, wiring B)

    What I can't explain is that both patterns show the repetition of the same words (you, what, don't, etc..), as an infographic, surely only one version can be right, no ?

    PS: This is unrelated, but you can see on my screen shots that the app doesn't really scale on a new QHD display (3200x1800) which makes it hard to use. I reckon that a setting to allow custom font size in the top right box, and an unlocking of the zooming ability within the nodebox, would make an easy update ad greatly improve the user experience for windows users on new generation displays (it's a common problem, adobe struggles with it too atm).


  3. Support Staff 3 Posted by lievenmenschaer... on 27 Feb, 2014 03:53 PM

    lievenmenschaert's Avatar

    Hi David,

    I see the mistake i've made. I must have overlooked it but I will change it
    in the examples. It should go from the lookup node and not the distinct
    list as you mentioned, Otherwise list matching will create a totally
    different result as intended.

    So in response to your question 'How does the drawing node know which
    word to connect to which album, if both list have different sizes ? >> it
    doesn't. NodeBox matches the two lists based on the number of elements in
    the longest list.

    list matching concept:

    As for the QHD display, i will talk about it with the team and let you know.

    Thanks for reporting this!



Reply to this discussion

Internal reply

Formatting help / Preview (switch to plain text) No formatting (switch to Markdown)

Attaching KB article:


Already uploaded files

  • My_example.png 1.3 MB
  • Your_example.png 859 KB
  • My_example.ndbx 5.97 KB
  • Your_example.ndbx 5.29 KB

Attached Files

You can attach files up to 10MB

If you don't have an account yet, we need to confirm you're human and not a machine trying to post spam.

Keyboard shortcuts


? Show this help
ESC Blurs the current field

Comment Form

r Focus the comment reply box
^ + ↩ Submit the comment

You can use Command ⌘ instead of Control ^ on Mac

Recent Discussions

23 Feb, 2024 07:39 PM
23 Feb, 2024 10:02 AM
22 Feb, 2024 05:51 AM
21 Feb, 2024 05:27 PM
21 Feb, 2024 04:49 PM


16 Feb, 2024 05:24 PM
06 Feb, 2024 04:45 AM
19 Jan, 2024 09:50 AM
13 Jan, 2024 03:47 AM
05 Jan, 2024 05:10 PM
05 Jan, 2024 04:54 PM