Help with Designing a Lamp in vase mode

Hi all,

I hope you’re doing well. This might be a foolish question, but I have a question about my project. I’m trying to design a lamp using Grasshopper, and it starts with a polygon instead of a circle. However, I’m facing some challenges with the modeling process. I would like to know how to create the protrusions on the piece or how I could achieve that with Grasshopper. I’m very new to the program and don’t understand much, but I’m excited to learn!

If anyone has experience or insights on this topic, I would greatly appreciate your help. Thank you in advance!



Honestly? As loathe as I am to say this? YouTube search “Grasshopper Vase”. Because the most common beginner project for which there is a tutorial (literally hundreds) is a vase.

1 Like

For several years now I’ve been using GH for vase and lamp designs that I 3D print. Generally I use one of two basic methods for this: either a Loft shape made from a series of vertically stacked closed planar curves, or a sweep surface made from a single vertical polyline or Interpolated curve.

Here are 4 examples that are similar, but simpler, than the shapes you showed:

All of these are made from GH files - only use Rhino for creating STL files. Also, I never use Vase mode for 3D printing because the resulting single loop surface results in a print that I think is just too fragile for the real world.

The shapes you showed are a bit more complex than the one’s I’ve made - So far I haven’t figured out what the best approach would be to make them.

Well, Vase mode is meant for larger LDM printers, nozzle diameters 4 to 8mm, and from what I can tell you are printing on a FDM machine.

The OP is designing a lamp to be printed in Vase Mode not a Vase to be printed in Vase Mode!

Vase mode is great for lamp shades because it is lightweight, doesn’t need much strength and is thin so can let light shine through.

There are limitations to be aware of though like too much overhang.

Break this down into steps… Here’s an example of one way to do it.

  1. Create your base polygon. (parameters = size, sides)
  2. Create a vertical, linear array of these polygons. (parameters = number, spacing)
  3. Scale the stack of polygons by varying amounts to create the lamp shape. (Graph Mapper is great for this)
  4. Add the “protrusions” to the polygons to create the ripples. (Divide polygons into many points and move the points)
  5. Add a rotational twist to the stack of profiles.
  6. Loft through the result
  7. Bake to rhino
  8. Export as STL

Have a go, post your file and people will help!

The steps you noted are exactly the steps I’ve used for quite a while- thanks for your much more precise clarification. I’ve not tried lamp shades per se, but have done many stand-alone desk/table lamps lighted by small LED puck lights. My top-left pic shows 2 of my smaller ones.

For prints like these that have to be handled I found that a thickness of around 3mm allows plenty of light to shine through and also provides a shape with sufficient rigidity to enable safe handling (and falls to a hard floor.). I did discover that whether to use scaling or offset depends a lot on the overall shape of the design, but I reckon this is not new news for anyone.

You mention using GraphMapper in step 4, which I have done several times. But many times I found it was better to manually scale the control curves because it was easier to get the final shape I wanted, and could do so with fewer control curves too.

I remember reading a post by David Rutten years ago in which he said he wrote GraphMapper but never really liked how it worked, and he was aware that others didn’t like it much either. I guess that sort of just stuck with me.

1 Like

Instead of scaling polygons, they can be created at different heights with various sizes using radius values passed through a graph mapper. The OP’s images show sections that are not simple polygons…

1 Like

Here’s a starting point…
You can also split the base polygon to make it a star as an extra step 1b.
Lodted_Wavy_Poly.gh (13.6 KB)
It’s doing something weird though that needs some attention. creates a bad mesh when exported to STL.
Also, creating the wavy effect could be done in a better way, I’m sure

I don’t think anybody here is confused about that.

Far from complete. I didn’t know what to do for lines so I piped them. :roll_eyes:



lamp_2024Nov5a.gh (28.3 KB)

You can print amazing things in vase mode on 0.4mm nozzles, like this sierpinski pyramid for example.

The ceramic / clay printers all use some form of vase mode with large nozzles though.

1 Like

This is a bit more polished. I’d accidentally used Vector XY instead of Vector 2pt

You can control the base polygon - number of sides, radius and star-ify it.
Wavyness of the surface
Twist of the shape
Profile shape.

Its quite slow when dividing the polygon profiles into 100 points to create the wavy pattern but interesting when you reduce the amount of points and profiles…

Also, it’s really slow to export as an STL and seems to be a huge file… Any ideas why?

Lofted_Wavy_Poly.gh (23.2 KB)

This update lets you fade the wavyness to nothing at the top and bottom, rather than having it continuous along the whole shape…

Lofted_Wavy_Poly.gh (25.9 KB)

2 Likes

It prints ok in vase mode too

5 Likes

GraphMapper has pros and cons. I like how easy it is to adjust and it can be quite intuitive for controlling a shape.

The downsides for me is that you can’t precisely control the graphs or easily make the curve symmetrical for example.

I almost always use the Bezier type.

@Dani_Abalde wrote a version called Riched Graph Mapper which was an improvement.

Solid. That’s a real clean print. Dimensions? Is that really printed with a single perimeter?

That’s about 230mm high and printed in vase mode as a single spiral. It took 2.5 hours and weighs about 50g. Printed in PLA silk.

For some reason the slicer added a base which I wasn’t expecting but no big deal.

Printed on a Bambu Labs P1P printer. They are amazing printers.

I’ve heard. I remember so much pain working with MakerBots years ago.

I guess we all have our favorites - I typically use a sine curve, but occasionally a Bezier too.

I was most impressed with your GH file, and although I don’t much like the final shape it produces I really like the method you used to produce it. I tweaked it a fair amount to make it suitable for vases:


My GH file is at the bottom in case anyone wants to try a vase shape too. If course it’s fine to use the Loft surface alone for a spiral vase-mode print. (Those print a lot faster :grinning: )

On my system the final Closed Brep calculates in 686 ms and displays almost instantly. Generating the STL file takes only a few seconds. The STL imported into the Orca slicer - which is based on the Bambu slicer - with no errors and looks like this before slicing:


I have a delta printer which is why the printbed is round.

Orca sliced it with no problems in maybe 20 seconds - here’s what a middle section looks like:


The estimated print time for this is a bit over 28 hours, primarily due to all the short moves the printer has to make due to all the ripples. One way I"ve used to speed this up is to make the inside surface smooth - by using non-ripply Intcrvs, so I’ll probably make another change to enable doing that.
Lofted_Wavy_Poly-bb1.gh (27.7 KB)

1 Like

Yeah I had a RepRap… it was a great learning experience but it was painful levelling the bed and getting a print to work and it was SLOW!

The Bambu just works straight out of the box with default settings and is rapid. For the price, it’s the most impressive bit of tech I’ve ever bought.

1 Like

I think it might be best to do the rotation before applying the ripple. You could create a smooth inner offset from the smooth curves then apply the ripple and loft the outer surface.

Nice to see the vase version!

This might be a nice Shapediver project for people to generate their own STL files for 3d printing.