I am a beginner in Blender, I know how to use the basic commands but don't have much experience creating models. I am trying to create a circle of ribbon-like DNA with the base pairs detached in the center like this, except with a few caveats. enter image description here

The base pairs should be able to freely rotate around the "vertical" axis, and somehow I can control the loop so it can writhe/contort (like go from a circle to an "eight"). Could anyone please help me figure out how to do this or point me to some resources that could help?


Another way this can be done is to add a circle, then in edit mode, duplicate it and move the two pieces, so they are on either side of the origin (equally distant):


From here, just add a Screw Modifier. You need to increase the "screw" value to make it stretch upwards. You can adjust the other values to your liking:


You can adjust the size and shape of the helix by adjusting the size and shape of the two initial circles, as well as their distance from one another. You can also play with the screw angle to adjust the "tightness" of the helix. More turns may require you to increase the number of "steps" to keep the curves smooth:


If you want to curve the whole object into a ring, you can do so by using a Bezier Circle and a Curve modifier. First make sure you have access to the Bezier Circle by going into User Preferences > Addons and search "curve" to enable the " Curve Tools" addon. (This may or may not be necessary to access the Bezier Circle - I have had the addon enabled for so long, I can't remember if the circle is there without it)


Once this is done, the Bezier Circle should appear in your Add menu. Add one to your scene:


Scale the curve in edit mode to an appropriate size (I did 20x based on my initial mesh size), and rotate it in Object mode by 90 degrees so it lines up with your helix:


Add a Curve Modifier to the Helix object, and select the Bezier Circle as your curve object. You can see I needed to increase the iterations of the helix as well to make it fit better (I know it's not perfect - we'll fix that):


To make the ends "meet" properly, you will have to fine tune the values of the Screw modifier. You can see I had to go a bit off the 720 degree mark and increase the height a little to make the ends match perfectly. Make sure you have merge checked as well.


After that, you can apply the modifiers if you want to, and then you can delete the circle as well (also if desired). You can also do a merge-by-distance just to be safe, but things should be fine already if you matched it right.

  • $\begingroup$ Hi thank you, I was mainly having trouble with making this a closed loop (attaching the ends of the DNA). Could I have help on that as well? $\endgroup$ – vbcnxm Nov 23 '20 at 0:39
  • $\begingroup$ Sure. What do you mean by attaching the ends though? Do you mean connecting the loose strands on either end, or connecting the two ends together to make the whole thing into a ring shape? $\endgroup$ – Christopher Bennett Nov 23 '20 at 1:25
  • $\begingroup$ I mean connecting the two ends to make a ring shape, is this possible to do? $\endgroup$ – vbcnxm Nov 23 '20 at 1:52
  • $\begingroup$ I updated my answer to show you a way to do this. $\endgroup$ – Christopher Bennett Nov 23 '20 at 2:11

Here's a step by step guide to create the shape of DNA.

First, we need a base mesh, a cylinder will work quite nicely. Create one with "Shift+A". Add some edge loops while in edit mode, around 4 should do.

Add edge loops to a cylinder

After this we need to add a second cylinder in the same object. We need to add a mirror modifier and then turn off merge and clipping in the mirror modifier settings. Then in edit mode on the object. Move the cylinder along the X axis around 2 meters.

Mirror Modifier

Great, now we need it to be taller, we can use the array modifier for this to add more sections instead of scaling. Remember to set the direction to the Z in the array modifier settings so that it goes up instead of sideways.

Adding array modifier

Now it just needs to be twisted. We can use the simple deform modifier to give it a bending deformation.

Simple deform added

Hopefully that's enough of a jumping off point for you to get started. Hope this helps.

  • $\begingroup$ Wow thank you, could I ask how I could attach the ends of the double helix to make a closed shape? This is what I have mainly been struggling with $\endgroup$ – vbcnxm Nov 23 '20 at 0:13
  • $\begingroup$ If you use a curve modifier to create a circle you can then use the weld modifier to merge the ends. $\endgroup$ – Nascent Space Nov 23 '20 at 2:14

enter image description here enter image description here It's so simple just by using modifiers and be crative I will share blend file to know how it work and repeat . add you detail in base mesh you crated .


Not the answer you're looking for? Browse other questions tagged or ask your own question.