Creating a user interface that allows user to connect nodes together with lines

discopatrick's icon

I want to create a user interface that allows users to have a number of nodes on screen, and to connect them together with lines. It eventually needs to be touch screen capable. I've been using Max for 2.5 years but I've never attempted such a grand interface and I'm wondering if Max is the right tool for this.

You may notice that what I'm describing is the very essence of Max - connecting objects together with patch cords - however, this is only possible in Patching Mode. I need to be able to lock my patch, switch to Presentation Mode, build a Collective/App, and *still* allow the user to create new nodes, drag them around, and connect them together with lines.

For an example of what I mean, check Audulus for iOS. Skip to 2 mins to see what I mean: http://youtu.be/F0CABeSH76E

I've found the [nodes] object in Max. That gives me the nodes, but not the lines.

Is there another object I can use?

Is there a way to do it with a collection of other objects?

Can it be done with Lemur, Touch OSC, or similar apps?

Do I need to write an external?

Or should I just jump into iOS development or some other suitable platform?

I know C#, JS, PHP and Python. And I reckon it's about time I had another crack at Objective-C. Also, I like the look of Vuo (http://vuo.org), currently in beta, which seems to include UI building: http://vimeo.com/95514963

to_the_sun's icon

One way to do it might be to draw the lines in a jitter matrix.

to_the_sun's icon

Or the [function] object could be easier.

Ernest's icon

It sounds like you could be interest in Juce from Raw Material software. It prpvides an object doing what you want, although it may not have the features you want.

It also is not so difficult to draw lines in Max yourself though. You can make the background of the nodes object transparent, an draw lines with the lcd object, for example.

vichug's icon
discopatrick's icon

Thanks for the suggestions all.

Mr Matrix looks good. I assume there is a function object behind those boxes that are being dragged around.

I like the look of Juce too.