# Question/Wish: Move vertices to circle?

**URL:** <https://discourse.mcneel.com/t/question-wish-move-vertices-to-circle/219361>\
**Category:** SubD\
**Created:** [May 26, 2026, 2:21pm UTC](https://discourse.mcneel.com/t/question-wish-move-vertices-to-circle/219361 "2026-05-26T14:21:11Z")\
**Posts on this page:** 13\
**Page:** 1

<div class="post-metadata">

**Author:** ![Michael\_Meyer](https://sea3.discourse-cdn.com/mcneel/user_avatar/discourse.mcneel.com/michael_meyer/32/767027_2.png) [@Michael\_Meyer](https://discourse.mcneel.com/u/Michael_Meyer)\
**Post date:** [May 26, 2026, 2:21pm UTC](https://discourse.mcneel.com/t/question-wish-move-vertices-to-circle/219361/1 "2026-05-26T14:21:11Z")

</div>

Hi…,

is there one tool to move vertices uniformly to a circle form, like the Blender LoopTools → Circle?

If not, this is a wish.

Thanks

Michael

[Ring\_SubD\_Test\_R9.3dm](https://discourse.mcneel.com/uploads/short-url/kBAsOByTKnWpJyzQNDdyZzVmdyA.3dm) (5.9 MB)

 ![Rhino_8_SubD_Move_to_Circle_Wish](https://global.discourse-cdn.com/mcneel/uploads/default/original/4X/d/e/8/de83e2a6ae791d567f8b127a528bf7d5e4be00a4.png)

 ![Blender_LoopTools_Circle](https://global.discourse-cdn.com/mcneel/uploads/default/original/4X/8/4/7/847a0be68a35d4bd450b9d145062a5529c1e944e.png)

---

<div class="post-metadata">

**Author:** ![René\_Corella](https://sea3.discourse-cdn.com/mcneel/user_avatar/discourse.mcneel.com/ren%C3%A9_corella/32/769427_2.png) [@René\_Corella](https://discourse.mcneel.com/u/Ren%C3%A9_Corella)\
**Post date:** [May 26, 2026, 2:59pm UTC](https://discourse.mcneel.com/t/question-wish-move-vertices-to-circle/219361/2 "2026-05-26T14:59:36Z")

</div>

Something that may be close\* to what you want:

Fit a circle through the vertices then align them to it.

\*I don’t think the alignment is ‘uniform’.

---

<div class="post-metadata">

**Author:** ![Michael\_Meyer](https://sea3.discourse-cdn.com/mcneel/user_avatar/discourse.mcneel.com/michael_meyer/32/767027_2.png) [@Michael\_Meyer](https://discourse.mcneel.com/u/Michael_Meyer)\
**Post date:** [May 26, 2026, 3:05pm UTC](https://discourse.mcneel.com/t/question-wish-move-vertices-to-circle/219361/3 "2026-05-26T15:05:40Z")

</div>

Hi René,

thank you for that.

Yes, I want a one click, and uniform solution. 😉

Cheers

Michael

---

<div class="post-metadata">

**Author:** ![gustojunk](https://sea3.discourse-cdn.com/mcneel/user_avatar/discourse.mcneel.com/gustojunk/32/481453_2.png) [@gustojunk](https://discourse.mcneel.com/u/gustojunk)\
**Post date:** [May 26, 2026, 3:29pm UTC](https://discourse.mcneel.com/t/question-wish-move-vertices-to-circle/219361/4 "2026-05-26T15:29:53Z")

</div>

Circularize is one of those most basic functions in SubD that we have been asking for since 2018 when SubD was first released in Rhino 7 WIP.

We have come a long way, very very slowly, like all things Rhino, but this basic tool still is not being addressed.

Here’s a few others in my list from 2019 that still today, over 7 years later still are not developed at all:

> [@Current state of SubD, mesh utility and Grasshopper questions/thoughts](https://discourse.mcneel.com/t/current-state-of-subd-mesh-utility-and-grasshopper-questions-thoughts/78749):
>
> Hi All, I’m now using V7 WIP as my daily tool. Most to start using a bit of SubD and do some edits right in Rhino without having to go back to Modo to make changes, re-import, etc. I know it’s early days, but this is painful so far. Some might be user error, some lack of functionality. I’m not sure what’s on your to-do list and what might be an omission so I’ll mention the most disrupting ones just in case it helps: SubD bodies being a separate object than lowpoly bodies they came from it’s…

Number 2,3,4 in that list are still not here and are greatly missed for doing meaningful and efficient work in SubD.

But hey, number 1, 5, 7 are done!

So the glass is half full/empty depending on your expectations for 7 years of development.

G

---

<div class="post-metadata">

**Author:** ![maje90](https://sea3.discourse-cdn.com/mcneel/user_avatar/discourse.mcneel.com/maje90/32/762888_2.png) [@maje90](https://discourse.mcneel.com/u/maje90)\
**Post date:** [May 26, 2026, 7:52pm UTC](https://discourse.mcneel.com/t/question-wish-move-vertices-to-circle/219361/5 "2026-05-26T19:52:02Z")

</div>

![fit grips to circle](https://global.discourse-cdn.com/mcneel/uploads/default/original/4X/1/f/3/1f3438c5f81c3910968127d628a1957f4b543f39.gif)  
[fit grips to circle.gh](https://discourse.mcneel.com/uploads/short-url/gqJf9zW6R9qGCAYrNHd95icL7vO.gh) (3.3 KB)

Works also for different objects:  
 ![fit grips to circle2](https://global.discourse-cdn.com/mcneel/uploads/default/original/4X/e/b/d/ebdc3014facbe352d5f43a6a74f0f57cd5ead93d.gif)

… then I found this thread 🤦‍♂️:

> [@How to order grip objects based on their counterclockwise connection](https://discourse.mcneel.com/t/how-to-order-grip-objects-based-on-their-counterclockwise-connection/97515/3):
>
> Hi @dale currently I have only the following script where I would like to use this for, to make holes circular, but have also other ideas in mind where it could be used. It kind of works if the points are enough in the ballpark. The attached model right hole works, the left will fail. [sample\_subd-holes.3dm](https://discourse.mcneel.com/uploads/short-url/xboYiMBmB8Pt44XFdzJC7cOSuqh.3dm) (126.1 KB) import Rhino import rhinoscriptsyntax as rs import scriptcontext as sc """ This script planarizes a group of points and organizes them equally spaced in a circle script by Gijs d…

I don’t understand if it works… I didn’t try it…

---

<div class="post-metadata">

**Author:** ![Gijs](https://sea3.discourse-cdn.com/mcneel/user_avatar/discourse.mcneel.com/gijs/32/769882_2.png) [@Gijs](https://discourse.mcneel.com/u/Gijs)\
**Post date:** [May 26, 2026, 9:22pm UTC](https://discourse.mcneel.com/t/question-wish-move-vertices-to-circle/219361/7 "2026-05-26T21:22:15Z")

</div>

@maje90 I haven’t studied your code, but @Tom_P improved the script that you were linking to, you’ll find it here:

> [@Accurate diameter on SubD surface edges](https://discourse.mcneel.com/t/accurate-diameter-on-subd-surface-edges/193152/10):
>
> nice script. thanks. I did a modification, that does not match by closest point / index. Fit / match by closest point/index might result in 2 or more points get matched to the same target point. My modification sorts the grips by the closest parameter first. If I find time I 'll add an option, that allows “partial” mapping - therefore maps only to a portion of the circle / an Arc… … that s already quite close to the functionality I would love to see for beautify edge loop and setPtPolar [ci…](https://discourse.mcneel.com/uploads/short-url/cNJtjTJGLvg5X5ZlCD7X9WXQ2NT.py)

---

<div class="post-metadata">

**Author:** ![Tom\_P](https://sea3.discourse-cdn.com/mcneel/user_avatar/discourse.mcneel.com/tom_p/32/766520_2.png) [@Tom\_P](https://discourse.mcneel.com/u/Tom_P)\
**Post date:** [May 26, 2026, 9:52pm UTC](https://discourse.mcneel.com/t/question-wish-move-vertices-to-circle/219361/9 "2026-05-26T21:52:36Z")

</div>

just to keep the topics linked:

> [@Command Wish - SetPtPolar](https://discourse.mcneel.com/t/command-wish-setptpolar/117246):
>
> I am a big fan of the hidden power of \_setPt Command. it would be really great to have a Setpt-Variant / Option to use Polar-Coordinates. the command should have options similar to setPt set Radius set height set Angle Global or Cplane AND additional it should ask for center and target point… regarding the logic - i think it would be a very simple command, but it would allow a great and simple Controlpoint alingment to planes or Circles and other nice workflows… and it would be really c…

> [@(Wish, SubD) Beautify Edge Loop](https://discourse.mcneel.com/t/wish-subd-beautify-edge-loop/180704):
>
> Working and teaching a lot of SubDs in the last weeks. I would love to see an interactive command, that allows to “beautify” a (partial) Edge Loop. (maybe also Face Loop) The command should allow and combine the following optoiins equal distribute spacing / distances (make them all the same) homogenous spacing (locally average the spacing - allowing small to big distances distributed linear / quadratic) symmetry (automatic / set plane) radiate (align to a circle - combined with above option…

---

<div class="post-metadata">

**Author:** ![pierrec](https://sea3.discourse-cdn.com/mcneel/user_avatar/discourse.mcneel.com/pierrec/32/765934_2.png) [@pierrec](https://discourse.mcneel.com/u/pierrec)\
**Post date:** [May 26, 2026, 10:03pm UTC](https://discourse.mcneel.com/t/question-wish-move-vertices-to-circle/219361/10 "2026-05-26T22:03:57Z")

</div>

There is a lot to say about the limitations of Rhino one can find from just a simple example like that. I’ll file YouTrack issues where appropriate and link them to this thread.

One thought here is that at the end of @René_Corella 's process (after the target circle is created, and with the filler faces removed), if you use `SubDMatch` instead of `Align ToCurve`, you’ll get a uniform fit to the circle.

Another thought, is that you can try the `TestSubDAlignPoints Method=FitToCircle` command, and do all this in one step. As usual for the test commands, expect limited support and broken corner cases.

---

<div class="post-metadata">

**Author:** ![pierrec](https://sea3.discourse-cdn.com/mcneel/user_avatar/discourse.mcneel.com/pierrec/32/765934_2.png) [@pierrec](https://discourse.mcneel.com/u/pierrec)\
**Post date:** [May 26, 2026, 10:33pm UTC](https://discourse.mcneel.com/t/question-wish-move-vertices-to-circle/219361/11 "2026-05-26T22:33:47Z")

</div>

Relevant YouTrack issues for this thread:

- [RH-92172](https://mcneel.myjetbrains.com/youtrack/issue/RH-92172) SubDMatch: Match interior SubD edges to curves
- [RH-95840](https://mcneel.myjetbrains.com/youtrack/issue/RH-95840) Circle: FitPoints should accept SubD vertices
- [RH-95841](https://mcneel.myjetbrains.com/youtrack/issue/RH-95841) SubD Edge Select: Make it easier to select loop of creased edges
- [RH-55054](https://mcneel.myjetbrains.com/youtrack/issue/RH-55054) Ability to make an edgeloop circular

I really think this “circularize” functionality should be part of `SetPt` or a similar command. Let’s hope my nudging will prompt changes in this area soon!

---

<div class="post-metadata">

**Author:** ![Tom\_P](https://sea3.discourse-cdn.com/mcneel/user_avatar/discourse.mcneel.com/tom_p/32/766520_2.png) [@Tom\_P](https://discourse.mcneel.com/u/Tom_P)\
**Post date:** [May 26, 2026, 10:50pm UTC](https://discourse.mcneel.com/t/question-wish-move-vertices-to-circle/219361/12 "2026-05-26T22:50:40Z")

</div>

> [@pierrec](#):
>
> should be part of `SetPt` or a similar command

i totally agree.  
you have seen my wish for **setPtPolar** above ?

---

<div class="post-metadata">

**Author:** ![René\_Corella](https://sea3.discourse-cdn.com/mcneel/user_avatar/discourse.mcneel.com/ren%C3%A9_corella/32/769427_2.png) [@René\_Corella](https://discourse.mcneel.com/u/Ren%C3%A9_Corella)\
**Post date:** [May 27, 2026, 2:56am UTC](https://discourse.mcneel.com/t/question-wish-move-vertices-to-circle/219361/13 "2026-05-27T02:56:56Z")

</div>

Thanks @pierrec ! I knew there were some ‘test’ SubD commands but couldn’t find the thread(s) where I learned those existed, so all I could remember was the align option.  
👌🏾

---

<div class="post-metadata">

**Author:** ![brian](https://sea3.discourse-cdn.com/mcneel/user_avatar/discourse.mcneel.com/brian/32/504171_2.png) [@brian](https://discourse.mcneel.com/u/brian)\
**Post date:** [June 9, 2026, 10:35pm UTC](https://discourse.mcneel.com/t/question-wish-move-vertices-to-circle/219361/14 "2026-06-09T22:35:25Z")

</div>

[RH-95840](https://mcneel.myjetbrains.com/youtrack/issue/RH-95840) is fixed in Rhino [WIP](https://discourse.mcneel.com/t/welcome-to-serengeti/9612)

---

<div class="post-metadata">

**Author:** ![maje90](https://sea3.discourse-cdn.com/mcneel/user_avatar/discourse.mcneel.com/maje90/32/762888_2.png) [@maje90](https://discourse.mcneel.com/u/maje90)\
**Post date:** [June 27, 2026, 10:34pm UTC](https://discourse.mcneel.com/t/question-wish-move-vertices-to-circle/219361/15 "2026-06-27T22:34:02Z")

</div>

> [@Tom\_P](#):
>
> setPtPolar

You are right.  
Fitting SubD grips to a circle is just a case of a specific curve. Not enough.  
They need to be on a circle **and** with regular distribution for this to be useful.
