Need assistance making truncated pyramid where all faces can be adjusted

Hi, I’ve been trying to create a geometry that resembles and upside down truncated pyramid with the roof plane being able to rotate along the YZ axis. I’ve tried using the rectangle node, but it only allows me to adjust 2 sides out of 4 of the ground plane. Is there a way I can adjust all 4 sides? Additionally, is there any way to join this as a solid without baking? I essentially want the roof to adjust to the wall heights as I rotate it around the YZ axis.


you can rotate the top rectangle before creating the geometry

inspired in what Adel said but less elegant
upsidedownpyramid.gh (49.5 KB)

1 Like

Hi Rene, thank you so much this is such a big help!

Hi Rene, is there any way for the bottom plane to be adjusted as well? I am toggling stuff but I can’t find a way to adjust the size of the bottom plane!

1 Like

You can add X and Y sliders to the starting box:

Furthermore there are two sliders, one for bottom and one for top tapering radii in the green box group:

Otherwise, what type of ‘adjustment’ are we talking about? You mean rotating it like the top one?

Hi Rene, I figured it out thanks! Also for the sliders, can you explain by what factor the numbers are being adjusted? What the numbers mean in relation to scale? Sorry, I am not an extremely advanced user and would just like to learn more about how things work.

The ‘bottom’ and ‘top’ values being set feed into the R inputs of the Taper component.

I am using the length of the starting box diagonal vector to influence said ‘R’ values. I multiply with two different sliders so you scale bottom/top of the pyramid and therefore give it its shape.


I was being lazy and chose to create the shape in proportion to multiplying the length of that vector twice.

A more straight-forward approach I guess would be dictating the bottom and top rectangles individually with the actual dimensions you want then construct your pyramid with loft or whatever.

In this approach, the Center Box at the beginning is creating a box you’re deforming via tapering. So it was never a pyramid, it just looks like one :slight_smile:

A simplified summary:

  1. Get the diagonal vector of your starting 3D box (and also the axis of this box)
  2. Use the length of this vector as your base radius value.
  3. Multiply this radius value with two different numbers to feed into the two radii inputs of the Taper component.