NodeBox is paradoxical. The design-time UI has rich interactivity; you can zoom and pan in both the view and network panes to your heart's content. But it is difficult to interact in the same way with the things you make in NodeBox.
I am particularly interested in allowing users to drag over my creations and have them react. In fact I'd like to start a NodeBox file running (playing), put it in fullscreen, hand it to an end user, and watch her interact with it. You can kinda sorta *almost* do this in several (somewhat bizarre) ways:
- Drive an animation with frame nodes. The user can then scrub the frame counter below the viewer pane to simulate a limited drag animation. Can't do this in fullscreen.
- Use the experimental mouse node. Sadly, this node detects position but cannot tell if user is pressing down on the mouse (as far as I can tell). With some ingenuity it might be possible to initiate a drag by simply hovering over an area for a fixed amount of time but this is both tricky to implement and awkward for the user. Even sadder: mouse doesn't work at all in fullscreen.
- Use the freehand tool. Unlike the mouse node, it can recognize when the user is pressing down on the mouse. It only adds to its path when the user drags. By colorizing with a transparent fill and doing lookups on the most recent point in the path it is actually possible to drag things with the freehand tool. But you will create an enormous ever-growing invisible path in the process which is bound to cause trouble sooner or later. And it doesn't work in fullscreen.
- Use the NodeBox UI. Create a small rectangle and rename the node "Cursor". Hit play and then select the Cursor node in the network pane. In the viewer pane, move the real cursor over this fake cursor and drag it to reposition the rectangle. By continuously detecting and responding to the position of the fake cursor you can drag other elements around. But "picking up the cursor" is a strange interaction for end users. And, like all of these techniques, it doesn't work in fullscreen.
So near and yet so far.
I realize that NodeBox was originally designed for output, not input. But in my work I see a steady progression from GUI to NUI, from static visualizations to animated visualizations to interactives to multi-touch interactive to "living systems" where objects exhibit complex behaviors and obey physical laws when responding to user interactions. I can only go part way on this journey with NodeBox. But with just a few tweaks, NodeBox could be as powerful at input as it is at output.
A few questions for the staff:
Are there any plans to make a mouse node that can report the state of the mouse button (via a lookup) so I could implement drags? Is there already some (possibly device dependent) Python code I could plug in to do this?
Why doesn't mousing and freehanding work in fullscreen? Is this just a bug or a more fundamental design limitation?
Do you have a roadmap for allowing fullscreen "runtime" interactions? Multi-touch interactions?
Thanks for listening,
|?||Show this help|
|ESC||Blurs the current field|
|r||Focus the comment reply box|
|^ + ↩||Submit the comment|
You can use
Command ⌘ instead of
Control ^ on Mac
Support Staff 1 Posted by Frederik De Ble... on 28 Feb, 2015 12:21 PM
All excellent questions! We haven't been developing interactions further in NodeBox since it's difficult to publish the work once you're done with it.
That's why we've started development on a web-based version of NodeBox, called NodeBox Live. This will let you use all the rich HTML5 API's that you're used to in the browser.
The version is currently in private beta. If you're interested in testing, I can send you an invite.
Support Staff 2 Posted by john on 28 Feb, 2015 12:50 PM
Thanks, Frederik. You already did invite me, but I haven't had much time to explore NodeBox Live yet. I see that I can embed a NodeBox project in my own web page, but have not yet tried to access any rich HTML5 APIs.
Will nodeBox 3 be retired once NodeBox Live goes live? Or do you plan to keep evolving both in parallel?
Support Staff 3 Posted by Frederik De Ble... on 28 Feb, 2015 02:01 PM
> Will nodeBox 3 be retired once NodeBox Live goes live? Or do you plan to keep evolving both
> in parallel?
We’re not really sure yet, it depends on the usage patterns. We’re a small group, so we have to carefully manage our time.