text: import gym
  from gym.envs.registration import registry, make, spec
  def register(id,*args,**kvargs):
  	if id in registry.env_specs:
  		return
  	else:
  		return gym.envs.registration.register(id,*args,**kvargs)
  
  # ------------bullet-------------
  
  register(
  	id='CartPoleBulletEnv-v1',
  	entry_point='pybullet_envs.bullet:CartPoleBulletEnv',
          max_episode_steps=200,
  	reward_threshold=190.0,
  )
  
  register(
      id='MinitaurBulletEnv-v0',
      entry_point='pybullet_envs.bullet:MinitaurBulletEnv',
      timestep_limit=1000,
      reward_threshold=15.0,
  )
  
  register(
      id='MinitaurBulletDuckEnv-v0',
      entry_point='pybullet_envs.bullet:MinitaurBulletDuckEnv',
      timestep_limit=1000,
      reward_threshold=5.0,
  )
  
  
  register(
      id='MinitaurReactiveEnv-v0',
      entry_point='pybullet_envs.minitaur.envs:MinitaurReactiveEnv',
      timestep_limit=1000,
      reward_threshold=5.0,
  )
  
  
  register(
      id='MinitaurBallGymEnv-v0',
      entry_point='pybullet_envs.minitaur.envs:MinitaurBallGymEnv',
      timestep_limit=1000,
      reward_threshold=5.0,
  )
  
  
  register(
      id='MinitaurTrottingEnv-v0',
      entry_point='pybullet_envs.minitaur.envs:MinitaurTrottingEnv',
      timestep_limit=1000,
      reward_threshold=5.0,
  )
  
  register(
      id='MinitaurStandGymEnv-v0',
      entry_point='pybullet_envs.minitaur.envs:MinitaurStandGymEnv',
      timestep_limit=1000,
      reward_threshold=5.0,
  )
  
  register(
      id='MinitaurAlternatingLegsEnv-v0',
      entry_point='pybullet_envs.minitaur.envs:MinitaurAlternatingLegsEnv',
      timestep_limit=1000,
      reward_threshold=5.0,
  )
  
  register(
      id='MinitaurFourLegStandEnv-v0',
      entry_point='pybullet_envs.minitaur.envs:MinitaurFourLegStandEnv',
      timestep_limit=1000,
      reward_threshold=5.0,
  )
  
  
  
  register(
      id='RacecarBulletEnv-v0',
      entry_point='pybullet_envs.bullet:RacecarGymEnv',
      timestep_limit=1000,
      reward_threshold=5.0,
  )
  
  register(
  	id='RacecarZedBulletEnv-v0',
  	entry_point='pybullet_envs.bullet:RacecarZEDGymEnv',
  	timestep_limit=1000,
  	reward_threshold=5.0,
  )
  
  
  register(
  	id='KukaBulletEnv-v0',
  	entry_point='pybullet_envs.bullet:KukaGymEnv',
  	timestep_limit=1000,
  	reward_threshold=5.0,
  )
  
  register(
  	id='KukaCamBulletEnv-v0',
  	entry_point='pybullet_envs.bullet:KukaCamGymEnv',
  	timestep_limit=1000,
  	reward_threshold=5.0,
  )
  
  register(
  	id='KukaDiverseObjectGrasping-v0',
  	entry_point='pybullet_envs.bullet:KukaDiverseObjectEnv',
  	timestep_limit=1000,
  	reward_threshold=5.0,
  )
  
  register(
  	id='InvertedPendulumBulletEnv-v0',
  	entry_point='pybullet_envs.gym_pendulum_envs:InvertedPendulumBulletEnv',
  	max_episode_steps=1000,
  	reward_threshold=950.0,
  	)
  
  register(
  	id='InvertedDoublePendulumBulletEnv-v0',
  	entry_point='pybullet_envs.gym_pendulum_envs:InvertedDoublePendulumBulletEnv',
  	max_episode_steps=1000,
  	reward_threshold=9100.0,
  	)
  
  register(
  	id='InvertedPendulumSwingupBulletEnv-v0',
  	entry_point='pybullet_envs.gym_pendulum_envs:InvertedPendulumSwingupBulletEnv',
  	max_episode_steps=1000,
  	reward_threshold=800.0,
  	)
  
  register(
  	id='ReacherBulletEnv-v0',
  	entry_point='pybullet_envs.gym_manipulator_envs:ReacherBulletEnv',
  	max_episode_steps=150,
  	reward_threshold=18.0,
  	)
  
  register(
  	id='PusherBulletEnv-v0',
  	entry_point='pybullet_envs.gym_manipulator_envs:PusherBulletEnv',
  	max_episode_steps=150,
  	reward_threshold=18.0,
  )
  
  register(
  	id='ThrowerBulletEnv-v0',
  	entry_point='pybullet_envs.gym_manipulator_envs:ThrowerBulletEnv',
  	max_episode_steps=100,
  	reward_threshold=18.0,
  )
  
  register(
  	id='StrikerBulletEnv-v0',
  	entry_point='pybullet_envs.gym_manipulator_envs:StrikerBulletEnv',
  	max_episode_steps=100,
  	reward_threshold=18.0,
  )
  
  register(
  	id='Walker2DBulletEnv-v0',
  	entry_point='pybullet_envs.gym_locomotion_envs:Walker2DBulletEnv',
  	max_episode_steps=1000,
  	reward_threshold=2500.0
  	)
  register(
  	id='HalfCheetahBulletEnv-v0',
  	entry_point='pybullet_envs.gym_locomotion_envs:HalfCheetahBulletEnv',
  	max_episode_steps=1000,
  	reward_threshold=3000.0
  	)
  
  register(
  	id='AntBulletEnv-v0',
  	entry_point='pybullet_envs.gym_locomotion_envs:AntBulletEnv',
  	max_episode_steps=1000,
  	reward_threshold=2500.0
  	)
  
  register(
  	id='HopperBulletEnv-v0',
  	entry_point='pybullet_envs.gym_locomotion_envs:HopperBulletEnv',
  	max_episode_steps=1000,
  	reward_threshold=2500.0
  	)
  
  register(
  	id='HumanoidBulletEnv-v0',
  	entry_point='pybullet_envs.gym_locomotion_envs:HumanoidBulletEnv',
  	max_episode_steps=1000
  	)
  
  register(
  	id='HumanoidFlagrunBulletEnv-v0',
  	entry_point='pybullet_envs.gym_locomotion_envs:HumanoidFlagrunBulletEnv',
  	max_episode_steps=1000,
  	reward_threshold=2000.0
  	)
  
  register(
  	id='HumanoidFlagrunHarderBulletEnv-v0',
  	entry_point='pybullet_envs.gym_locomotion_envs:HumanoidFlagrunHarderBulletEnv',
  	max_episode_steps=1000
  	)
  
  #register(
  #	id='AtlasBulletEnv-v0',
  #	entry_point='pybullet_envs.gym_locomotion_envs:AtlasBulletEnv',
  #	max_episode_steps=1000
  #	)
  
  def getList():
  	btenvs = ['- ' + spec.id for spec in gym.envs.registry.all() if spec.id.find('Bullet')>=0]
  	return btenvs
  