Hard surface modelling - holes in a curved surface

Hello to everybody! I’m new to blender - just started early this year - and have been stuck to a
problem I cannot solve on my own. I’m working on a spaceship which has basically the
form of a sphere. Around the “equator” of the sphere a torus is added around the (basic sphere of the) ship. Facing “north” and “south” the torus holds the outlets of the ships engines. (Basically 24 holes facing north and 24 facing south via mirror modifier.) These holes are located on the torus, but next to the basic sphere. So far whatever I tried, the mesh is always being distorted when I add the holes to the mesh. I used for example the shrink-Wrap modifier or the boolean modifier, added different numbers of edge-loops, used sub surf or whatever.

I tried extensively to use Con Kuonis’ tutorial on “hard-surface with subsurf - holes in a sphere” -which works fantastic on a sphere, but not on the curved surface of the torus. (My impression is
the reason for this is that I don’t now how to us the cast modifier on the torus.)

I would be very grateful if you could help me, as I’m stuck on this particular problem for quite some time now.

1 Like

Welcome to BA,

I made a similair thread a few years ago:

1 Like

That looks familiar, but I’m not sure that this really helps solving my problem. I already tried adding poligons, starting from a few ending at “massive” numbers… My impression is, that the problem has to reasons: first the surface is curving inconsistent, starting almost flat and than curving more intensively. Second that its located next to the sphere. Or I’m doing something basically totally wrong, because I started with a UV-sphere instead of a cube and than using subsurface and cast modifier on it. That seems to work pretty well on the sphere, but I don’t understand how to us that on a torus.

Anyway: your work looks fantastic to me. I appreciate your help very much.

If I understand correctly, you want to add several blind circular holes to the outer surface of a torus. If so, the following exercise may be helpful.
1> Add a torus, changing the segments from the default of 48, 12 to 64, 12 (this will make the quads around the outer surface close to square).
2> Copy the torus and move it to another layer. Apply a subsurface modifier to both.
3> Select four adjacent faces on the outer surface of the original torus and delete vertices.
4> Select the edge of the square hole (there should be 16 edges). Set the cursor to the selection.
5> Add a circle with 16 edges who’s diameter is about 2/3rds of the width of the square hole.
6> Select the periphery of the square hole plus the circle and Bridge Edge Loops.
7> Add a loop cut to the new faces. Then add a loop cut inside the first, closer to the hole and slide it in until it’s very close to the hole.
8> Add subsurface modifiers to both torus and apply them.
9> Add a Shrinkwrap modifier to the torus with the hole, using the other torus as the target. This must be a projection shrinkwrap along the Y-Axis.
At this point, you should have a good looking hole. You can take the edge of the hole and extrude it inward, then form the bottom of the hole, and with a few edge loops near the corners you’ve got something like that shown in the image below. I hope this helps.

I decided to add a screen shot where step 8> is skipped, so you can see what the edges you create should look like.

Hello Vince! Started on it and looks good so far. I will have to finalize it tomorrow (grandparents visiting today…) Thanks a lot.

Can you post an example file?

You don’t really need that many vertices for a smooth hole. See attached image.

1 Like

I came as far as step 9 in Vince screenshot but only on the torus that is the basis for the projection shrink-wrap modifier. When I try to apply it to the underlying torus, I don’t get any dort of a “working” result, a dmoozh hole. All I get are fuzzy yellow lines.

Will try to redo it tomorrow. How can I upload the .blend file?

Hi @Angleheart, if you are having trouble with the Shrinkwrap modifier, make sure that you use Ctrl [A] on each torus to reset the scale and rotation.

Hi Vince! I still don’t get it working. At what specific point of your “how to” do you move the copied torus back
to the original one. I think it has to happen, as otherwise you’re have them located on different layers when

using the shrink-wrap modifier? And do they both have an identical size - can’t see how do a projection when

they both are of the same size? So basically step 1 to 8 work but then I’m stuck again.

To answer your question: the holes won’t be blind once, I will later have to expand them inwards to become

boosters…at the speed I´m moving along right now that will probably be sometime around 2030.

I’ve needed to model circles and stuff cutting into curved surfaces on something I started modeling a couple of days ago. A similar workflow seems to give reasonable results for cutting a circle into a torus.

I use the Boolean modifier and then apply it. I merge vertices around the cut. Then I use the Knife tool to cut a new edge loop around the line of the cut, both inside and outside. Then do some more vertex merging and sliding around with GG. Planning ahead in terms of the amount of geometry needed on both objects prior to the Boolean operation helps.

I’m attaching 2 screenshots: thats about as far as I get. I don’t get the shrink-wrap modifier working. Another problem that occurred to me is the correct placing of the circle after deleting a couple of adjacent faces: I have to try around to place it in the centre of the edge loop. Is there a correct way to make it fit its position? In the final model of the starship the holes would be placed more to the top of the torus and then some 24.

Thanks so far very much for your responses and advice, I’m very much appreciate it and still try my best to get it working…


Hi Vince! This is about as good as it gets. And iy eyes its still far from perfect. I had to use a strange workaround: I placed a ring directly above the faces I would later delete than used the shrink-wrap modifier on the ring and projected it onto the torus on z axis. (seems to give the least distortions, but I’m still wondering how I should place the ring correctly.) Added the two ring loops, but found that the second one doesn’t do anything and deleted it. Extruded the edge loop along z axis (blender didn’t view the extrude-line). Results are still frustrating - looks to me like I made about 80 to 90% of the way.

Thanks John! I´ll try the boolean modifier again. Your results look absolutely perfect.

I use 2.8, but I was able to make a quick example and cut and paste the results into 2.79. It’s far from perfect, but at least you’ll be able to see each of the “stages”.

torus.blend (1.1 MB)

Thanks again! I don’t know how you do it. You even get a great results wile having a few
triangles in the mesh. If that’s “far from perfect”, I could absolutely live with it. Amazing.

Best I got so far. Still not perfect, but I think its a lot better.

Is there a relatively smoothe way to get 24 of them arranged around the torus? Should I be using the array modifier - it would be great if I don’t have to do this workflow-process 24 times.

Create a copy of your object just to be safe and then the segment containing the hole - a 24th of the whole torus in other words. Delete the rest. Create an empty at the original origin point of the torus. Add an Array modifier to the segment, set it to object offset and target the empty. Set the count to 24 and then rotate the empty in Z by the appropriate number of degrees. 15 in this case.

Make sure to uncheck Relative Offset in the Array Modifier as well.

Thanks John! Sounds straight to the point and will probably keep me busy for a couple of hours.

In my example Blend I had to use different number. I had 128 vertices in each circle of the torus. That means I had to take an 8 face wide segment of the torus which contained the hole - meaning I’d have 16 segments after my Array with a 22.5 degree Z rotation for the empty.