Switch to side-by-side view

--- a
+++ b/examples/sim_L2M2019_controller1.py
@@ -0,0 +1,52 @@
+from osim.env import L2M2019Env
+from osim.control.osim_loco_reflex_song2019 import OsimReflexCtrl
+import numpy as np
+
+mode = '2D'
+difficulty = 3
+visualize=True
+seed=None
+sim_dt = 0.01
+sim_t = 10
+timstep_limit = int(round(sim_t/sim_dt))
+
+
+INIT_POSE = np.array([
+    1.699999999999999956e+00, # forward speed
+    .5, # rightward speed
+    9.023245653983965608e-01, # pelvis height
+    2.012303881285582852e-01, # trunk lean
+    0*np.pi/180, # [right] hip adduct
+    -6.952390849304798115e-01, # hip flex
+    -3.231075259785813891e-01, # knee extend
+    1.709011708233401095e-01, # ankle flex
+    0*np.pi/180, # [left] hip adduct
+    -5.282323914341899296e-02, # hip flex
+    -8.041966456860847323e-01, # knee extend
+    -1.745329251994329478e-01]) # ankle flex
+
+if mode is '2D':
+    params = np.loadtxt('./osim/control/params_2D.txt')
+elif mode is '3D':
+    params = np.loadtxt('./osim/control/params_3D_init.txt')
+
+locoCtrl = OsimReflexCtrl(mode=mode, dt=sim_dt)
+env = L2M2019Env(visualize=visualize, seed=seed, difficulty=difficulty)
+env.change_model(model=mode, difficulty=difficulty, seed=seed)
+obs_dict = env.reset(project=True, seed=seed, obs_as_dict=True, init_pose=INIT_POSE)
+env.spec.timestep_limit = timstep_limit
+
+total_reward = 0
+t = 0
+i = 0
+while True:
+    i += 1
+    t += sim_dt
+
+    locoCtrl.set_control_params(params)
+    action = locoCtrl.update(obs_dict)
+    obs_dict, reward, done, info = env.step(action, project = True, obs_as_dict=True)
+    total_reward += reward
+    if done:
+        break
+print('    score={} time={}sec'.format(total_reward, t))
\ No newline at end of file