Jump to content

Thecaddshop - Marionette Nodes Vol.1

Recommended Posts


I would like to announce a new website thecaddshop , primarily to provide content for Vectorworks users.

Available for purchase are;

Marionette Nodes Vol.1

This collection of nodes increases the capabilities of Vectorworks 2016 marionette by offering 187 additional Marionette nodes. Nodes are available in the following categories: Lights, Utilities, Dimensions, Worksheets and 2d Objects.

Marionette Network Arches

Marionette Network Arches contains 10 examples of 3d architectural arches created by marionette nodes to form marionette networks. They demonstrate the creation of marionette networks using basic object subtraction and addition together with trigonometry nodes to add parametric functionality. Arches vary in complexity from simple to advanced and include: Equilateral, Segmental, Involuted, Semi-Circle, Drop, Lancet, Turkish, Parabolic, Tudor, and Rampant Arches. All arches are customizable and can be freely modified.

Also available is a FREE section where a visitor can download a number of HDRI Images and a few symbols in vectorworks 2013 format.

Please feel free to visit thecaddshop . I would deeply appreciate your comments and feedback.

Best Regards,

Adrian Hedley


Link to comment

Hi, While going through the list of nodes, I noticed that this is only a 'translation' of vs functions. Why if I may ask? I was expecting more advanced stuff in the sense that for example some functions are being combined into one node where the user can specify the stuff more easily and use the same node for different kind of stuff. Like for example RRectangle and RRectangleN, These really could be in one node, making it easier for the user to use them, as they don't have to know the difference and can just use them. Marionette is meant to give users with no programming experience an interface to program stuff in VW. Many functions can't be used for that.

Please keep in mind that this is constructive feedback.

Link to comment

I really appreciate your feedback .

When I first started to program, complicated algorithms started to surge through my brain and I wanted to develop a plug-in to end plug-ins. However, I remember reading this piece of advice in the “Customs Solutions Manual” developed by Diehl Graphsoft, Section 4-2 under the subheading “General Guidelines for Plug-ins”

“KISS (Keep It Simple, Stupid)

If you have a choice between a complex solution and a simple one, chose the simple one when possible”

I have tried to live by this advice however at times it has been difficult especially with the introduction of marionette.

You are correct, for the most part Marionette Nodes Vol.1 is a translation of vs functions as found in the Function Reference.

Some of the nodes in Marionette Nodes Vol.1 are straight forward input – output but others give the user choice through drop down menus or input via OIP control widgets. As necessary, functions have been combined to carry out its intended purpose. The message node allows for multiple messages to be displayed using a delimiter that the user can set via a text OIP control widget, I personally have found this node to be very useful to obtain feedback on a particular network I am testing. Poly has been combined with a drop down menu smooth to allow smoothing options when polygons are created.

Why did I embark on this project? While developing the marionette network arches based on code I had originally developed with vectorscript all of my rectangle objects used the “Rect” function not “RectangleN”. Marionette uses the vs.RectangleN function which uses an origin point while vs.Rect uses two points to establish corners, I personally find it much easier to think parametric with the “Rect” function so I had to code a new node to use this function so while the two functions may appear to be the same by name the final rectangle is created by two totally different sets of input parameters. This is also true with RRectangle and RRectangleN, it is possible though to combine the two functions and give the user a choice.

I realized (I stand to be corrected) the default marionette content is akin to a sample of its powerful capabilities which will be greatly developed as time goes by. It has tremendous potential and it may well result in “users with no programming experience an interface to program stuff in VW”, I really hope this goal is achieved however at this point I believe choice is a limiting factor.

The deeper you delve into marionette the more exciting it becomes especially when you contemplate the combinations of possibilities. With Marionette Nodes Vol.1, I wanted to fill a temporary gap by providing basic nodes which a user can build on which over time can be improved by the user or feedback etc.

I do assure you though, advanced and more complicated nodes will follow.



Link to comment

@ahedley, keep doing this! VW really needs more great content.

