I'm currently developing 3rd person building game (as bacheleor thesis). I need to recognize constructed patterns co I can mark corresponding structure as some building (so player can start using that building).
I have folowing rules:
- 3 types of building blocks (all based on cube) (and in future there will be more types)
- any block can be scaled up to k multiple in each axis (k = 20)
- blocks can be rotated by any axis (but stays in 3D grid)
Problem definition: 4 cubes of base size (1,1,1) in a grid 2x2 should be equivalent to 1 box size (2,2,1), so all possible variants (mainly different in rotation) could be evaluated as valid pattern construction.
I expect that my patterns will be up to 30x30x30 multiple of base size.
For example, I'd like to recognize structure like this: (currently placed in level by hand)
Size is 21x21x22 and it is constructed from multiple objects.
As a limitation, I will border pattern search from exact point (lets say control console for that structure). Current limitation constant is around 50x50x50 multiple of base cube. (Limit is subject to change based on answers here.)
I searched over 20hrs and result was only papers to recognize 3D structure from 2D image or recognize exact structure in 2D.
My problem is that with growing K( each X,Y,Z) there is exponencially growing number of structures, which should be accepted as correct pattern construction.
Question: What algorithm (+ heurestic) should I use?
EDIT: following 3 images contains visualization of structures, that are considered as correct variant of pattern at image 4, thus they should be found and accepted.

All together has same final shape (and has same material at same places). I simplified the problem only to 2D shape, but extending in 3D space is obvious.
Thank you for all answers / comments.