All planned/requested features #13
Replies: 5 comments 14 replies
-
I use Nodezator to visually build complex analytic SQL queries from library of simple, parametrizable ones (nodes). I also have various output nodes for data visualization. Often used queries can be then exported as Python code for more convenient use. All works great, but I really struggle with Nodezator's nodepack machinery. The nodepack is basically a Python package, and nodes in generated Python script are imported from it in usual way. But it's not possible to specify package to be used as nodepack, only as directory. This has several annoying consequences:
So, It would be really great if method for importing nodepacks would be changed to use modules instead current one (directory). The implementation could be really simple. Instead select directory dialog, you use simple from with string entry to get module name, import it and then use module. path attribute to get it's location to scan it for contained categories and nodes. This would also allow deeper nesting to organize nodepacks, for example: org.sql.category.node One can then import "org.sql" to get all contained categories and nodes from it without other two. |
Beta Was this translation helpful? Give feedback.
-
First off I want to thank you for all you have done making an amazing program. I was looking for something node based and all the other programs I had come across seemed to be specialized and not focused on a generalized approach. I just want to thank you again for starting this project, it definitely fills a need. My brother and I have attempted to create code in it and import a few functions, and came across some possible changes you may want to consider. We have cloned from github and are looking at how feasible it is to experiment with some ideas and test them. We dont have a lot of time to commit to it on a scheduled basis, however we would not be opposed to discussing ideas and suggestions and maybe make minor contributions to the project if we can. The following is a summarization of somethings we had discussed would greatly open up functionality and ease of use, these are just some suggestions we would like to offer and are considering trying to figure out ourselves. Perhaps you have already addressed some of this. We had even created a very simplified bridging node before we noticed you were working on what seems to be a much finer model, so you may have once again already have it on your list to address. If a nodezator graph could include either input nodes or an option to change data nodes to an input type, then when you export to python those input nodes could be placed as function parameters. Similarly, if a nodezator graph could include an output node, variables passed to it could be returned from the exported python code. This prevents you from having to do any manual code changes to your exported graphs. If ndz files included inputs and outputs, then they could be imported as nodes using the code they automatically generate when they are exported as python code directly. Using only the ndz files to build all your nodes and drop existing graphs into new graphs as nodes from ndz files would allow you to build nested functionality very similar to the way blueprint uses functions and macros. To take it a step further, it would be very flexible if you could double click a ndz file based node or right click any node that was imported from an ndz file and that would open the graph for editing the ndz file. If all ndz file based or python based nodes could be compared to the copy saved in a graph and then they just turn red or have some other form of visual change to denote that they have to be refreshed, this would allow you to make changes to nested ndz file nodes and then save them and refresh the higher level graphs that use them. This would also fix the issue of having to remove and re add libraries if you change only one node within a library. |
Beta Was this translation helpful? Give feedback.
-
I appreciate and welcome the time you and your brother already committed and are wiling to commit to this project. Don't worry about whether something was already suggested/tried or not. It would be too time consuming for anyone to read all content already produced in the discord and discussions. In my honest opinion, when someone suggests something that was already tried/suggested it is a good thing, because it means that person has good insight on possibilities/opportunities presented by the app. I just gave your message a quick read. I'll get back to you on your suggestions on Monday. Pardon me for not addressing your suggestions right away. I'd like to do it as soon as possible, but I'm just off from a day full of work and I need the Sundays off so I can replenish my energy to work at my best the rest of the week. Additionally, your suggestions touch a very interesting topic that I'd like to take my time to write. By the way, I do actually dedicate a little time even on Sundays just to check the discord and github to see if an user has some urgent issue that warrants my attention like a critical bug in something they need right away for an urgent task, things like that, in order to not leave any user unattended in a dire situation. So, if you ever have something urgent even on Sundays, don't hesitate to reach out for help. Have a nice weekend, see you on Monday. |
Beta Was this translation helpful? Give feedback.
-
Here are my thoughts on your message, point by point (this is part 1 of 2; I will write part 2 of 2 tomorrow):
I'm glad the app meets your needs. There's still tons of stuff to improve and to implement, of course, but we are advancing, slow and steady. Other users have similarly described how Nodezator helps solve their needs of a generalized approach for visual programming in Python. That makes me specially glad not because I think Nodezator is superior to other existing Python node editors, but because it clearly addresses problems for which other editors are not suitable. This is why I made it, even though there were already other great editor at the time. I just needed something that I didn't find elsewhere, that's all.
Again, thank you for willing to take these extra steps, however small they are. Take your time and do not hesitate to share ideas. Due to how complex a node editor app is, sharing knowledge/discussing/giving feedback are essential to ensure an accurate understanding of problems and possibilities for the app and cooperation. As the open-source maintainer of the app, I also own the community the publishing of a proper CONTRIBUTING.md file in the repository, explaining the ins and outs of the package, how it works, how it is organized, strengths, weaknesses, best approaches for contributions and many other useful stuff. Sorry for not having released something like that at the present time. It is just that since the release of the app this past June I've been implementing new stuff non-stop. Thankfully, it has been a healthy rhythm of "new feature" work, but nonetheless it has hindered other equally important work like better guides for people willing to contribute. This is totally on my radar though.
Do you mean "branching" nodes? If so, the current task being handled is indeed the implementation of branching and looping in Nodezator via new special nodes. The task is in the design phase, but I should soon start implementing it after finishing the design and waiting a bit for user to review and give feedback. The work is being discussed here and the design draft is published and being updated here. |
Beta Was this translation helpful? Give feedback.
-
Hi @KennedyRichard, it looks like you already have most of the common node editor features on your list! I have a few more feature ideas that I don't see on your list yet.
That's all for now. None of these ideas are high priority for me personally--I just wanted to write them down because I didn't see them listed above. As you may have guessed, the feature I'm dying for right now is higher-order functions/callable nodes :) Thanks! |
Beta Was this translation helpful? Give feedback.
-
All planned/requested features
Hello, everyone, the sole purpose of this pinned discussion is to list/keep track of all planned/requested features for Nodezator. I'll be editing it regularly to add new items and edit existing ones.
Check the instructions after the tables below to learn how to request features and how I go about implementing those features.
Also just cause there may be a lot of time between the implementation of the features, doesn't mean there wasn't much work being done during that interval. It is just that some features require a lot of time and effort (redesigning the app, testing, fine-tuning, etc.) and my work on the project also consists of many other things like curating the discussions, researching, answering and solving issues/fixing bugs, producing content, updating the websites/social networks/channels, promoting the project online, etc.
automated GUISystem tests; initial postponed work: #34; planned work+devlog: #72If there is anything you discussed with me but I forgot to include here or in the sublists below, please, let me know!
Other minor features that should be quick or easy to implement and might be added to Nodezator any time:
Other topics for research that may or may not become a planned feature:
Other requested/planned features will only be available for implementation in the future, once the pygame/OpenGL graphics backend for Nodezator is implemented, but they'll be listed below so we can keep track of them;
how to request new features
If you want to request new features, comment below or start a new discussion requesting the feature and I'll list it here depending on feasibility, desirability, usefulness, urgency and other factors.
The more data you provide, the higher the chances of your feature to be listed here, so maybe starting a new discussion with explanations, examples, images, etc. may be a better idea, but don't worry too much about that, just be honest and open to discuss and all should go more than well.
how features are implemented
Every time I'm about to work on a new branch, I'll visit this discussion, pick some items to implement and create a discussion to let you share your thoughts on the ones I pick to implement.
Beta Was this translation helpful? Give feedback.
All reactions