In my last post I endeavored to simply show a single array in a singe condition. Flexing the idea a bit to see if it has legs, here is what it might be able to do if it had multiple walls. Perhaps there is a hint at a second dimension, when the algorithm would skip placement into a wall at an inside corner condition (and perhaps an outside corner condition).
I need to add in the clearances though.
Algorithm will need to handle the trig for concave angles where clearances will start to obstruct one another like this
It also might be necessary to add additional casework or void spaces in-between objects so that the clearances become handled more automatically. See what happens when we give the fridge more spacing with a cabinet
I also think that linking things like the sink to needing a window might have some promises. There is also a galley kitchen design that needs consideration.