As a (FE) programmer myself, I'm not really into visual programming, and because there is a lack of great content (plugins) for VW, and it's not made easy to create them, I started DLibrary (https://bitbucket.org/dieterdworks/vw-dlibrary), to help others create plugins much easier with python. So you keep working on those Marionette nodes, I'll keep making the python side better ;)

Link to comment
  • Marionette Maven

The following light nodes included in @ahedley's "Marionette Nodes Vol 1." can be found here, free of charge.

25. Create Light

26. Contains Light

27. GetBeamAngle

28. GetLayerAmbientColor

29. GetLayerAmbientInfo

30. GetLightColorRGB

31. GetLightDirection

32. GetLightFalloff

33. GetLightInfo

34. GetLightLocation

35. GetSpreadAngle

36. SetBeamAngle

37. SetLayerAmbientColor

38. SetLayerAmbientInfo

39. SetLightColorRGB

40. SetLightDirection

41. SetLightFalloff

42. SetLightInfo

43. SetLightLocation

44. SetSpreadAngle

I would also like to note that the nodes referring to a layer's ambient info/color are misleading. There is no way to set a specific layer's ambient info.

Furthermore, by no means discouraging the desire to monetize off of Marionette content, all of the nodes that may be creating using this reference, that will still work in 2016, have already been planned to be released for free on the forums as well as possibly in Service Packs.

Edited by MarissaF
Link to comment


Thank you for your comments.

I would like to apologize if I offended anybody unnecessarily by offering marionette nodes for monetary value. It really wasn’t my intention to appear as though I’m trying to make a quick buck at the expense of vectorworks users or even the hard work you are engaged in.

For years I have been quietly learning to develop vectorworks plug-ins with the view to selling them. At first it was vectorscript, then python was introduced now with the release of 2016 we have marionette networking. Honestly, I don’t see the difference between selling plug-ins developed with vectorscript, python or marionette.

Marissa, all things being equal, how much time would it take you to produce 187 nodes and 12 complex networks in the short time that 2016 has been released with limited documentation? If you were to put a cost to that amount of work, in all fairness, what would it be? Marissa most of my time since v2016, as you perhaps can understand ,has been living in vectorworks, vectorworks developer site, python text books, however, sad to say not the community forum. When I registered on the forum to make two posts it was to ask two specific questions I needed answers to before offering the nodes to the public, the nodes had already been completed.

Do you understand what I am trying to say? Outside of the forum is there any notice or message indicating or stating that vectorworks intends to release additional nodes, what they are and what those release dates are? All I have been using is what is available in the program when you access the nodes to insert, which in all fairness is really just a sampling.

I did notice with sp2 additional nodes were included (interestingly some of those nodes I had carded for vol.2 :) ), however I did not notice your light nodes that had already been released by you and I did not know they were available on the forum. If I had seen them I definitely would not have included them in Vol.1, I have tried not to duplicate any existing nodes and if I have it may be to add additional features not to gain money under false pretense.

You would have also noticed that in my listing, the light nodes are 25-44 which are low end numbers indicating that I had probably already finished those nodes before they were available on the forum.

When you replied to one of my posts on the forum I realized that you are working very hard to advance marionette and you have an enthusasim that is very commendable with a lot of items in the pipeline.

I really felt a deep sense of accomplishment after completing marionette arches network and marionette nodes vol.1 together with setting up the web site. I also felt as though I had made a significant contribution to the marionette community .

I have been a vectorworks user since version 8. The only version I didn’t upgrade to is 2012 which I deeply regret. I look forward to and have enjoyed every single release, I also appreciate the vision and direction vectorworks has taken especially with v2016.

Marissa, I have a gift for you, a new node, you stated ;

“I would also like to note that the nodes referring to a layer's ambient info/color are misleading. There is no way to set a specific layer's ambient info.”

Attached is a network with two nodes one to assign a handle to a layer (Dieter would like this one it’s a little more advanced) to pass it to the SetLayerAmbientInfo Node. If I had known about this problem earlier I could have included it in Vol.1 bringing it to 188 a nicer number than 187. :)

I tried to insert the file however I am told that I can only upload 8kb. I will make it available as a download on www.thecaddshop,net under the free section, sorry about that.

Marissa I really want to thank you for your hard work and comments,

Best Regards

Adrian Hedley


Link to comment
  • Marionette Maven

I can see that I may have come off as harsh and/or abrasive in my previous post, and that was the one thing I was trying to avoid most.

Adrian, I also am very glad for your enthusiasm as you have generated many nodes that aren't readily available from us, and I commend you for it. I started after Marionette had already been almost completely developed for how we shipped it in the initial release, and it took me until a month or two ago to even have the passion I have for it now. Since then, I have been working on it as a side project - unfortunately I do have other obligations to my real role as a QA Specialist, so my time can't be 100% devoted to developing new content. I believe that what you have done definitely deserves compensation, if users were to use what you develop, but I suppose I would have had a different business plan in mind - such as providing them as separate packages so that a user could just purchase, say, worksheet nodes, or utility nodes, from you - rather than a whole chunk of nodes from different categories.

