How to model a figure 8 loop that's uniform and doesn't intersect itself?

Hello, I am currently trying to model a 3D figure 8 loop and realized that it is actually not as simple as I thought it would be…lol. Anyways I tried free handing it (see attached photos) however my version is unevenly sloped and isn’t uniform through the whole band. Is there a better approach to modeling this figure or is this a job to be done in grasshopper? I’d love some pointers as I’m also pretty new to Grasshopper but I’d love to learn. I’m also attaching my rhino file for better inspection. Cheers!




Infinity loop pendant.3dm (2.0 MB)

There are some ideas in these threads:

But perhaps a new model is called for to match this image from your Rhino file… :thinking:


figure8_2024Aug7a.gh (8.9 KB)

I took a shortcut and “observed” the closely spaced curves but ignored them when creating the lofted figure eight brep.


figure8_2024Aug7b.gh (29.0 KB)

Oh look, getting the closely spaced curves was easy :exclamation: Just added the yellow group.


figure8_2024Aug7c.gh (29.4 KB)

2 Likes

That’s amazing! I wonder what else you would need to add to the script so that the loop geometry doesn’t clip through itself at the intersections, but lay on itself flat?

There is much more that could be done.

Reminds me of my days as model railroader.

With the clarity of hindsight, this version is:

  • more parametric
  • simpler
  • smoother, since the Z values are spread over the entire figure eight instead of only half of it

I addressed the “clipping” at the middle, where top and bottom cross, by re-shaping the Graph Mapper to increase the “easing” at both ends. Other ways get more complex.


figure8_2024Aug8a.gh (32.0 KB)

Another way to do a figure-8 is without tangent circles, using angle and length params:


figure8_2024Aug8b.gh (11.2 KB)

Which I incorporated into the earlier code: (white group)


figure8_2024Aug8c.gh (33.2 KB)

1 Like

Other than avoiding self-intersection(s), I don’t know about the rest of your constraints, if any. So here’s another idea in case you’re interested:


ocho.gh (31.6 KB)

This part is not 100% there - I can test an idea for it, though: since this object is getting meshed and SubD’d before it’s a solid closed brep, I should be able to ‘flatten’ the overlapping face for this matter.

I did - 'could be fancier but it was an experiment.

Here’s that second try:
ocho.gh (30.6 KB)




The effort was really about that ‘overlap planarization’.

1 Like