Building Curvature Pill / Racetrack Curves

Hey Rhino Forum!

Would love to hear different methods on how everyone builds pill / racetrack shaped curves in a way that is smooth or curvature continuous. The “perfect pill” where you have two circle halves joined together doesn’t give you that great of a surface.

Some ideas on the shape!

Hello - please attach the specific image you’d like us to see - I get entire pages of pinterest from your links above. Meantime, BlendCrv is probably your friend here.


1 Like

Thanks for letting me know! Generally I would start with two lines and BlendCrv to get the initial curve and Rebuild with needed points and manually adjust points with CurvatureGraphon. Would be curious to hear different workflows and tips.

Attached here:


How about drawing a rectangle and filleting its four vertices with a desired radius? Or instead of circles, like you mention above, use ellipses?

Hello - If the sides are straight, I would make two lines at right angles, one as the side and one at the max points of the radius. BlendCrv these, with curvature on the side and tangency on the max point. Adjust the blend inside the BlendCrv command to get the nice graph to taste.

It will never be as crisp and geometric looking as a tangent 180 degree arc - like on the speakers image - with a G2 -to-the-sides curve of course.


1 Like

Sweet! Attached a 3DM file at the bottom and got a few more questions:

  1. Is there a way to adjust CV’s after you’ve exited the BlendCrv window while keeping the ends curvature? While the Adjust Curve Blend window is open, you can drag CV’s and the other points will move to keep that inferred curvature

Dragging a random CV around and it is independent, does not move other CV’s to keep edge G3

  1. Getting combs to match across a mirrored plane. How do you keep the comb on the tangent side to be perfectly normal so that when mirrored, the combs are tangent?

You have to manually drag the 2 edge and eyeball the comb to be flat

Then you get peaks like this

This is eyeballed so it’s still not perfect. Even if you use Match the combs don’t blend into each other

CurvatureCurve.3dm (34.9 KB)

Hello - use BlendCrv with History, Mirror a copy with History and then use BlendCrv > Edit to make adjustments to the first one. You can get pretty darn close to a smoothly blended graph by eye. That said,since you are blending to straight lines you can move any of the points ‘ortho’ without breaking continuity.


please just implement euler spiral. it ensures geometrically perfect transition G2 curve. blending 2 curvatures would result in curve having curvature varying linearly along the its length. just add one more option in blendcrv to pick euler spiral. it has wide range of applications. in roads rails etc

1 Like

i addressed that question (not knowing about euler spiral at first) in this topic @ivelin.peychev was so kind to point that out for me.

i believe that euler spiral may not only be for special cases a very good option but also for design questions when you want a very even transition. since that is a bit too much math for my small brain i have to fiddle that up manually, following the tangents and placing Control Points along them.

1 Like

lets just press on mc neel little bit together :stuck_out_tongue: . i think this should definately occur in version 7. it is difficult mathematics behind it but thats why we have software companies. bentley microstation has this type of curve among primitives.
i think this is highly relevant feature for rhino with tons of applications.

1 Like

that is probably not going to happen, version 7 is pretty much developed, getting an official invitation to try wip 7 recently i even assume its going to surface not very far from now. but i could be wrong :wink: dont want to spoil any possible surprises :smiley:

but for version 8 i would certainly be happy about that. that is going to make many more people happy who probably dont even know that they want it.

for example when i use blend curve in Rhino, the initial suggestions leaves much to adjust. but why do i have to adjust? in most cases if i am seeking to blend to edges with the smoothest possible transition, why cant that be precalculated and leave it to the designer to change it to a crisper transition if wanted.

below i tried up to g3 and all initial Rhino suggestions are not usable to act as anything you could need. i manually fiddled around with the handles to get them roughly anywhere close to usable, maybe my idea of a smooth transition is off? but having that calculated as the one and only smoothest transition, why would anybody not want that. @pascal any thoughts…?


i think beyond automatic blend there is something much simpler mathematically than rather special integrals as in case of euler spiral. you hit the point with “many people dont even know they want it”. rhino is designers software. capability to produce perfect smooth transitions should be really its high priority. this takes few days to do some research about mathematics of euler spiral and two hours to bring new option in blendcrv panel and tadaaa you have one really powerful feature in your software

1 Like

Hm ok so if I have a curve already drawn [whether hand drawn or through BlendCrv] and I ShowPt and want to adjust points, is there a way to keep the curvature and have points adjust as I move one of them? Or I would just have to delete the curve and redraw using BlendCrv

Still don’t see a clear answer to drawing these curves / modifying them

Hello - EndBulge will let you adjust in a costrained way, or use BlendCrv with History - then you can use the Edit option to go back and adjust.


1 Like

hello Pascal please reply on suggestion about implementing euler spiral

Oh perfect thanks; that’s exactly what I was looking for. Is there a way to move more than one point? Or to mirror the movement?

Hello - no, to both, I’m afraid, for EndBulge.


1 Like

Since we’ve talked about the CurvatureGraph a lot in this thread, does anyone know if there’s a way to export the CurvatureGraph cones as an Illustrator file or PNG?

Could see some potential use cases where you might want to use them for visuals / illustrations.

run the CurvatureGraph command while this is running run ExtractCurvatureGraph

1 Like

Awesome! Any chance there’s a setting to extract with the hair density? Or only possible to get the perimeter cone?