[WIP] Sverchok, parametric nodes for architects

Checked the mesh. I made sure that I have no interior faces when I did the setup. I also used the merge by distance to remove doubles. Mesh does not have holes. Anyway, the mesh from extra objects (posted above) has no faces on the inner part and still works…

Here is my mesh…

And the link to the file… I edit this post because aparently I have reached my message limit.


It seems that I can boolean my mesh by turning it into a solid. I don`t mind that approach, but I would very much like to get my clean mesh back via nodes, insted of triangles. Is there a way to do that?

Tried the limited dissolve and is indeed giving nice results. I am using this project (making a procedural gear with changing settings like the number of teeth, teeth length, shape, coutouts, etc) to learn Sverchok.
I think it will be an interesting challenge to get a final mesh with all the above elements that I`ve mentioned AND a nice, even quads topology on top of all that…
That means back to the drawing board for me… The extruded cylinder it is not the right approach for my end goal. Maybe using the 2D ring with List Mask Join In and doing the cutouts before extrude will give me the desired mesh? Or perhaps an edge modeling approach that will entirely forgo the box modeling approach… I will see.
Anyway this is another topic. Sorry for the rambling. How about the bevel node? Is that fixable? And maybe a node to do the tris to quad conversion? The limited dissolve is ok for this situation, but I imagine that a node to do the conversion from tris to quads would come in handy in many situations…
Anyway, thank you for being so prompt to reply and so willing to help. I must say, you are doing an awesome job with this addon!

1 Like

the Sverchok boolean node uses entirely different, completely unrelated code to perform CSG booleans. We wish Blender bmesh API exposed the boolean operations as bmesh.ops, but it doesn’t so we implemented existing CSG algorithms so that we have at least “something” to do boolean with.

1 Like

the screenshot does indeed show a clean geometry, nothing unexpected.

if you can share the .blend for the cog we can look at it.

Solids are new, and use the FreeCAD library, the solid-to-mesh conversion does no mesh optimization (like triangles to as many nicely shaped quads as possible). The original Boolean Node never returned nice geometry either, it also expected the user to attach a few cleanup nodes like limited dissolve / quads to tris or something.

the boolean stuff is perhaps not super satisfying for topology sensitive manipulations, this has not been high on our priorities.

i’ll look at the .blend , i can confirm the crash - unfortunately the debug error log from Blender only shows that the exception is happening inside Python. It could be that the recursion limit of 10000 is too high for that geometry. I really don’t know.

As you said, the Solid approach is ok, if you get non triangle results. The limited dissolve does work nicely here.

1 Like

I am interested in doing something like this:

  1. SVERCHOK: Have a mesh generated with some technique.
  2. EDIT MODE: Modify the vertices manually in edit mode as normal.
  3. SVERCHOK: Proceed to some further procedures.

Though the clear option is to bake the mesh at step [2] and then start again a new graph. Though the ideal solution is to remain at the same graph and have it all in one go.

@const Sverchok is not designed with that kind of interactivity in mind. There are always ways to stay completely procedural (ie no manual selection/editing in 3dview). We have masking tools and a script node which would allow you to describe via an algorithm any additional vertex movements. That’s what we do.

We do understand why people want to be able to use something like an edit mode to manually select stuff, but that breaks the abstraction of the live-nature of nodes that are upstream of the manual changes.

1 Like

The idea is to utilize both functionalities, having both procedural systems doing the boring tasks, but also allow some degree of manual control here and there.

However such a system for the most part could take any type of input such as variables etc. I find it not strange to be able to transform or reshape an existing mesh.

bevel node is of course something we;ll fix, it is only a matter of making sure we call Blender API with their new function keyword arguments. The only problem is that we have to then provide a test in our own code to figure out which function signature to use, depending on if the user is using an older version of Blender 2.8x/2.9x or a newer beta one like you. It bloats the code a little to keep sverchok operational on all versions of Blender.

tris to quads would come in handy in many situations

i thought we did have that stuff already. i must have imagined it :slight_smile:

The join_triangles Node does this, altho the UI is perhaps not intuitive. It does produce quads better than i expected.

1 Like

Houdini kind of sup[orts this workflow but it is highly discouraged as it completely breaks the procedural nature of the node flow.

In Houdini you can manually select polygons and extrude and that will place a select node and extrude node in the node tree but that breaks the node tree.

SideFX trainers are very clear, they offer a multitude of ways to select polygons, edges and vertices there always a procedural way to approach the problem.

If you’ve discovered a deficiency in the way Sverchok does selections then if you make a good case the developers might be able help.


thank you @Infograph i don’t seem to find the patience to explain this to people. thank you. thank you.

it’s not like we don’t want to support it, but the code that would be required to facilitate it seems not worth the time, and it would never really read the user’s mind anyway.

1 Like

High zeffi,

Can you explain what I’m doing wrong here please.

I’m working on a visualisation project where I want to use dynamic weight painting to generate geometry with Sverchok. In the example below I’ve painted weights on objects but the extrusions don’t line up. How can I get the weight painting and geometry to line up please?

The cube had a blob of weight in the centre of each face and the plane has obviously got a line across it.

Thank you for continuing to make Sverchok such a pleasure to use.

Thank you for continuing to make Sverchok such a pleasure to use.

we make it primarily for ourselves, and we are our own harshest critics. we tollerate its faults only because we know it’s doing the best it can with the rules we give it. And. we are lazy so we like stuff to work and kind of read our mind when possible. Glad you’re finding some enjoyment in it.

How can I get the weight painting and geometry to line up please?

i have 4 responses

  1. i don’t know
  2. i don’t think i’d use Sverchok for that
  3. 1+2
  4. link a simple .blend so all i have to do is open it and see what you see there, something might be broken. I don’t see many users using the weight paint features in Sverchok.

No worries.

I’ll do the project in Houdini.

The join_triangles Node does this, altho the UI is perhaps not intuitive. It does produce quads better than i expected.

It seems that it does. I missed that one. I was looking for something with quads in the name. My bad. Thank you!

i’ll add tris to quad to the kw trigger for the alt+space search feature. ( done: https://github.com/nortikin/sverchok/pull/3432 )


:slightly_smiling_face: thank you in the name of all the noobs!

join the club @M.Vladimir, we’re all learning :slight_smile:

1 Like

The problem is that the Weight is a value per Vertex and the extrusion is set per Face.

You could try to determine the average weight of each face and use that value as the extrusion height

The ‘Monad’ slows the node-tree and it could be replaced with a scripted node

You can get the script from here https://github.com/nortikin/sverchok/issues/3444


Thank you for the explanation @vicdoval. I appreciate the time you’ve taken to answer the query.

I couldn’t understand why the weight painting caused faces that were completely unconnected to the vertices that were weight painted to be extruded. I could understand if there was an offset but the pattern looked almost random.

Am I correct in thinking the Monad example is aligning the vertex weights with the faces? I need to recreate the node setup and see what’s happening with a stethoscope with those lists. I still have trouble understanding lists without the Stethoscope node.

I was going to return to this once I had the time so thank you again for pointing me in the right direction.

I did the proof of concept in C4D in the end and I’m still waiting to hear back from the client so if they want to move forward I’ll be able to complete this in Blender without the hassle of creating Alembics. Cheers.

The Monad (Sverchok node group) is just a way to match the data because the “List Item” node does not accept multiple lists as indexes,
The List Item node gets the weight of each vertex of each face.
If the face is [0,1,2,3] it will take the first four weights of the weights list [0.1, 0, 0.3, 0.9] then List Math node will make the average of that values.

I hope you manage to do it and your client answer positively

1 Like

Thank you again.