Landesgartenschau Planar Remeshing

Hello, my name is Matteo and i’m trying to reverse engeneer the Landesgartenschau exhibition hall.

Searcing on the web i’ve found an old discussion were the PlanarHex comand was used to generate the surfaces but there are many issues with that method and the result is not good.

The old discussion:

As you can see in the pictures 1 and 2 there are the wrong number of polygons in each side of the structure

To make a better solution i’ve decided to remodelling all the surface and to make the division of it i’ve used the “sphere” comand to make a better “population division” of the surface as you can see in the pictures 4 and 5

The problem is that i don’t know how to continue with the work; do you have any suggestions?
I found also this ( but that plug-in is nowhere to be found.

Thanks for the attention!

Exhibition Hall surface: Surface.3dm (152.1 KB)

Circle Pattern: Prova cerchi (12.2 KB)

Old Discussion File: (20.9 KB)

Since these are Kangaroo examples, maybe @DanielPiker could help?

The tangent plane method is here from @will

It works well for positive curvature and negative could be problematic.

Some of the stuff from this thread might be useful

I found this thread too but im not been able to install the plug-in, it is the same that they talk about in this thread: ; maybe i did something wrong, however between the downloadable files there isn’t the GHA file, how can i install it?

Thanks! I’ll go check it out right away!! (43.4 KB)

You need to compile with visual studio, this is compiled version

@matteo996 This video from the ICD might give you a hint. Check min 00:59:

If I recall correctly it was an in-house developed agent-based system that produced the planar hex… but maybe @LongNguyen can tell you more about this

Ah nice! Really thanks!

I have already seen the video and i did a little research for an exam that i have to do, and yes, they developed a system that produce the hexagons.

This is a very good “method” but the problem remains, the exagon subdivision is wrong, my goal is to apply the “hexagon pattern” on my “sphere population” but i don’t now how to make the hexagons interact with each other making them keep the centers of the spheres, just like in the video at the min 00:59 as said by @DavidLeon
I have a working “circles physics” but i have not the hexagons


By the looks of the video, when the circle packing is performed, the particles, agents or whatever we want to call them, are not only keeping a threshold between them but also following a vector field. Perhaps this vector field indicates the surface curvature at every evaluated point. Another thing is that the panels produced all have some kind of connectivity algorithm because as the video showed, they are not all hexagonal. So there must he some rules to derive such behaviour. So basically, the first thing you would also need to know is how to code as I don’t think there are a combination of plugins that can do all this iterative calculations at the same time. Perhaps you can use custom K2 goals for the circle packing, but this involves you being able to code. On the other hand @Petras_Vestartas has a nice plugin called NGon, perhaps he can shed some light on you on how he achieved the several types of NGon meshes in his plugin.

I agree, you need to do three things:

  1. Agent solver for distributing and adding point correctly regarding surface curvature.
  2. Creating delaunay triangulation or use closest point search for meshing.
  3. Tangent plane, or other method Long wrote in the paper.

If you do not have parts 1-2 solved, the third method would not give any good results.

1 Like

It is the answer I most feared but also expected, i think i’ll continue with the Planar Hex subdivision to make a “primal” surface subdivision and after that i’ll modify all the surfaces manually

Which paper is this? Is it public? I would like to read it

No need to fear. This is how the world of computational geometry works, just embrace it and go for a deep dive in the ocean of stuff.

Guess point 2 will also need to include some kind of hash table to not create duplicate edges between vertices. Inside RTree, there would be a condition to check if a vertex already has an edge to another vertex. Potentially each vertex will need a hash table to store its current neighbours and it will need to be a public property, in order for a vertex to have access to the data of other vertices and Visa versa. Each hash table would have its contents updated at every frame. This now gets us on a debate between the efficiencies of different mesh data structures that are out there. In the end this can also be combined with a half edge data structure or something

This is the paper from Long, at one step it explains two methods, one is tangent plane that works on positive and negative curvature another one that is better, but works on positive curvature only.

Also you may ask Miro to share the code:

If someone would do it public, would be interesting to follow.


Did you purchase the article?


You sure posting copyright protected material here is a good idea?