Zomes - The Zonohedron dome

TL;DR
I’m a beginner in Grasshopper and basic/intermediate in Rhino. I’m trying to create a script based on a website to design parametric Zomes using laser-cut connectors.

Hello everyone,
Firstly, I’m happy to be able to post here and, hopefully, find a favorable solution to my need. Any help is welcome!

The script idea is based on two websites: one that does advanced analysis for Zome construction but lacks the connector construction technique, only using interconnected woods (Z5omes | A Zome Maker) and the famous Geodesic Dome construction site (acidome.com).

The connector technique involves using long square woods joined by some connector. The most commonly used connectors are tubes, flat bars, or laser-cut connectors.

My need arose from the project in Rhino. When I needed to study a parameter change (horizontal pieces, diameter, frequency, levels, size of pieces, size of connectors…), I had to redesign everything! This makes the study unfeasible. That’s why I’m researching doing everything in Grasshopper.

I downloaded the Polyhedron plugin. It has some different parameters from the site but I’ll proceed from here. In the photo of the project in Rhino, the colored lines will represent the woods with different lengths, and the connectors in black. You can see my progress in GH in the file.
In the end, I’ll try to extract as much information from the model for construction, just like on the website, including planning the connectors to be cut.

Ultimately, I’ll try to translate the website into Grasshopper with more construction technique options.

If I make any significant progress, I’ll keep posting.

Thanks!

test.gh (9.5 KB)
domo.pdf (306.9 KB)
conectores2.pdf (291.3 KB)
conectores.pdf (248.2 KB)
zome forum.3dm (3.0 MB)

1 Like

Hey @luisgallana,

Have you seen this?

– Dale

1 Like

Hi Luís,
Nice work and thanks for sharing your 3D model.

I’m the developer of Z5omes and just to tell you, I’m also going to try to implement a “piped” method on Z5omes and maybe add some connector types.

You can PM me on Facebook on Linkedin if you need help understanding my JS code or if there’s any weird stuff inside ;).

Goodbye and good luck with that

1 Like

@dale Thank you for sharing the link! I watched it all to learn something and got in touch with the creator. It definitely helped with some understandings for the script.

@Rey_Florian
What an honor to have you here!

I recently realized that Z5omes is on GitHub and read all the documentation! I don’t know why I didn’t think of doing that before.

I appreciate the opportunity to get in touch; we can definitely talk!

I will share my progress in Grasshopper (still in the early stages) and photos of the prototype connectors that arrived today! They were hand-drawn in Rhino before thinking about Grasshopper. I believe the effort will bring great results!

I will keep posting as the idea progresses and would be very happy to contribute something.

Thank you, everyone!
I will continue working on the idea.

laser cut.pdf (217.8 KB)
p.pdf (2.8 MB)
prototype.3dm (4.5 MB)
zome_v3.gh (17.7 KB)

I managed to find some solutions without using the Mesh component. The Mesh has some parameters I don’t like, such as being aligned with the lowest point and other parameters changing the height.

I’ve been creating one from scratch to have more control over the shape and try to achieve the solution from the reference site, which I find more versatile. There must be a way to do this using Mesh, but I haven’t figured it out yet. Each solution has its pros and cons; some used GHPython, others just components, but they all share the formula for creating the points.

One issue is not being able to use an odd number for the N parameter, and M needs to be half its value for the lines to be correct. On the site, this is flexible! Additionally, the shape’s radius is controlled by the Theta Angle, and the M parameter controls the number of rhombuses down to the base. This parameter moves the shape to align the base with the last “crown” of rhombuses, allowing a complete shape. Using the formula, I’m stuck at halfway. In one test, I managed to create the complete shape with GHPython, but it doesn’t have the M parameter, similar to using the Mesh.

My goal is still to transcribe the site Z5omes | A Zome Maker into the script.

I’m still trying. Any help is welcome.
Zome_v1 - Tutorial - Mesh.gh (18.9 KB)
Zome_v2 - Components.gh (16.7 KB)
Zome_v3 - GHPhyton.gh (16.8 KB)
Zome_v4 - GHPhyton - complete form.gh (9.2 KB)

Guys, the solution is this attached script using GHPython (code with the help of ChatGPT), but I’m struggling to add one last function:

How can I add a variable M that counts the complete diamond crowns starting from the top?

To achieve this, I’m thinking of using components and moving the “Group” along the Z-axis with the M variable. Each value should align the group of points at the bottom of the diamond to the XY plane, leaving an equal number of “crowns” of complete diamonds from top to bottom.

For example:
In the current script, if N is 4, then M would be 3 (three “crowns” of diamonds from top to bottom). If I reduced M to 1, the shape would align with the XY plane by the third group of points from the top, resulting in one complete crown of diamonds at the top and the second crown “cut” in half. See the attached photo from the reference site.

For this to work, the maximum value of M should always be N-1, which is already in the script.

Any ideas?



Zome_v4 - GHPhyton - complete shape_MOD.gh (9.6 KB)

Well done Luis for how far you’ve already come.

Script development is always long and full of pitfalls, but you’re making good progress.

The design of the connectors is really superb. Thanks for sharing.

Where did you make the prototype connectors?

I’ll try to install rhino and test your plugin to get a better idea of your problem.

We’ll be in touch.

Why doesn’t ‘Equality’ work, but ‘Smaller Than’ does?

You can see it in the list—there are points at 0, but it doesn’t recognize them with ‘Equality’ or ‘Similarity’.

I want to select only the points that are on the XY plane, where Z is 0.

[SOLVED]
I used a combination of ‘Smaller Than’ and ‘Larger Than’ with a ‘Gate And’.

Things are looking great, the shape script is done!

I nailed keeping the number of edges and vertices spot on for each setup and pretty much recreated the reference site. The only difference is how the shape changes with the chosen angle.

Now, I’m diving into designing the wooden pieces and connectors. It’s wild to think about opening Grasshopper for the first time in early May and seeing how much I’ve progressed. Great success!

Update