I notice that the image() function is missing in version 3 and the Core Image library is only available for OS X. So how do you import bitmaps in Windows?
The new NodeBox forum is live! Everything from support.nodebox.net moved here: sign in with the same email to pick up your old posts. Something not working? Write to forum-support@nodebox.net.
NodeBox 3From the old forum
How to import images
-
-
NodeBox team You can't. NodeBox 3 doesn't support images at the moment.
There is an "image stat" node coming that allows you to pull colors from an image and then visualize them using rectangles or ellipses.
Image support is planned for sometime next year.
F
-
Hi Frederik,
I thought I would reopen this old feature request: I really REALLY need an image node for NodeBox. It's surprising how often this comes up. I'm in the midst of a project right now that's just killing me because of no image support.
The image node should just have ports to input a JPEG or PNG file (either one would do) and provide a position and a width/height to size it. It could behave as a little more than a rectangle. All I really need is the ability to size and position it.
I think you already added this to NodeBox Live - yes? Adding image to NodeBox 3 would be a big step towards an eventual consolidation and would breathe new life into NodeBox 3. I think its been on your to-do list for at least five years.
Please at least consider it.
Thanks for listening.
John
-
NodeBox team I agree that it would be super-useful to have this working. I have no intention of abandoning NodeBox 3, but I think we will have to make some technical changes so that we can share more code between NodeBox 3 and NodeBox Live.
There are two technical solutions to this:
Low-level approach
Build a native, underlying set of libraries that can run on desktop and the web (and also, while we're at it, on mobile). Start from the "lowest common denominator" — a language that can run everywhere, and that can compile to desktop/mobile/web.
Currently, the two strong contenders for this are C++ and Rust. Both offer excellent support for all platforms, with C++ of course having a proven track record on basically any platform. Rust is quite new, but already in use at Mozilla and running in Firefox. It's safer than C++, so opportunities for multi-threading and future performance benefits are possible. To compile for the web, both can target WebAssembly, which is a binary format that runs natively in the browser.
As you know, NodeBox is not written in C++ or Rust, so this would require a big effort to port all underlying code. Once that's done however we could target more platforms in the future.
High-level approach
Basically, JavaScript. This would mean that we could use NodeBox Live code as-is, and provide a native wrapper (e.g. Electron) around that.
I seem to remember that this is not your favourite solution, but of course NodeBox 3 right now is also not native, running through Java's Swing GUI library. However, with enough careful attention to detail, it is possible to create an excellent desktop application with JavaScript.
On mobile, JavaScript is also supported (e.g. through React Native) so there are opportunities there as well to have NodeBox run, although I'm not sure about the performance.
I'm planning on taking some time in the coming months in exploring both avenues, and seeing which one is the most viable.
Don't feel obliged to comment on the technical stuff: this is just me brain-dumping my ideas and thoughts that have been playing in my head for a long time.
-
Hi Frederik,
Thanks for the brain dump. Interesting as always. You had some similar musings back in 2015:
https://forum.nodebox.net/t/15455691/the-origins-of-nodebox-3
Your dream of a grand reunification is ambitious. My vote, whether high or low, is for a native IDE that can export HTML interactives. I say "native" because I dislike web-based IDEs (but would love to sketch networks on my iPad Pro). I want to maintain the simplicity and fluidity of the current desktop experience. I say "export HTML" because at the moment that seems the most generic way to share interactive visualizations. I want to export D3-like interactives that let end users drag sliders or tap filter buttons or pinch-zoom into ZUIs.
But all of this may take years to realize. In the meantime, wouldn't it be cool if you could squirt out a quick image node for your loyal NB3 minions?
Just say'n.
John