Cartan Node Library 3.0

john's Avatar


22 Mar, 2022 06:13 PM

Attached is the latest upgrade to my node library!

Version 3.0 includes 101 nodes. All nodes are free for use with no restrictions.

To use: with your current project open use File/Open Recent to open node library 3-0.ndbx in another window. Then just copy/paste the desired node from the library into your project. A few of the nodes also require adding a code library module (included).

Version 3.0 features a completely new and simplified layout. There is no more demo tree. Instead, the demo subnetworks are arranged just as the nodes are, in columns by output type, and placed just below the node block. The demo node is colored and named like the node demoed (node name with a trailing _); this should make it much easier to find the demo for a given node. I have also added green column labels. Thanks to Floris for these suggestions.

In place of the demo tree is a single LIBRARY node which displays descriptions for each node in separate category tables. You can also roll over the nodes to see a popup description for each one. For those who found the illustrated poster useful don't worry. I now provide it as a separate PDF (attached). The poster ie reformatted to match the category layout of the nodes. From now on there is just one constant layout to refer to.


New Nodes:


  • Even_sample. No longer requires external make_curve library, Minor performance improvements. Demo includes an alternative node, easy_sample, that does not have a contour option and so does not need any external libraries; you can use this instead when sampling simple paths.
  • Intersect. The "Extend lines" option, now "Extend line", only extends the intersection line, not every line in the path. An error which could occur on horizontal lines has been fixed.
  • Intersect_line. Fixed rare error with collinear lines.
  • Intersect_circle. Added option not to extend line.
  • Area. Changed description to clarify that area only works correctly on polygons (not curved shapes). You can resample curved shapes for more accurate results.
  • Fragments. Works correctly in all situations. See
  • Diff_list. Now works correctly even if some items appear more than once in the same input list.
  • Draw_table. Now shows headings in bold. Added a position parameter.
  • Easing. Changed parameters. Now works exactly like convert_range. You no longer need to use a separate convert_range node to manage animations which do not begin with the first frame.
  • Wind_letters now provides a help message if you fail to attach a spiral path.
  • Colors. I surfaced a seed control for use when shuffling colors.

NOTE: Starting with this release I will add a version reference to the front of popup descriptions for every node that has been updated from its original version. This should make it easier to tell whether you are using the latest nodes in your projects. Thanks again to Floris for this suggestion.

Deprecated Nodes.

  • Hexgrid. Replaced by alt_grid and hexagons; see above.

As always, please reply to this note and let me know that you saw it. This helps me know if anyone is using this library. If you find any issues with any of these nodes, or have suggestions for improvements or new nodes, PLEASE let me know. I hope you all have as much fun using this library as I had making it.