My biggest concern was that I know (since I'm making them) that the other content will be available at some point, but if someone did not wish to wait, you could very well provide the resources. (I also cannot provide a set date as to when they will be released for a fair amount of reasons.)

As for your arch networks, I very much wish for you to continue offering those! That is very exciting. If I could do the same with the definitions I create, I would absolutely do the same, but instead since I work with this fabulous software-producing-company, I just end up offering my creations for free to inspire others to learn by example.

So to sum this all up - I am sorry for hindering you, I'm just looking out for the well being of all of our users.

Oh - and just to clarify more how the ambient layer nodes work - the only way I've gotten that function to work is if I pass the handle to the active layer into them. Ambient light info isn't attached to just one layer, it is attached to the document, and that function works only if the active layer is passed into it, otherwise the values will not stick. It's most likely because somewhere between versions we changed how ambient light info works. Therefor, in my lights nodes, the "___ layer ambient ____" nodes are named without the "layer" part. I absolutely wasn't trying to say that you created anything incorrect, I just think there may have been a misunderstanding.

I hope you continue to develop more Marionette networks because you make me feel like my attention to Marionette as a whole is worth it.

Link to comment

I want to state something else, which each developer of plug-ins should keep in mind, as it's real:

When you develop plug-ins for an application, you will need to live with it that in some future version, the functionality you have written could be in the core application.

@Adrian: That's why I first commented on your post, because just having the function reference functions as nodes is something I see released in the near future, like Marissa stated. There's nothing wrong with you selling them, and please don't apologise for it. Just know that when some of those come available for free, you have to transfer them to a free package, or remove them. So keep on creating nodes, but try to create nodes that do compound things, or whole objects, like your arches. The added value you can offer is important for people purchasing stuff.

Edited by Dieter @ DWorks
Link to comment

Marissa, Dieter

I would like to thank both of you for your comments and suggestions.

As an act of good faith, I have removed the light nodes from Marionette Nodes Vol.1 bringing it down to 167 nodes. I have also removed it for purchase and made it available as a free download.

I would still value comments, feedback and suggestions.

Best Regards

Adrian Hedley


Link to comment


I commend you for your enthusiasm to advance user interest in third party products.

However, my advise to you is that you should concentrate on developing applications that resolve any shortcomings in vectorworks. This could be objects, routines that provide a special function, or a collection of tools, etc. It should also be somewhat complex so that nobody else can copy your invention or that is economically not worth for others to pursue.

Link to comment


Thanks for your feedback. I believe you express the sentiments of most people who have read this post thus far.

"Lesson Learnt"

I should mention I have also made the Marionette Network Arches available as a free download, both are available in the Resource Share – Marionette section of the forum.



Link to comment
  • 2 months later...
  • Marionette Maven

We've actually started talking about encryption of Marionette recently, but there are a lot of things to consider.

Right now, Marionette is very much open source, and I think it's important to keep that element for a handful of reasons - it makes it such a valuable learning tool for one.

I have my own opinions on how encryption should be handled - I think we should definitely offer the option to encrypt or lock objects, and possibly wrappers as well, but I really don't agree with locking nodes. I think it's important for safety concerns (since it's all written in python) and I'm a big advocate on learning by example - being able to see the script inside will allow more people to become proficient in python as a language and it will help to teach elements and concepts of use cases for Marionette.

I'm sure other people who work on Marionette with me don't share all of my opinions, so I really couldn't tell you which direction things will go.

If we do take the route to encryption, it won't be until after at least another version. We're working on a lot of exciting improvements for 2017, and I don't know if we would be able to throw another large task into 2017 (but again, I don't know). I'm also uncertain on how difficult it would be to implement.

So in short, I wouldn't hold my breath on it, but there's a chance that in the future we'll get something added in.

Link to comment
  • 4 weeks later...

I would have to agree with Gilbert about the ability to encrypt or lock out once a custom wrapper or marionette object has been created. While your points are good ones I feel like there is a business opportunity here that we could leverage expanded understanding of marionette to our clients.

That's my two cents worth.

Link to comment

It agree with Marissa, on my way towards understanding enough of Marionette to become able to use it.

I hope there will remain enough reasons against encrypting and monetizing Marionette and keeping it open source.

Business opportunities are everywhere,hopefully in this case without excluding other people`s access to resources!

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Create New...