Gyroid structure with milipede


used this video: Gyroid Minimal Surface (Grasshopper Tutorial) - YouTube to create a gyroid structure…

So I created a gyroid (or another structure according to the equation
…) Everything is fine until the moment when I want to set the wall thickness, e.g. 1. If the wall thickness is low (eg 0.106) everything is ok. As soon as I increase the thickness of the wall, the wall starts to come out (as on the screen)

which leads to inaccuracy of the model. Please do you know how to fix it?

Here’s a cleaner way to model a gyroid than using an isosurface

As for thickening extending it beyond the unit cube - that’s to be expected since the surface is not perpendicular to the cube faces.
If you want a repeating unit with thickness and meeting the faces of a cube you’ll need to take a larger patch and thicken that, then cut out a unit cube from the middle of it.

Sorry this did not help me, becuase I also need other structures (neovius, diamond etc…) Meybe what I need is to create a thick wall on both sides equally. schwarzp

as the arrows show .

Offsetting to both sides is good idea to help maintain the form but I’d also suggest looking at using Dendro in Grasshopper to convert to voxels. You could difference off the portions outside the bounding box this way and also heal any self intersections.

and could you please help me with that? I’m lost, I don’t understand because I’m just a beginner. If you would help me, and it would work, I have no problem paying you for your time.

1 cell has the dimensions 10 x 10 x 10 mm. The volume is 1000 m3. (full volume) I need to create gyroid, schwarz p, neovius etc. That the cell has dimensions of 10 x 10 x 10 mm (as in the case of full volume), but that the volume is 30% compared to full volume. So I need 30% gyroid, neovius, etc. This can be set with that thick wall, but the result must be symmetrical and have the correct dimensions.

See Dendro | Food4Rhino

I recall there being a manual in the download too. Essentially you make a volume with some settings and create a mesh from that to bake it out once you’re done. Try a few things on simple objects first to get the hang of it.

I think using Millipede then feeding that dense mesh into Dendro would be rather heavy, and also wouldn’t give you the sharp edges where it meets the cube.
Dendro unfortunately doesn’t support custom mathematical implicit functions, only the predefined distance functions from input geometry so you’d be going from scalar function>level set mesh>distance function from millions of vertices>mesh.

However, there is a way to take the different iso values of the implicit form of these mathematical surfaces to create thickened versions directly without these intermediate steps. (17.9 KB)
Here’s an example not using any plugins like Millipede or Dendro, but a version of the script previously posted here.

I included examples of a few well known implicit surfaces, but there’s also a space where you can add custom ones.

To make the solid it uses a mesh boolean, but I think it should be possible with a bit more work to modify the level set code to make these faces directly for the regions on the boundary cube which are below the iso value, which would be quicker.

I’m also working on a new approach to isosurfacing with a different meshing algorithm and allowing scalar functions to be passed around, modified and combined with either components or scripts. It’s not ready yet though, so I thought I’d share this earlier version for now.


This looks very nice. And please is it possible to copy a given cell in the X, Y, Z axis? In order for the three cells to be next to each other, a rod with a size of 30 x 30 x 30 mm is created

There’s already a bit in that definition to array it - it’s just disabled. Select the greyed out group of components in the lower right, enable it and turn on preview.

1 Like

thanks i got it. And where is X and the size of one cell defined? I can’t find it there

The unit cell goes from -pi to pi in x y and z, because that is the period over which these functions repeat.
If you want to change the scale you need to do it at the end, after generating the isosurfaces.

1 Like

I do not understand this. Can you please be more specific? I need the cell to have 10x10x10 mm


Hmm, I can’t finish it because I can’t see it going beyond the scale … sorry can you send me please .gh file ? And I another problem is, that this cells are not welded :-/

Are you looking for a single solid unit cell arrayed as multiple solid objects, or multiple repetitions of the unit cell as a single solid?
i.e. like on the left or the right?


Is there a difference in the end if the individual cells are combined into one?

I need to arbitrarily set the size to the size of one cell. And then copy the cell in the X, Y, Z axes. For example: In the X axis: 20mm (2cells), Z: 20mm (2cells) Y: 30mm (3 cells). But in the end, the cells must be weldted.

I think that this is good. But now I need to move one cell from the other by 10mm as the cells pass through each other

please can you help me ?

Hello, I wonder how to model this using your script?

1 Like

Thank you! I also wonder how to make the two isosurfaces in the into a solid? I tried to copy the batteries in to but it didn’t work…