Go forth and create!


  1. 1 Posted by florisdejonge on 05 Apr, 2022 06:03 PM

    florisdejonge's Avatar

    Hi John, Thanks for sharing the new library! I am looking forward to using it.

  2. Support Staff 2 Posted by john on 13 Apr, 2022 09:26 PM

    john's Avatar

    Thanks, Floris. Apparently you are the only one.

    Have you tried the new layout yet? Do you find it easier to use? Any other suggestions for improvements?


  3. 3 Posted by florisdejonge on 14 Apr, 2022 07:38 PM

    florisdejonge's Avatar

    John. I haven't been able to find the opportunity the past couple of weeks to take a thorough look around the library and discover its particularities, but when I do, I'll let you know.

    Really like the 'explanation interface animations' you've shared on Instagram by the way. I liked the artwork as well, but the visualisation of the process was very intriguing.


  4. 4 Posted by jen on 30 May, 2022 03:37 PM

    jen's Avatar

    thanks for pointing this out in your email, John. Otherwise I might have never noticed. Looking forward to using them. thank you for creating!

  5. 5 Posted by stuckonearth on 01 Aug, 2022 02:02 PM

    stuckonearth's Avatar

    Thanks You! I'm new to Node Box and this will help.

    The library loads fine and it is easy navigate. I'm using Windows 10.

  6. 6 Posted by msensoy on 24 Oct, 2022 01:26 PM

    msensoy's Avatar

    Hello John,
    This looks amazing, I was about to give up trying because of the frequent crashes related with software but after a recent update I realized that they become very less. So it gave me a hope and inspiration to keep on learning Nodebox again. And especially your efforts made this project dynamic, up to date and live. Strange that I could not find such a good application which is integrating both coding and design within a clean interface. May be I'm not aware of the other softwares but this project still needs to be more popular. Meanwhile I would like to pay developers my respect. I really wish they would keep on giving support and updates to this software.

  7. Support Staff 7 Posted by john on 24 Oct, 2022 04:54 PM

    john's Avatar


    Thanks for the kind words. I appreciate them.

    Happy Nodeboxing!


  8. 8 Posted by florisdejonge on 05 Nov, 2022 10:18 AM

    florisdejonge's Avatar

    Hi John,

    Since you mentioned considering another release of your library, I hope you're open to some suggestions. I listed some questions and requests:

    • mask_node: It's still the one I use most for preparing penplotting artwork. But I find it hard to remember which one of the input nodes is the one that contains the lines and which one is the actual mask (the foreground). I keep going back to the examples or earlier network to remind myself which is which. Is it possible to change the input labels to something more descriptive? Maybe just 'lines' and 'mask'?
    • reshape: Recently I have experimented with a morph subnode that you developed with Frederik in this thread. To what extent does that one differ from the reshape-node? Or is it more of a continuation? Or could the 'morph' node be a valuable addition to the library?
    • alt_grid: I find myself often wanting to delete the last column of this node to keep the grid symmetrical. Is it possible to add controls for that? Attached is an example of how that could work (the position must be made dependable on the last column). The same probably goes for the rows.
    • fit_curve: As discussed, you omitted this node sinds version 2.2, but it proves usable quite often. Could you add it again so we don't have to go back to that version to find it? I regard the library as a great collection of possibilities of Nodebox, and it would be nice to keep it up to date.

    As far as I'm concerned I am really satisfied with the layout you've implemented since last version by the way.

    Happy Nodeboxing (I am going to adopt those closing words from you :))


  9. Support Staff 9 Posted by john on 05 Nov, 2022 10:47 PM

    john's Avatar


    Thank you very much for giving this so much thought. I will dig into this soon and respond to each point. But before I do, a quick question:

    Now that we have the soften node, do you still need the fit_curve node? They are very similar - do we need both?

    More later,


  10. 10 Posted by florisdejonge on 08 Nov, 2022 07:17 PM

    florisdejonge's Avatar


    Thanks for the reply and the question. I would consider the fit_curve node as serving a different purpose then the soften node. The first one takes points as input, the second a path. Of course, with a connect node one could change a list of points to a path, but the result is also quite different. I've attached a quick test of a spiral with left the soften node and right the fit_curve node. The latter makes more round shapes with fluid lines. The former rounds the corners really well. So, as far as I'm concerned they both belong in the library, don't you agree? Looking forward to your response, also in regard to the other points.


  11. Support Staff 11 Posted by john on 09 Nov, 2022 12:05 PM

    john's Avatar


    Thanks for your patience. You made four suggestions:

    Fit_curve. I agree. It does serve a different purpose than soften and is still useful despite its similarity to round_segments. I have added it back in.

    Mask. I agree. I have also found those parameter names confusing (even though I'm the one who assigned them). I don't want to use "lines" since the path may contain curves; I also want to keep it singular since the node takes one path at a time. So I have changed the two parameters to "path" and "mask". I also changed the options to "Inside Mask" and "Outside Mask". I also rephrased the node description to "Returns segments of a path inside or outside mask". Please let me know if that clarifies things for you.

    Alt_grid.. I think this is a valid request. The whole concept of rows and columns is a tad ambiguous when things no longer line up. Are the line of points in successive horizontal positions separate columns or half-columns or pairs which form a single jagged column? One of my goals for this node was that a 3 x 5 alt grid would have the same number of points as a 3 x 5 normal grid; violating this principle causes other problems. I could add two more properties (drop last half-column, drop last half-row), but I am already using all seven parameter slots. Of course nodes can have more than seven parameters, but I hate doing this: it makes for untidy networks and feels like a failure - if you need more than seven parameters maybe your node is too complicated and needs to broken down into simpler pieces. But I agree that sometimes you want "bookend" grids with upward columns on both ends. Let me think some more about this.

    Morph. There's a LONG story behind this one. Morph was one of the first new nodes I proposed back when I was still learning NodeBox. I started with a naive goal to make a single general purpose morph node but came to understand that morphing is too complex, multifaceted, and subtle to be captured in a single one-size-fits-all node.

    Shapes have many properties that could be morphed including boundary path, fill color, transparency, strokeWidth, stroke color, size, rotation, position, corner roundness, etc. The boundary path can be quite complex, consisting of differing numbers of straight and curved segments traveling in clockwise or counterclockwise order. Even worse, some shapes have multiple contours. And you may also need control over the movement between the before and after shapes (spinning, special movement paths, etc.). You may want to morph a flock of shapes instead of just one shape; this raises still more complications.

    Frederik recognized all of this and so never included his own morph code as a standard node. But I persisted and created a general purpose "Evolve" node. It was a complicated node that tried to do to many things at once. Yet, every time I tried using it I found it wanting and had to rewrite parts of it for each situation. So I finally pulled the node from the library and replaced it with several simpler nodes.

    Reshape is one of these; it focuses on the boundary path part of morphing. It is based on a technique I later developed called "turtle tables" that recharacterize boundary paths into a series of relative direction changes. If you prepare your before and after paths properly it can create some elegant shape morphs.

    Unwind uses the same technique to unwind a boundary path into a straight line or segmented curve. Rearrange focuses on positional morphs. Fade handles a transparency morph. Other nodes like curve, reverse, explode, contours, clockwise, etc. help to attack different aspects of morphing challenges.

    I confess that I am still not happy with all of this. I think additional morphing-related nodes could be developed. Maybe a simple interpolation node that would transition between a single property (position, color, size, rotation, etc.) over time. So if you have some specific ideas for nodes that are complex enough to be useful across diverse situations but not so complex that they collapse under their own weight, please start a new thread on morphing. Maybe we can tilt at this windmill together.


  12. Support Staff 12 Posted by john on 12 Nov, 2022 03:58 AM

    john's Avatar


    I found a solution to your alt_grid request - without adding any additional parameters.

    The revised version of the alt_grid node (attached) offers two new options for the indent parameter. In addition to "Every other row" and "Every other column", users can now select "Every other row - trimmed" and "Every other column - trimmed".

    (Internally I do this by eliminating the trimmed points without the need to calculate x or y coordinates. Peek inside to see how it works if you are interested.)

    The attached demo shows an American flag with its fifty stars. This layout of stars would not have been possible to create in a single bound with the old node. Now all you have to do is choose the "Every other row - trimmed" option.

    I hope you find that satisfactory. Thanks for a very thoughtful suggestion. You are helping me make this library better and better.

    The improved alt_grid node will be included in the next 3.1 release of my library - coming soon!


  13. 13 Posted by florisdejonge on 20 Nov, 2022 08:23 AM

    florisdejonge's Avatar

    Hi John,
    Thanks for you reply and for taking up the suggestions. In regard to the alt_grid node your solution is simple and elegant (I also fee the necessity to keep the input parameters to the max of 7). I was able to put it to work immediately.

    In regard to the morph node I am still trying to find out to what regard that one and the reshape node behave differently. I understand a general 'transform' node would be hard, but I think your other spin-off nodes might be suitable as well. But I haven't had time to really apply them and am currently focusing on the reshape node as that one came closest to what I wanted to do.

    I also came across a small possible improvement/addition to the order_LRTB node. Currently it works with a point based input, but I wanted it to work with paths. So I changed it a little. An example is attached. Hopefully that might be useful.


  14. Support Staff 14 Posted by john on 20 Nov, 2022 12:06 PM

    john's Avatar


    Great minds think alike. As it turns out, I already modified my order_LRTB node to accept either points or shapes. I did this just a week or two ago as part of my preparations for release 3.1 of my library.

    I am attaching a demo showing your node and my new node. Your node requires that you group the shapes first and will not work if you feed it a list of points. My node works for either. As you can see in the demo I feed it both a list of points from your shuffle node, and a list of shapes (ungrouped). If fed points, it returns sorted points; if fed shapes, it returns sorted shapes.

    I have been working furiously to improve a few others nodes and have also added some new ones as well. I hope to have library 3.1 out within the next week.


  15. 15 Posted by james on 10 Nov, 2023 03:25 PM

    james's Avatar


    Thanks for this library! I am new to node box and used the alt_grid node to get some triangles in the layout I was looking for.


  16. Support Staff 16 Posted by john on 10 Nov, 2023 08:11 PM

    john's Avatar

    Thanks, James! And welcome to the Nodebox community.

    The most recent posted version of my library is 3.2. I am working on a new release and hope to publish that soon.

    I enjoyed your animations on Instagram. You are making good progress! You might consider sharing some of them here as separate posts.

    Happy Nodeboxing!


Reply to this discussion

Internal reply

Formatting help / Preview (switch to plain text) No formatting (switch to Markdown)

Attaching KB article:


Already uploaded files

  • Node_Library_3-0_Screenshot.png 916 KB
  • Node_Library_3.0_Poster.pdf 4.07 MB
  • 1.3 MB

Attached Files

You can attach files up to 10MB

If you don't have an account yet, we need to confirm you're human and not a machine trying to post spam.

Keyboard shortcuts


? Show this help
ESC Blurs the current field

Comment Form

r Focus the comment reply box
^ + ↩ Submit the comment

You can use Command ⌘ instead of Control ^ on Mac

Recent Discussions

19 Apr, 2024 04:41 AM
16 Apr, 2024 06:18 PM
16 Apr, 2024 04:23 AM
08 Apr, 2024 01:28 AM
07 Apr, 2024 11:50 PM


05 Apr, 2024 11:47 PM
05 Apr, 2024 12:30 AM
25 Mar, 2024 08:48 PM
14 Mar, 2024 07:40 PM
14 Mar, 2024 07:38 PM
12 Mar, 2024 06:14 AM