Finally, it arrived! Well, not exactly here yet, but getting closer.
Overview
Divooka intends to make visual programming simple and accessible - the accessible part is achieved both through wide availability and the general-purpose nature of the programming system, but the simple part is what we spend lots of effort thinking hard trying to improve.
In the past, dealing with complex configuration takes the form of either "explosion" of arguments or dedicated Make XXX construction functions:
The problem arises due to the direct exposure of all input arguments in visual programming. Both approach makes the canvas look busy, with the former a common approach in existing systems - using a struct sounds good on paper but still requires a complex looking construction node. This is a common problem in visual programming systems, below shows how it's done in Blender and ComfyUI.
You do get used to it after a while, but a busy looking canvas remains a busy-looking canvas. In Blender, you can sort of "collapse" a node:
As Blender is constantly improving, we can also now collapse property groups as shown in the earlier screenshot.
As a syntax purist and (unfortunately) very conscious about my working space, my eyes can't tolerate messiness. I kind of like how Houdini approaches this.
Essentially they offload all the complexity to the properties panel - this has the huge benefit of making everything look very clean. But the downside is Houdini rely heavily on scripting expressions (like Excel).
TerraGen and World Machine mixes the approach:
In both cases, connections represent flow of terrain data only and additional configurations are offloaded to property panels. In TerraGen especially, this allows those properties to be animated. The downside, once again, is whatever is offloaded to property panels are no longer programmable using nodes.
Our Approach
Our proposed solution for Divooka looks like this: fundamentally all properties remain as node inputs, but compound values (especially value types) should just allow "editing in place" through a property panel. If more complex programming is needed, one can easily fall back to Make XXX nodes again.
Future Work
There is still remaining work on type check, hierarchical compound types, arrays, and serialization, and also node rendering.
Conclusion
As usual with all the exciting language features of Divooka we intend to introduce, there are lots of details to take care of here.










Top comments (0)