Hacker News new | past | comments | ask | show | jobs | submit login
Nodes – JavaScript-based 2D canvas for computational thinking (nodes.io)
263 points by uptown on July 23, 2019 | hide | past | favorite | 53 comments



All: the point about the name has been made by several commenters. I'm sure the developers will see it. Please let's focus on more interesting things now.


"Visual programming tools are as old as computer monitors."

That's an interesting statement. I always assumed they were much older -- and that the current detour into 'lines of ASCII text' were a mere implementation detail, driven by historical accident.

This[1] sure looks like a simple dataflow program to me, even if Gauss never intended it to be implemented on a von Neumann machine.

I hate writing programs as text, but unfortunately, "text is the universal interface" right now. It's easy to save, and diff and patch, and edit. There isn't a general-purpose format for saving graphs, diffing/patching them, or a decent selection of editors for them.

In 50 years, I'm sure we'll look back on today's programming the same way we now look back on the pre-visual-editor era. You had the technology to create general-purpose graph editors, but you didn't have or use any? Why not?

[1]: https://en.wikipedia.org/wiki/Cooley–Tukey_FFT_algorithm#/me...


No arguments here. We should move away from text into more visual domain, but we lack a polished editing tool. Every visual programming language brings own tools, incompatible with each other and lacking basic features.

Here's my wishlist: completely keyboard-driven; automatic graph layout; constraint editing to tree/DAG/full graph; don't allow connecting incompatible types; declutter by showing only N neighbours from current node; support for extensions to integrate different programming languages. Sure it's a tall order, but this is the building platform for future of computing :)

Since this thread is about Nodes, I'll try to give some constructive criticism. Seems like too much manual work is needed to organize the code on screen. Non-trivial programs become entangled because of 2D plane constraint. It's somewhat unjustified criticism though, since text programs also require lot of manual arranging ("architecture") and easily become hard to read. I like the built-in visualization of processed data. Cool stuff.


They beauty of Nodes is that we are not limited by layout or connections. We have successfully used redux for centralised state management with change triggers distributed down the graph.


As far as I can tell Gauss didn’t ever make a picture like that ...?



Wishing there were a lot more node based coding options than just MAX/MSP, Pure Data, Quartz Composer (RIP).

Bit disappointed theres so much information and even a UI history then no download button just a sign up form though.


Also RIP to Shake by Nothing Real, then bought by Apple and killed.

One of the best node-based creative environments I've ever used.


Shake was the best of its time, but nuke is much better than shake ever was and touch designer is much better for real time experimentation.


Rhinos Grasshopper, Revit Dynamo (BIM), Houdini all have similar node based editing. Generally it works great in concept, and then in the real world is gets pushed to the extremes.


I’ve done a decent amount of work with Isadora (node based VFX environment), and by the time I make anything actually complicated I end up wishing I could just write it in one of the many exiting tools we’ve built for describing data flow. (Programming languages)


Had a look at touchdesigner?

https://vimeo.com/122273236


You definitely have the blender look down.

Looks really nice. Will certainly take a look. Independent of data visualization, I could imagine it being great for general business workflows like some classic flow engines tried to model, but failed to give control to users.


I've been making something very similar to this while I've been looking for a job. A node-graph editor 'framework' in react. It's not as far along as yours, and looks a little different.

My github has hitherto been empty, but my plan is to open source it in a few days when it's at MVP status. Maybe that'll make me look more attractive to perspective employers. Over a decade of experience hasn't kept my resume out of the void it seems.


Please share the link if you publish it


Cool! I've been wanting to play with Flow-Based Programming and related stuff for a while so I'll definately give this a look. Could someone however explain to me the difference between "node-based" (the term used here) and "Flow-Based" Programming? It seems like the sentiments are pretty similar but perhaps I'm missing something.


Hi, one if the authors here. Happy to answer any questions.


Has anyone looked into using this (or a similar tool) for financial modeling? Seems like this has a lot of the "no programming" aspect of spreadsheets while allowing for a more intuitive approach to visualizing how the data flows in a financial model


Does it have a means for outputting things like image files or 3D models, or only packaged apps? Also, is there audio support? And what's the pricing model going to be like?


