Irregular Parametric Dome

Hi all,
I am learning Grasshopper and recently followed a tutorial to model
Just (32.6 KB)
a parametric dome. I am now trying to adjust the dome to an irregular shape that I can control, but I am having issues generating the 3D surface. I have tried using the Patch command, but I guess I am doing it wrong. I am attaching a screenshot of the geometry I am looking for (more or less) and the code. Any help would be much appreciated. Thank you for your time!

How about usingRail Revolution ?

Just (32.8 KB)


In addition to @HS_Kim solution you could scale the arc in order to have ellipse instead of arc. So the top is flat

Just dome (28.5 KB)


It produces eight open breps when you only want one. Same with Laurent’s model.

Sweep 1 is close but has self-intersection problems.

Loft of BiArcs works pretty well, but it needs more division points to accurately follow the rail.

Just (26.6 KB)

P.S. On second thought, Rail Revolution works fine with only one profile curve.

Just (25.6 KB)

1 Like

One downside of usingRail Revolutionis that it seems to produce multiple breps instead of one brep if you use multiple profiles…not sure why.

Here’s another possible solution.

Just (25.5 KB)

1 Like

I noticed that. Works great with only one profile curve.

If your profile curve is parallel to the xy plane at the top( the top two control points are parallel to xy), then the result will be an untrimmed surface. Rhino doesn’t like singularities. OTOH, Pufferfish has a component Unsplit Rail Revolve, which will still give you an untrimmed surface on a profile curve that would usually result in a brep. This allows you to take advantage of uv coordinates and things like Evaluate Surface. On the other other hand, when you bake this surface you get back a brep, or a pumpkin.

1 Like

You can make a single brep by using Solid Unionif you prefer the final shape would follow the irregular profile arc heights…

Seems like RhinoCommon only offers a method with a single profile. Same for the Rhino command.

1 Like

Very strange!

You are awesome guys! Thank you all for the insights and recomendations. I now have the irregular dome.

Could be better with dual mesh (here from nGon plugin)

Interesting. Used that method with Python to get “Untrimmed Surface” instead of “Open Brep”:

import Rhino.Geometry.NurbsSurface as rg

a = rg.CreateRailRevolvedSurface(P, R, A, S)

Just (21.9 KB)

Presumably, this is the method Pufferfish uses. If you bake the result you end up with a brep.

I discovered by accident the other day that the hexagonal pattern is available from TriRemesh ‘D’ (Dual) output, without any plugin:

Just (20.4 KB)

1 Like

Yes I forgot. But there could be slight variation depending on the way the centers of polygons are calculated (circumcenter or barycenter)