I would like to bend certain cutouts in a metal plate to create a facade.

Results I wish to achieve: F

Is this even possible without geometry nodes? I'm still a beginner so I don't know.. I've made the cutouts before and pasted the middle plates in, but that makes it so that the plates are levitating.

What I've tried:

  • $\begingroup$ I don't get your question "Is this even possible without geometry nodes?". Do you mean "Is this even possible with geometry nodes"? How did you achieved your result, with geometry nodes or "classic" modeling? $\endgroup$
    – taiyo
    Aug 24, 2023 at 22:15
  • $\begingroup$ I am not good enough with blender to know anything about geometry nodes. This is why (favorably) i'd like to model it using "classic" modeling. Hence the question: "Is this possible without geometry nodes? or am I going to end up having to use geometry nodes anyway? $\endgroup$
    – FayBeeHun
    Aug 25, 2023 at 6:36
  • $\begingroup$ Interesting reason because i would not know how to do it with geometry nodes, but without, sure. See my answer. $\endgroup$
    – taiyo
    Aug 25, 2023 at 14:04

1 Answer 1


I have no idea if this is possible with geometry nodes but with classic modeling, of course. Though it will be bit of work. To create the facade, we need to divide the work into 3 parts:

  • create the bendable plate shape
  • create the plane of plates
  • bend the plates randomly

Part 1 the plate: (I'll try to keep that short, there are many ways to model and others would approach that differently. It would be an own post.)

Follow the images from 1-8:

  • create a default cylinder (radius = 1) with 6 sides, only keep the top face
  • inset two times
  • add a lot of loop cuts we need (note the symmetry for better geometry later when we create the plane)
  • connect the plate bridge vertices
  • remove the cutout faces and dissolve unnecessary vertices
  • add more loop cuts to the plate brigde and align the connection vertices
  • if you want that rounded corners, add more loop cuts and adjust the corner vertices
  • for symmetry, keep a quarter of the model and apply a Mirror modifer with X and Y mirroring

enter image description here

Now that we have the plate shape, select all vertices from the inner plate, assign them to a Vertex Group, extrude the shape and remove the outer faces from the extrusion (Note: because we took care of the symmetry, the plate can also be rotated in $60$ degrees steps to achieve the orientation in the reference image).

enter image description here

Part 2 the plane:

With our plate template ready, we can create the plane. First place the plate object into a new collection. Add an Array modifier twice to it and set the Relative Offset to $X = 1$ and $Y = 1.5$ respectively (all these values are derived from the unit size cylinder).

enter image description here

Duplicate the plate object and translate it with $X=0.866$ and $Y=1.5$ ($0.866$ comes from $\frac{1}{2}\sqrt{3}$). Apply all the array modifers, go into edit mode, select all, right-click and select Separate > By Loose Parts (for both plate objects). You should end up with a bunch of perfectly aligned plates in your collection.

enter image description here

Part3 The bending: Because we have created a vertex group for each plate and all plates are together in a collection, we can let randomly rotate them by script easily. Head over to the Scripting tab, paste the following script and run it:

import bpy
import random

plates = bpy.data.collections['plates']

for obj in plates.objects:
    # select the next plate and go into edit mode
    bpy.ops.object.mode_set(mode = 'OBJECT')
    bpy.context.view_layer.objects.active = obj
    bpy.ops.object.mode_set(mode = 'EDIT')
    # select the plate's vertex group
    obj.vertex_groups.active = obj.vertex_groups['Group']  
    bpy.ops.mesh.select_all(action = 'DESELECT')

    # random angle up to 45 deg rotation
    angle = 3.1415 * (random.random() - random.random()) * 0.25 
    # and rotate with soft selection
        value=angle, orient_axis='Y', orient_type='LOCAL', constraint_axis=(False, True, False),
        use_proportional_edit=True, proportional_edit_falloff='SMOOTH',
        proportional_size=0.15     # 0.15 based on trying out before

bpy.ops.object.mode_set(mode = 'OBJECT')

Note that the proportional_size value depends on how thick the cutout around the plate is. If the outer ring gets bend too then the soft selection radius is too big. Undo, decrease it a little and repeat the script step.

Because we have been careful with the symmetry in part 1, you could for example now join all objects, selects all vertices, perform Merge Vertices > By Distance, select the two outer edge loops and bridge them and get one big watertight structure.

enter image description here


enter image description here


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .