Scale position directly on gumball

Hi, I am working a lot with hand made compositions from various geometry, kind of balls only. Discovery of ScalePosition was real deal-breaker. I am worrying if it is possible to add this function on gumball scale/extrude like. Does it already possible or need a bit of tinkering?

I did small mock-up how I imagining it.

The advance should be to easily shrink the composition without deformation of geometry.

All the best,

Hello - Gumball is pretty well overloaded with controls, but your comment makes me wonder if various commands could have a Gumball option to actually execute the command using the relevant parts of the gumball. Something to think about anyway…


Currently Gumball doesn’t have this scale position functionality

There is this feature in other software called “linking” or “parenting” where u can parent an object to other object (say a point).

so when u parent the spheres in the example above with points, and then scale those points with Gumball, it does exactly like what Daniel ask.

are there any parenting functionality / similar in native rhino?

For the moment some workaround is you can distribute the spheres through points with GH and then scale the points with Gumball


  1. Convert these balls to blocks.
  2. Use Gumball.
  3. Use BlockResetScale command.
1 Like

@pascal Thank you for thinking about it. It is true that gumball has a lot of functions, and it often happens that I click through and use something else. For some case, it would be helpful to have some check box of function, which can be simply activated/deactivated.

@Runnie Thanks for the nice idea. It can be used in sphere case, but if you need to work with an orientation for instance leaves, it would do not work. For sure with some more rules defining plane orientation in grasshopper (attractor or etc.), it could nice.

Ad. 2 It must be possible somehow with “History” my school mates made whole mechanical assemblies with it.

@andrew.nowicki Neat, It is possible to make some macro, which automatically reset scale after usage?

You do not need a macro - just select all blocks in one BlockResetScale command. (I made lots of programs and macros in AutoLisp/AutoCAD, but none in Python/Rhino because I hate all programming languages that are not based on Lisp.)

“Lisp… is a programmable programming language… C++ template programming is to… Lisp macros what IRS tax forms are to poetry.” - Christian Schafmeister

Yes, actually most of it can be done by Grasshopper though. But im interested with your approach by making gumball much more robust

For some other 3D package, with parenting feature, they often have align function on it. (Say they are parented to a series of point. But each of them has align function to orient into an animated object).

Again this is doable in grasshopper.

As with other 3D package, they have both visual scripting and also a built in function like this directly as a command

Can check out 3Dsmax roadmap and see wild things they did for this. @pascal

I can imagine gumball can also utilize what 3dsmax is using like:

  • transform center bounding box
  • transform local
  • transform individual object local.

Very useful with just everything inside 1 gumnall. Bcz used very often.


Dear @DanielK1 and @andrew.nowicki
-> convert Objects to Block / Blocks
-> _pointsOn will show the insert-Points of blocks - this will do the trick
-> _selPoints
-> do any gumball shear rotate whatever… transformation
no blockResetScale needed
kind regards -tom

1 Like