# How to make a torus progressively thinner/smaller (not larger) using an array modifier?

I've managed to do an approximation of the opposite of what I want:

By pairing an empty to the object offset in the array modifier of a torus, and scaling the empty.

However, what I'd like to do is something like this (preferably parametrically/procedurally/non-destructively):

(However in this image, this is non-procedural/destructive):

(Cross section view):

And have multiple parameters that allow me to control:

1. Distance between toruses
2. Rate at which they get smaller

Put another way, see this image:

1. For every new torus:
2. Scale the magenta circle slightly larger
3. Scale the red circle slightly smaller
• I don’t understand. Why is the one labeled as the center torus bigger, and are we looking at the side of some thing that’s actually vertically arranged? Commented Sep 16, 2021 at 0:08
• You do know you can give something a scale factor of 0.5 on all three axes, right? Commented Sep 16, 2021 at 0:09
• @TheLabCat Sorry I should've made that clear, the illustration is a cross section (if I understand correctly), as though slicing the toruses with a knife in the center.
– Hmm
Commented Sep 16, 2021 at 0:11
• @TheLabCat I'm not sure what you mean by giving a scale factor of 0.5 on all three axes (or I think I understand you but just not sure what you're trying to say). If you scale the empty both above 1 and below 1, you get the same (or similar) shape as above where the torus thickness gets larger as you go to the outer rings.
– Hmm
Commented Sep 16, 2021 at 0:12
• Oh, I see. You want the inner torus to have a smaller major radius (thus of course being inside the other toruses), but a larger minor radius, resulting in an overall lumpy cone profile of the toruses combined. Commented Sep 16, 2021 at 0:12