I'm trying to reproduce the proportionally scaling inward and outward (Scale - Shift z) or (S - Shift+Z) but using geometry nodes.

See image below of what I'm trying to get it to do.


I tried this Scaling only the selected vertex group in geometry nodes

But it doesn't seem to work in this case how can I fix this?


Pic of Gorgious suggestion:


Attached blend file below

  • $\begingroup$ You need to switch the Scale elements from Uniform to Axes and set to Z axis to 0 $\endgroup$
    – Gorgious
    Feb 8, 2023 at 16:22
  • $\begingroup$ @Gorgious that didn't work I'll post a pic of what that does and post that in the question. $\endgroup$
    – Rick T
    Feb 8, 2023 at 16:24

1 Answer 1


Since Transform Geometry doesn't have a Selection socket, we need to use the Scale Elements node in Single Axis mode, as @Gorgious suggested. However, simply making the Z axis $0$ would result in a single direction of $(1,1,0)$ whereas we want to scale on two axes—$x(1,0,0)$ and $y(0,1,0)$—so we need to use two Scale Elements operations one after another for each of them:

enter image description here

By default, Scale Elements node scales each face or edge from their own individual 'origin's. To make them move together, we need to use a single Center as the operation origin—here I'm doing that by providing it with the selection's average position I get from an Attribute Statistic node.

As a side note you're perhaps already aware:

Why don't we use the three Named Attributes as a selection directly, and first make it go through a Capture Attribute instead?

Because, it seems, domain interpolation going from vertices (Point domain) to faces have some differences between the old vertex group system (which is a special kind of float+boolean attribute field) and the new generic attributes system in Geometry Nodes. Directly using the vertex groups as a selection gives you extraneous faces (faces those vertices belong to) you don't want in your scaling operation. Capturing the vertex groups as a boolean field in the Point domain forces Geometry Nodes to re-do the interpolation, this time without those extraneous faces in our selection:

enter image description here

  • $\begingroup$ Great! Explanation!!! $\endgroup$
    – Rick T
    Feb 8, 2023 at 19:18

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .