text: import pickle
  
  thing = pickle.load(open("SMPL_MALE.pkl","rb"), encoding="latin1")
  
  thing.keys()
  
  thing["kintree_table"][0].shape
  thing["kintree_table"][0]
  thing["J_regressor"].shape
  thing["J"].shape
  thing["v_template"].shape
  
  # from aist_plusplus.loader import AISTDataset
  from smplx import SMPL
  import torch
  
  #%%
  
  # smpl_poses, smpl_scaling, smpl_trans = AISTDataset.load_motion(
  #     "../multimodal-transformer/data/motions", "gWA_sFM_cAll_d26_mWA1_ch09")
  smpl_thing = pickle.load(open("../../../aistplusplus_api/last.generated.test.pkl", "rb"))
  smpl_poses,smpl_scaling,smpl_trans = smpl_thing['smpl_poses'], smpl_thing['smpl_scaling'], smpl_thing['smpl_trans']
  #MY PICKLE IS PROBABLY WRONG
  smpl = SMPL(model_path="../../../aistplusplus_api", gender='MALE', batch_size=1)
  output = smpl.forward(
      global_orient=torch.from_numpy(smpl_poses[:, 0:1]).float(),
      body_pose=torch.from_numpy(smpl_poses[:, 1:]).float(),
      transl=torch.from_numpy(smpl_trans).float(),
      scaling=torch.from_numpy(smpl_scaling.reshape(1, 1)).float(),
  )
  keypoints3d = output.joints.detach().numpy()
  
  output.vertices.shape
  
  smpl_poses.shape
  keypoints3d.shape
  
  keypoints3d = keypoints3d[:,:24] # the body joints (ignoring the head, feet and hand bones added onto it here https://github.com/vchoutas/smplx/blob/7547ee6656b942a68a97604d0cf7b6b834fad9eb/smplx/vertex_joint_selector.py)
  print(keypoints3d)
  # # that file takes the position of the vertices corresponding to certain joints
  #
  # #%%
  #
  #
  # import matplotlib.pyplot as plt
  # from mpl_toolkits.mplot3d import Axes3D
  #
  #
  #
  # import time
  #
  # fig = plt.figure()
  # ax = Axes3D(fig)
  #
  # # camera = Camera(fig)
  #
  # import numpy as np
  # np.max(keypoints3d)
  #
  # ax.scatter(keypoints3d[0,:,2], keypoints3d[0,:,0], keypoints3d[0,:,1])
  # plt.show()
  # plt.xlim([-200,200])
  # plt.ylim([-200,200])
  # ax.set_zlim([75,475])
  # ax.view_init(0, 0)
  # plt.draw()
  # #%%
  # # plt.zlim([-50,50])
  # for i in range(len(keypoints3d)):
  #     # for i in range(512):
  #     ax.clear()
  #     ax.scatter(keypoints3d[i,:,2], keypoints3d[i,:,0], keypoints3d[i,:,1])
  #     plt.xlim([-100,100])
  #     plt.ylim([-100,100])
  #     ax.set_zlim([75,275])
  #     ax.view_init(0, 0)
  #     plt.draw()
  #     plt.savefig("img/img_"+str(i)+".png")
  #     # camera.snap()
  #
  # # i=300
  # # plt.gca().clear()
  # # plt.scatter(keypoints3d[i,:,0], keypoints3d[i,:,1], keypoints3d[i,:,2])
  # # plt.show()
  # #
  # # a = camera.animate()
  # # a.save("out.mp4")
  # # thing['kintree_table'][0]
  #
  # 1
  