How to procedurally make an origami lamp that can also open like a fan in animation?


I am new here and I joined the forums primarily to ask this specific question. I unfortunately hit a wall on this one after looking everywhere I could on the Internet.

I am trying to figure out a way to procedurally make an origami lamp that can open like a fan in animation, say, to show the bulb inside it.

This is the kind of end-result that I’m after.

I am open to getting specialized add-ons or any other tips or tricks that can get me closer to procedurally generating shapes like this (if it’s ever possible).

I’ve found something pretty close to it on YouTube, but it’s for a basic origami fan: And I’ve fiddled with the nodes for a while to get it to form a cylinder with alternating vertices which I was hoping to manipulate with vector values. But it didn’t work out since I couldn’t find a way to scale the generated concentric vertices towards the center axis.

Here’s the link to the video of my issue and the actual file I’ve been working on. (I promise, this link is clean.)

Thank you!

Welcome to BA :slight_smile:

Doing this procedurally is going to be extremely complex. Doing it with shape keys will be very simple. Model your lamp fully expanded. Make that the Basis shape key. By hand, move the vertices where they should be for collapsed view. (A lot of this will probably just be scaling and rotating.) make that a new shape key. Now you can just keyframe the influence of that second key to expand/collapse :slight_smile:

Wow! I have not been aware of that feature!

Thank you! I’ll go ahead and try that one and will get back here with how it went! :pray:


Thanks for the help. Shape Keys are amazing. Although I’ve soon discovered that the animation I’m going for would require manually rotating vertex groups. It appears that I’ll have to make around 20 of these groups, and rotate them one-by-one. The lantern should open sideways, much like an origami fan.

Would there be a more efficient way of going about this wherein I wouldn’t have to manually position the intermediary vertices?

Here’s the video of where I’ve been at so far. It works almost exactly like how it should but the manual adjustments may bog me down when trying to animate multiple types of lanterns with more vertices.

Thank you for any help! :pray:

You could use an array modifier to duplicate the shapes, and a driver on your shape key.

I’ll see if I can mock something up

1 Like

fan array.blend (812.3 KB) - cc0 license

This is a little rough, but it shows the concept.

Steps are:

  • make one segment of the fold
  • set up the shape keys for folded/unfolded state
  • add an empty at the pivot point
  • add a driver on your “unfolded” shape key driven by the appropriate axis on your empty, adjust the multiplier in the formula til it extends at the same rate as the rotation
  • add an array modifier to your fan, set to object, using the empty as the object for offsetting, and set the number of folds you want in the array count.
  • add another empty, drive the rotation of the first empty with the rotation of the second empty, divided by the number of folds you want.

check out the file and let me know if you have any questions.


This looks very promising and probably exactly what I need! (I may use this for actual production. I work on ads.) I’ll get back here with the results but I am already feeling very optimistic about this. Thanks a ton! :pray:

1 Like

It works! I don’t mind it being a bit rough. It can always have better math, I think. I am so bad at Math myself. Hahaha! But it works pretty well when I test rendered it and I don’t think anyone would notice the overlaps. Thank you so much! Would show you where I ended up at but the forums would no longer let me paste Google Drive links.

1 Like

Yeah, the interpolation of the shape keys in the driver is where the issues are, you can manually modify the driver curve to compensate as needed.