Object Movement Through Doors Without Collisions

Hi,
I’m looking to develop a script that checks whether an object can move from one room to another through a door without touching any walls.
What strategy could I use to determine if the object fits and can pass through the door without collision?
Do you have any suggestions or ideas on how to approach this?
Thanks in advance!

I think your best bet will be to build a voxel model from the obstructions, then extract the planar diagonal of the minimum bounding volume for the object, get your start and end point, and use the voxel model, start point, end point, and diagonal measurement to build a path in VASA.

1 Like

A very simple way to do this in the worst case is rotate the object 360 degrees and bounding box it each time to find the maximum cross dimension it would take to rotate your object in the corridor, then make sure the doors are the shorter side in width. You would know on that basis that you can manouvre the object 180 and through in that case.

It would not be the optimized width as you could turn the object through the door as well but in reality is a better designed outcome. This is coming from someone who bought a house last year and had a lot of fun manouvering furniture through corridors of challenging layouts, scuffing many a door frame.

1 Like

I’m in a very similar situation — I have an object and I want to verify whether it can pass through a doorway. The challenge is that I can’t cover every possible scenario, because sometimes you can rotate or tilt the object in 2 or 3 steps to get it through. So it’s not always a straightforward calculation.

1 Like

generative design could be helpful. i mean especially when the solution space isn’t clear.

1 Like

I’m heading in that direction too :wink:

1 Like

I successfully created the voxel model, but the generated path is curved from point to point. I can ensure that the minimum length of the object allows it to pass through the door, but I want to guarantee that when it turns, it doesn’t touch the wall.

First up, draw a big sphere that encompasses your object, not a rectangle. The diameter of the object can be attained by taking the diagonal from point A to point B.

Now create the path using the diameter of the sphere for the agent horizontal offset when you build the path model.

If you extract the points of the path from start to end and transform the sphere so it’s centered on each point it should never touch one of the walls.

Is the agent’s horizontal distance measured in voxel units?

Yes - which means you need to account for the coarse voxel size and level of detail when you figure out the inputs.

1 Like