0
$\begingroup$

How would you begin to make these kind of stairs with Geometry Nodes?

enter image description here

I tried all kinds of tactics like raycast and so on, but they all had annoying glitches in them. I'm sure there are better ways.

The main thing is that the base geometry should be like this mesh, completely flat:

enter image description here

And the hilighted vertex should not in this state generate a flat post (like you can see in the video), only when it is a 'corner' it should generate a flat post (or flat tower, or how should it be called)

enter image description here

$\endgroup$
5
  • $\begingroup$ I would start with figuring out how to handle the slope. If the base geometry is laid out flat, then the system needs a way to know how high it has to go. It could be a total height value stored as a property on the modifier level (in that case it would be impossible to have different staircases with different heights as part of the same object), or it could be a dynamic height depending on the path length, which means a fixed slope. That would be a little constraining because you wouldn't be able to shape it exactly like you want, since that would change the total height as well. $\endgroup$
    – Hadriscus
    Commented Oct 18, 2023 at 11:53
  • $\begingroup$ In the GIF, the staircase changes height mid-way to accomodate for the change in length. That probably means the user specified a total height and lets the staircase interpolate between ground-level and top-level. It also means the step height (or slope) changes accordingly. $\endgroup$
    – Hadriscus
    Commented Oct 18, 2023 at 11:55
  • $\begingroup$ I would also consider using a curve instead of a mesh, since curves have a direction it is straightforward to specify where the staircase should start and where it should end. You can also easily raycast against another geometry from the curve's endpoint and let the result decide of the total height. Curves won't let you make forked staircases though, but I'm not sure you would need that. $\endgroup$
    – Hadriscus
    Commented Oct 18, 2023 at 11:59
  • 1
    $\begingroup$ As for the flat post, you can decide whether or not to place one depending on the curve's angle at that point (using "offset point in curve" and "evaluate at index" nodes and figuring out the angle between two vectors : wikihow.com/Find-the-Angle-Between-Two-Vectors) $\endgroup$
    – Hadriscus
    Commented Oct 18, 2023 at 12:06
  • 1
    $\begingroup$ @Hadriscus Thank you! Your input guided me and I got the angle working with this: blender.stackexchange.com/a/290563/8282 - I just threw an 'absolute' node in there. I need to make this a little bit further until I post an answer $\endgroup$ Commented Oct 18, 2023 at 14:56

1 Answer 1

0
$\begingroup$

Managed to get somewhere.

Nodes are too messy to post here, but take a look at the .blend

Work continues... I'll update this post if I get further.

enter image description here

$\endgroup$

You must log in to answer this question.

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