import json import numpy as np controller = Controller(scene='FloorPlan28', gridSize=0.25, renderObjectImage=True) event = controller.step( 'AddThirdPartyCamera', rotation=dict(x=45, y=90, z=0), position=dict(x=-4, y=1.5, z=-1.5), fieldOfView=90 ) center = event.metadata["sceneBounds"]["center"] controller.interact() print(center) bounds = np.array(event.metadata["sceneBounds"]["cornerPoints"]) print(bounds) x_min = np.amin(bounds[:, 0]) x_max = np.amax(bounds[:, 0]) y_min = np.amin(bounds[:, 1]) y_max = np.amax(bounds[:, 1]) z_min = np.amin(bounds[:, 2]) z_max = np.amax(bounds[:, 2]) y = y_min + 0.9 * y_max - y_min
for r in sort_index: dummy_pos.append(valid_pos[r]) valid_pos = dummy_pos # valid_pos =sorted(valid_pos,key=distarr.get) else: random.shuffle(valid_pos) nos = len(valid_pos) flag=0 for i in range(len(valid_pos)): pos = valid_pos[nos-i-1] #print('pos',pos) eve = co.step(action = 'PlaceObjectAtPoint', objectId=objid, position=pos, forceAction=True) met = eve.metadata['objects'] for j in range(len(met)): if met[j]['objectId'] == parentrec: set = met[j]['receptacleObjectIds'] if set == None: break else: for k in set: if k==objid: print('Placed object :',objid) flag=1 if flag==1: break if flag==1: break co.interact()