Maximize number of lockers in a room


So I have this design problem and thought about using grasshopper for it. I just do not know how yet :slight_smile:.

I have a large room and a locker shape (a rectangle). The aim is to put as many lockers in a room as possible. There are two rules:
1) “corridor” between locker and a wall of a room needs to be at least 1m
2) “corridor” between two lockers needs to be 1,5m

My first thought was using optimization algoritms (which i am quite familiar with) for that. I havent figured out how to do that yet. I thought of finding curves that would represent groups of lockers (placed in a line) and try to move them around to find the best solution (together with penalty functions for distances). The problem here is that probably number of curves would have to differ (and their shape) - that would probably mean the fitness landscape would be all over the place and finding a good solution would be hard.

My second thought was dividing a room to a huge number of points and using a loop to add lockers one-by-one and rotate them/move to next row if they do not fit. The problem here would be that the choice of first point from a list would determine the whole layout and that could mean being far from optimum.

My third though was using some kind of nesting software (such as RhinoNest). The problem i see here is that i do not have fixed number of lockers and do not know how to apply the two rules - distance from boundary (walls) and between the rows of lockers.

Have you guys got other ideas? Which route should i take? It’d appreciate any help in that topic!

Thanks in advance,
Have a nice week

I can’t provide any direct advice other than I remember a while back someone was developing a parking space generator. It seems like a rectangle problem with similar constraints (in my mind). Could be a good alternate avenue of investigation.

Looks like the video is gone but here is the post: