8 ms·
Rete: JavaScript framework for visual programming and creating node editor
- sls 7y agoApparently nothing to do with the Rete algorithm (fwiw). [1] [1] https://en.wikipedia.org/wiki/Rete_algorithm https://en.wikipedia.org/wiki/Rete_algorithm
- sansnomme 7y agoSee also: https://github.com/jagenjo/litegraph.js https://github.com/jagenjo/litegraph.js
- agumonkey 7y agoman, growing up with Maya and Houdini, making a node editor and dataflow engine was probably my ultimate dream
- emmanueloga_ 7y agoThere's also http://nodes.io/ http://nodes.io/ which is in alpha release state the last thing I heard.
- rapnie 7y agoAnd https://noflojs.org/ https://noflojs.org/
- speedgoose 7y agoThey should spend one hour to have HTTPS on their front-page though.
- dmnsgn 7y agoFixed.
- winrid 7y agoAnyone invest their time learning something like this and have it pay off? Interested in success stories I suppose. (Edit - I mean something more like nodes.io)
- brodo 7y agoNodeRed. I’m pretty good at it by now. We use it in our hackspace for home automation and at work for prototypes.
- pdm55 7y agoLink with video: https://nodered.org/ https://nodered.org/ It's an IBM side-project built for IoT.
- knolleary 7y agoThat's how it started, but it's now an independent project of the OpenJS Foundation. And it isn't limited to IoT - it can be used for any event driven application. (Disclaimer: I'm the creator and project lead of Node-Red)
- mileycyrusXOXO 7y agoI made anither comment about the blueprint editor in UE4. It helped me both rapidly prototype things and learn UE4 design patterns / practices. Some of the core functionality and perf related things I'll bang out in cpp but for most things I stick to blueprints.
- pbiggar 7y agoWe started with trying to create something like this when we started Dark (https://darklang.com https://darklang.com). We ultimately moved away from this style of programming, as we couldn't figure out a way to make it feel "code-y" enough for people to want to write programs in it. I'm super interested in what folks want to use this for?
- emmanueloga_ 7y agoIn theory one could structure any program this way right? In practice I've seen it work mostly for "creative programming", like in Max/MSP [1] or Unity3d [2]. NiFi [3] seems to be successful too, but kinda niche (and looks very daunting for general, simple problems). I like the idea of having programs structured as "producer" and "consumer" nodes, with nodes being as close to pure functions as possible. But it seems like the graphical representation indeed gets in the way. Perhaps the idea could still work without the visualization part? Each node a single file, listing inputs (maybe some sinks too) at the top. Still a graph, but users wouldn't _necesarily_ need to visualize it all the time. 1: https://cycling74.com/products/max https://cycling74.com/products/max 2: https://unity.com/shader-graph https://unity.com/shader-graph 3: https://nifi.apache.org/ https://nifi.apache.org/
- leovander 7y agoDoes that mean the Dark in Action on the homepage is outdated? Or is the UI something that carried over from the original design? I know there are "code-y" elements in that video and all the auto-complete features that are demoed are fantastic.
- pbiggar 7y agoNo, it's pretty current. The "code" in Dark is textual (it's not bytes on disk, but it's very far from nodes and edges). Dark is intended to be very code-y - although we're not fully there just yet coding in Dark mostly much feels like coding (discounting having to use a different editor).
- fl0under 7y agoYeah I like the idea of visual programming but it's not gonna replace everyday dev work in my opinion. I would like to see more apps for tablets that introduce visual programming into everyday workflows. If you haven't seen the work of Ink & Switch check out these essays on end user programming [0] and an app for basically working on ideas [1], combine these and you get a fluid interface with an easy way of doing some computation (the visual programming bit) which is something I would love to use. But visual programming gets messy if you attempt to do something complex and I don't know if there is any way around this. This then is where there needs to be programs with strong types that can compose with each other, like the example explained in this post [2]. These concepts are all things which anyone using a computer could use, not something just resticted to people who are already "developers", and I think we have to get into that mindset for this type of software to become more successful. [0] https://www.inkandswitch.com/end-user-programming.html https://www.inkandswitch.com/end-user-programming.html [1] https://www.inkandswitch.com/muse-studio-for-ideas.html https://www.inkandswitch.com/muse-studio-for-ideas.html [2] https://pchiusano.github.io/2013-09-10/type-systems-and-ux-example.html https://pchiusano.github.io/2013-09-10/type-systems-and-ux-e...
- lovetocode 7y agoAwesome project. Reminds me of my days of using Apache NiFi. https://nifi.apache.org/ https://nifi.apache.org/
- mentos 7y agoOwner of this project should check out visual programming in Unreal Engine 4 it’s completely production ready and has shipped in many AAA titles.
- mileycyrusXOXO 7y agoI absolutely love the blueprint editor in UE4. It enables me to rapidly hammer out ideas and test new things. Not only that, but it helped me learn a lot about how to go about doing things in UE4 so when I started writing CPP I already had an understanding for where to put what and how to do it.
- cpitman 7y agoEasily the first visual programming language I used that actually sold me on the idea. Most of my experiences have been with systems that claim visual programming, but then require you to jump top code almost immediately. UE4 blueprints are sufficient to create the majority of a game.
- mark_l_watson 7y agoNeat looking project but maybe the naming is off because of possible confusion with Rete Networks (one of the coolest computer science algorithms and data structures to optimize expert system rules engines for efficiently handling very large numbers of production rules).
- deleted 7y ago[deleted]
- ninetax 7y agoReally cool! Is there a way to export a data representation of your graph, like in json or something? Would there be a standard for that, like some control flow representation?
- alexisread 7y agoNode-red? Great visual workflow system based on MQTT, but you can also program UIs in it (node-red-dashboard), cluster process stuff with plugins, and even program this stuff on mobile (https://github.com/alexisread/noreml https://github.com/alexisread/noreml). It can import/export json representations of the diagrams/code. I've found mermaid (and vue-mermaid) useful for just the workflow representation as the diagrams are compact, though the lines don't curve like in other libraries
- jordanbeiber 7y agoUse BPM/BPMN? (Business process modelling) Not answering you question directly, but it’s a way of doing something similar. A whole set of enterprise tools do things like this, and I’ve worked a bit with bpm workflow engines that kind of does this in a standardized way. > BPMN models are expressed by simple diagrams constructed from a limited set of graphical elements. For both business users and developers, they simplify understanding of business activities' flow and process. BPMN's four basic element categories are: - Flow objects: Events, activities, gateways - Connecting objects: Sequence flow, message flow, association - Swim lanes: Pool, lane - Artifacts: Data object, group, annotation https://en.wikipedia.org/wiki/Business_Process_Model_and_Notation https://en.wikipedia.org/wiki/Business_Process_Model_and_Not... You can use web tools to draw processes and, execute them on a compliant engine: https://demo.bpmn.io/ https://demo.bpmn.io/ Camunda comes to mind, as an open source alternative, but if nodejs is your thing there a a couple of BPM engines in the works, eg: https://github.com/paed01/bpmn-engine https://github.com/paed01/bpmn-engine As with anything graphical based - if it doesn't fit the purpose exactly, it will become a pain in the end.
- holoduke 7y agoI remember I had to do one project at my university. I hated it. I still wonder if there is a successful product out there which I made through bpm. I doubt it.
- neuromute 7y agoOddly, I’ve been playing with this library just this week. I’ve also been looking at various alternatives (some of which have already been mentioned in the comments here). The only functionality I’m actually looking for is the ability to connect and disconnect elements using virtual cables (that flex and look good, just like those in rete). It’s for a software synth patchbay (like those used in the Reason digital audio workstation software). So, ultimately, even though this library is impressive, it isn’t quite the right fit for my project. If anyone can recommend an alternative that focuses purely on cabling, I’d love to hear about it!
- codetrotter 7y agoNot sure if it fits the bill exactly but did you look at VCV Rack? https://vcvrack.com/ https://vcvrack.com/
- brylie 7y agoI was going to recommend VCV Rack as well :-)
- neuromute 7y agoI've downloaded vcvrack, but not actually tried it out yet. It looks awesome. However, the project I'm working on is a web-based synth using the HTML5 Web Audio API. It's built using Tone.js and NexusUI.js, so vcvrack isn't really applicable, as far as I can tell at least! Thanks for the recommendation though. :)
- brylie 7y agoSounds cool! Will the project be open-source by chance? Relatedly, what are your thoughts on Tone.js? https://tonejs.github.io/ https://tonejs.github.io/
- neuromute 7y agoYes, it will be floss. I've still got a way to go to fully flesh it out, but I'm getting there. Here's a screenshot of what I have so far - https://i.imgur.com/bEBIBFF.png https://i.imgur.com/bEBIBFF.png. The sequencer, effects rack to the right, keyboard, pad on the left, wave selection, oscilloscope, level meter, master volume and bottom two dial racks (dry/wet levels) are all working. The rest is yet to be plumbed in, but I've added it in to try and get some idea of the final layout. At present, the sequence of connections for each effect are pre-determined, but I'm working with the idea that a button will flip the synth around so you can patch the units in any order you wish. Another idea is to start with an empty rack and have you add them in and move them around however you wish too, so you could have more than one of each type in the chain. Very much still a work-in-progress! I'm actually using Tone.js for this project. So far I'm finding it very useful.
- Deukhoofd 7y agoVery neat, but don't try and sell it to your Dutch consumers with a name like that.
- goblin89 7y agoI’d be curious if there was a node interface framework for React (Rete is Vue-oriented, which is not made obvious until you follows installation docs).
- brylie 7y agoIt is increasingly important that we publish components in a framework/library agnostic manner. Not only do we have a lot of duplication of component libraries in general, but we also hit the landmines of "Angular-oriented", "Vue-oriented", "React-oriented"... Hopefully, we will ser more full fkedged component libraries built with Web Components, which can integrate with any framework or library.
- capableweb 7y agoYou don't have to wait for web components though. If the authors of said libraries split it up in two parts, the main logic and framework/library integration, the sharing would be possible today already. I think tools like xState gets this right, you can glance the package listing here: https://github.com/davidkpiano/xstate/tree/master/packages https://github.com/davidkpiano/xstate/tree/master/packages Then you just include core + framework X integration, and if you need a new integration, you create it new and use it together with core.
- dkersten 7y agoRete has a react based component thing too[1], is that jus5 for custom components. [1] https://github.com/retejs/react-render-plugin https://github.com/retejs/react-render-plugin
- goblin89 7y agoSweet, I stand corrected!
- newcrobuzon 7y agoLooks really nice! Looking forward to playing with it a bit. Shameless plug: I built something similar as a part of my workflow platform for JVM (for Java and Clojure): https://github.com/mikub/titanoboa https://github.com/mikub/titanoboa The main focus of my tool is enterprise integration and data processing, but I still love to play and experiment with the ideas of developing code directly in browser and how to visualize its execution flow. So I built a live coding / visualization also as a part of my tool. This becomes non-trivial if you apply it to languages other then js (so browser integration becomes a bit harder). I also think the main challenge here is the server-side part of things, especially when you make such solution distributed - i.e. how you achieve high availability and assure everything gets executed (at least) once even in case of failover, how you cater for multitenancy while achieving sufficient security/isolation between users etc. edit:spelling/formatting
- yboris 7y agoRelated: Node-RED - Low-code programming for event-driven applications https://nodered.org/ https://nodered.org/
- lisawright 7y agoOutsystems is superior than any of these.
- gardenfelder 7y agoWebbleWorld 3 is at once similar, and different: https://github.com/truemrwalker/wblwrld3 https://github.com/truemrwalker/wblwrld3 with several academic papers and a book about the concept. Professor Yuzuru Tanaka pioneered the concept of Meme Media.
- reggieband 7y agoI've had building something like this in the back of my mind for a while. Free idea (the reason I wanted this): use this to build an interface to crypto smart contracts (e.g. Ethereum). Payment processing seems similar to signal processing (which these node editors are good at, e.g. Max/MSP, Unity shader graph).
- freeqaz 7y agoShameless shill: We've been building a set of tools to make software development more visual, kind of like this. There are some examples on our site here, https://refinery.io https://refinery.io More specifically, you still write code and you visually connect pieces of code together. Think "pipelines of transformations" in a functional programming way. Then you click "deploy" and have it all running on AWS Lambda with rich logging and other goodies. A lot my inspiration comes from being a former game dev who has used Scratch and UE4's Blueprint engine. I've personally found that it's difficult to get the abstraction right in a way that keeps complexity in check (as others in this thread have commented). That's why you still write code in Refinery -- you're just visually chaining microservice calls. Would love to hear feedback + thoughts, if anybody is interested in sharing. free at refinery.io is a good email for me. :)
- dreamling 7y agoHave you tried Adafruit's make code? https://makecode.adafruit.com/ https://makecode.adafruit.com/ Visual programming for javascript with options to interact with their Circuit Playground hardware. It's from Microsoft, with flavors for Mincraft and Legostorm too, https://www.microsoft.com/en-us/makecode https://www.microsoft.com/en-us/makecode . It's, of course, not an entire ecosystem for everything, but they do a lot of visual things that may be worth evaluating. I like the colors/shapes of the code pieces, and the ability to switch between the visual code editor and the plain js.