Double helix... sort of

Here are several views to look at because this can get confusing in just one view…

the one below is a helix which spirals with another one.
the one above is what I would like the double helix to look like, except I can only draw it 2d, when in reality the two have to spiral around each other.
What is the best way to do this in rhino for mac?
Thank you.

Well, you could use the Helix command to make one helix, then use the Rotate command with Copy=Yes to copy the original helix around the center point… I think that’s what you want, anyway. Quick video (Windows, but Mac is similar)


i’m pretty sure i understand what you’re trying to do… i hope the way i did it isn’t the best way because it was pretty hard/frustrating (frustrating in that the method i used _InterpCrvOnSrf is really hard to control in a scenario like this)…

but i’ll post what i did so others can see your goal a bit more clearly then maybe offer a better way to go about it.

is that right? basically a hand drawn / less structured double helix?
if so, i did this:

draw a curve defining the basic path you’d like then sweep a circle along it:

use InterpCrvOnSrf to draw the first curve (this is harder than it looks and there are a few tricks i came across to insure the thing continually wraps in one direction)

draw another one with points on opposite sides of the circle than the first one… (this is even more frustrating than doing the first one :wink: ) …you should try using the option key to turn off snapping while you move the cursor to the end of the tube in order to wrap/unwrap the curve which is going to inevitably wrap incorrectly at times (if that makes any sense)

use Scale1D to smash it into an elliptical shape (i originally tried sweeping an ellipse then drawing the curves on that but found it a bit easier to do it on a circular shape)

which leave you with this:

then _Pipe :

good luck

Is this not Helix with the ‘AroundCurve’ option?


the helix isn’t the problem… I can do that part.
The problem is what the entire strand does… if you look at the length, you’ll notice that it isn’t in a straight line… I want it to be loose and change direction… see what I mean?

Yes! That’s exactly what I want! (maybe a bit less squeezed in, but that’s not important, you translated the basic idea beautifully)
I, like you, wish there could be an easier way to do this, so if anyone has this idea, please let both of us know.
for now, this will work:)
Thank you so much!!

Just in case- is the attached anything like what you need? A is two helices around a curve; B starts off with two helices, one with the direcrion reversed and then modified using a Pipe on the curve of the same radius as a cage object (on its own layer) to mess with the spacing…

Helices.3dm (77.1 KB)


this is very promising pascal…
would you mind naming the steps, 1, 2, 3… of exactly how you did this (double helix B), from start to finish, and how you manipulated the spacing?

Hi Izabela -

  1. Make a curve - white.
  2. Helix, with AroundCurve option, twice, with ReverseTwist on one of them.
  3. Pipe the original curve. Cap=None, or Explode and delete the caps, you do not need them.
  4. Rebuild the pipe surface - I used 10 or 12 points around and 10 or 12 in length in this example.
  5. CageEdit the two helices with the pipe as the control.
  6. Monkey with the points on the pipe/cage to modify the helices. I selected and dragged ‘rings’ of control points and squished them into ellipses using Gumball, etc.

The cage is still ‘attached’ in the file I sent, so you can continue to edit using the pipe/cage control points.


[quote]Is this not Helix with the ‘AroundCurve’ option?

I think the idea is to get a helix around a curve except the helix isn’t really a helix. it’s less perfect/more organic.

maybe like two intertwined ribbons blowing in the wind (?)

So I tried pascal’s way and
A. I am too inexperienced to make this work correctly
B. I’m doing it wrong…
in both cases, it isn’t looking like it’s supposed to :frowning:

I tried doing this and I get stuck on the cage edit…
I may be doing something wrong, not sure…
in any case, since I have the front (long) view of what I want this to look like, after the two helixes were done, I was able to simply turn ‘points on’ and drag each one in front view to the organic front view what I needed them to look like…
it worked, but it takes for ever and is clunky.

closeup: the dark green is the helix I created with points turned on. I then moved the points to follow the line of the original front view drawing:

but as you can see, it looks quite clunky, plus it took for ever to do point by point.

front (length) view of wat it’s supposed to look like… that part looks decent… haha

i think something like this might be scriptable… a rough go at getting one random helix:

import rhinoscriptsyntax as rs
import random

cPt= rs.coerce3dpoint([0,0,0])
vec= rs.coerce3dvector([0,0,1])
point = rs.AddPoint(50,0,0)

for i in range(0,100):
    point= rs.CopyObject(point, (0,0,rand))
    point= rs.RotateObject(point, cPt, 45, vec)


i’ll mess around with it later tonight to try to get a second opposing curve which doesn’t collide etc… these could then be flowed along another curve to provide a different shape.

it’s only random in the way it looks, but from the front, long, view, it needs to specifically look like this… so it’s only ‘random’ when you think about a perfect, straight, equally divided up helix.
see what I mean? (I drew in a straight black line to better show how the ‘helixes’ change direction.

hmm… in that case, you might be better of it trying something like:

• draw a helix
_Rebuild it (so there’s less edit point… in the example i rebuilt to 50 points instead of 150)
• go to front view and turn control points on ( _PointsOn )
• drag/move/rotate the points into proper position (the gumball will probably be good to use here)

it’s not going to be super fast but i believe you’ll be able to get the desired shape if doing it like this.

this is most definitely the best way to handle this problem thus far… thank you so much Jeff.
Do you happen to know if Gumball also tweaks the “helix” in the right/left view?
I took a screen shot of the top view… the light blue line is the original helix, and the light purple is after gumball manipulation in the front view port… notice that the left side’s turns are almost flat… I wonder if I just didn’t put enough twists into it… I will play with it and see.

well, it tweaks in all views… i was just suggesting using the front view as it might make it easier to see the profile than when in perspective view… but when in front view, the points are still being moved around in 3D.

as far as your image, it’s hard to tell what you did.

basically, what i was thinking is:
turn all your points on then from one side, start working your way down the helix adjusting the rest of the points:

the first 3 points from the left are where i want them so i select all the rest then move them…

now the first 5 look good so i leave them out of the selection and move again…

and just keep repeating as i work toward the other end of the helix… (and again, even though i’m in front view here, the points are updating in 3D…or the curve isn’t being flattened, it’s still spinning around a centerline.

but you can move one point individually, or along with other points in a multi selection… you can also move them in other directions if using other viewports… as in, you could make certain parts of the shape fatter or skinnier instead of what’s happening in my examples which is- the shape will maintain the same basic roundness dimension of the original helix.

that makes perfect sense…

Thanks to everyone for all your help:)