The layer nodes I’ve already described in previous posts are the main building blocks in the sequence generating the contents of layers. However, there will also be another type of nodes in Paragraphic, that I’m currently calling parameter nodes (or maybe parameter input nodes?) and I’ve now started implementing.

As the name implies these parameter nodes are linked to a specific parameter, just like the layer nodes are attached to a layer. More specifically a parameter node provide an alternative way to setting the value of the parameter, just like adding a connection to set the parameter value. But while adding a simple connection just sets the same value, different parameter nodes will allow you to set up more complex relationships based on connected values or access dynamically varying valus.

A simple example could be for example if you want the parameter SizeB to be half of SizeA something else. In this case you could add an Expression parameter input node on SizeB, connect it to SizeA and just enter the expression “x/2”. In other words parameter nodes will allow you to process inputs from connections before their value is used in a parameter.
Another use case can be to have a parameter node supply a dynamic value, like for example a random value or value based on a layer element index, allowing great control and flexibility in creating. For example you could have a repeater node where the number of repetitions varies in a set range as shown below.

Third prototype testing round
With the introduction of these more complex input nodes the next step will be another round of testing with selected test users to get feedback on these features and see how they need to be improved or changed to make sense to people before going forward.
Additional improvements
UI/UX
- Added tooltips for all layer nodes and parameter input nodes explaining what they do in the add node menus.
- Undo/redo of many complex operations with adding/removing nodes and connections implemented.
- Improved value field expression parsing with better error handling and support for many functions.
- Added a first Getting started dialogue shown at the first launch, introducing some basic concepts to new users (and Pro tips for more experienced ones).
- Added some nice highlight animations and auto scroll to highlight newly added nodes and parameters when they’re added, since they can now be added in multiple ways.
- Added new add node buttons to in the toolbar to make them easier to find and as an alternative to the general add node button in the inspector.
Generation
- Implemented a basic layer generation index, accessible via parameter node Index Value, letting you base values on the index of the element in a group.
- Implemented new expression parameter type, allowing expressions using input variables, for use in many more advanced value relationship nodes.
- Implemented a random value input parameter, allowing you to use a random value as the input for any value parameter in layer generation.
- The set and adjust color nodes can now also separately set or adjust just the fill or stroke color alpha value.
- Re-implemented the Randomize node (previously Random transform) to be more consistent with and reuse components in the Group Apply Function node. So both allow you to adjust or change the same properties of elements, in one case at random, in one case using a specified function.
- Added an alternative mode in the Line generator node to generate a line based on an angle and and a length value.