We have nodes for saving high-res png/jpg images, image sequences for animation/video up to 4k, obj/gltf meshes, csv/json for data and so on that we used for various projects in the past.

We will have more news about availability at a later date.


Any plans to have it generate GLSL?


I have used it for shader graphs and shadertoy like raymarching scenes.


Do you have plans to make a full programming language? if so are you working on a open standard for save file?


No need to invent new file format at the moment. Each node's code is just plain CommonJS module and graph structure is serialized to JSON.


What's with all the screenshots, videos, and PDFs? Why not simply use canvases as you describe?


Anyone know of a framework for building out tools like this one with our own blocks? I have a use case for an internal tool to enable constrained configuration builds.


I have a framework that does this. Send me mail at tyleo@devev.com if you are interested.

https://m.imgur.com/a/zLS1g0t


>*(not to be confused with node.js)

Searching for anything about this project will be a nightmare. It's not too late to change the name.


Agreed.

I think the moment you have "not to be confused with" listed anywhere on your homepage, it's probably time to change the name, no matter what you're building.


I'm hoping it is intentional, just to mess with people confused with nodejs.


How about "knodes"?


That sounds like a mix between nodes and the german Knoten. I like it, it's just a small change but would definitely reduce problems.


Go Greek I say: κόμβους

kómvous

or k5s!


This almost begs for some solution where you could buy names previously checked by the system to be appropriately uncommon.


Node.js isn't some niche project in the Javascript space that they accidentally collided with.


Just search Github for existing projects. Easy.


Doing this will likely exclude a lot of perfectly suitable names: a name needn't be a uuid, just distinct enough from well-known names.

That's hard to tell in GH search; stars only give a good indication for very popular projects.


This looks really cool. It's like a javascript version of Quartz Composer. This kind of interface has been in my mind for quite some time, there's some really cool things that can be build and visualized in it.


This looks amazing but the performance is a bit worrisome being entirely in JavaScript / web based; if you've ever made a complex Max patch using the native app, it is incredibly memory intensive. Maybe with all the improvements / sick libraries we have now with 3D, audio, processing, etc. will make that moot; but laptop fans go wild on Max (which is mostly Java)..


Memory intensive apps in JS are largely OK so long as they use proper typed arrays and buffers. Besides, looking at the examples, there's a lot of WebGL going on in the outputs so it's not really JavaScript.


I'm glad this exists - I was looking for a replacement for Moonbase (discontinued): https://www.theverge.com/2012/12/19/3783616/animate-your-mem...


This looks great. We can always do with more design tools, especially built on web platforms!


This looks - awesome. I'm trying to think of something more constructive to say, some questions about the processes and outputs ... but I'm too busy being jealous at the moment to think of anything.


Eve, Programming designed for humans: http://witheve.com/


I used to maintain a set of bookmarks where people just complained about the name of a thing on HN. It seems like a really consistent theme for people who don't have much substance to contribute to threads. Any chance you could make it one of the disallowed/off-topic things?

I have never seen a developer respond to the comments with "Oh gee, you're right, I totally forgot about that, time to rethink the name!"


We could try, but I doubt it would have much effect—humans are always going to react to names. Also, we're leery of making too long a list of disallowed things, since making it longer dilutes it. Better to argue from first principles.

(We detached this subthread from https://news.ycombinator.com/item?id=20508860.)


Makes sense, thanks dang :)


I think there's nothing wrong with a moderator trying to stop too many threads being created with the same criticism (thanks dang!), but names of things can be very important from a branding/marketing perspective. If people can feel free to criticize other business/design decisions, I see no reason why they shouldn't be allowed to criticize names.


People are free to do mostly as they please. It’s been my observation that comments about names have been consistently non-substantive, and virtually never provide any insight into the content of the post. Most complaints are simply “X has this name already” - the author almost certainly knows this and/or it never came up because it doesn’t affect them.

I think complaining about aesthetics is pretty useless unless it’s constructive or about UX, but this isn’t my hill to die on :)


Not to pile on, but what an extreme lack of forethought to brand this thing "node".


They're going to be constantly explaining "No, it's not NodeJS". "No, it's not graph db nodes either." "Yeah it's kinda like graph nodes."

Way too much overload of that word.


I was just thinking that, hard to google anything about "node" and JavaScript together.


It is called "Nodes".




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: