
    ni                        S SK rS SKrS SKrS SKr\R
                  " \R                  5        \R                  " \R                  " 5       5        \R                  " \R                  5      r\R                  " S \5        SrSr\R                  " \R                  \\\/S9rSrSr/ r/ r/ r/ r/ r/ r/ r/ r/ r/ r\" S5       H  r\R?                  S5        \R?                  \5        \R?                  S5        \R?                  S \S-  S	-   S /5        \R?                  / S
Q5        \R?                  / SQ5        \R?                  / S
Q5        \R?                  \5        \R?                  \R@                  5        \R?                  / SQ5        M     / SQr!/ S
Qr"\R                  " \\\\!\"\\\\\\\\\\\S9r#\RH                  " S S S5        \RJ                  " S 5        / SQr&\RN                  " \#SS\&S9  \RP                  " \#5        \" \RP                  " \#5      5       H)  r\RR                  " \#\5        \RN                  " \#\S\&S9  M+     Sr*Sr+\+r,Sr-Sr,Sr.Sr/Sr0\S-  r1S r2 \Rf                  " 5       r4\4Rk                  5        H  u  r6r7\6\Rp                  :X  a  \7\Rr                  -  (       a  Sr0\6\Rp                  :X  a  \7\Rt                  -  (       a  S r0\6\Rv                  :X  a  \7\Rr                  -  (       a  Sr0\6\Rv                  :X  d  M  \7\Rt                  -  (       d  M  S r0M     Sr<Sr=\RP                  " \#5      r>Sr?\/\1S-  :  a  \/\1S-  -  r?\>S-
  r@\" \RP                  " \#5      5       H  rA\Ar@\/\@S-   \1-  -
  \--  rB\B\R                  " \B5      -  rB\B\R                  S-  -  rB\R                  " \B5      \?-  \.-  rF\0S :  a  \FS :  a  \FSS\0-   -  -  rF\0S :  a  \FS :  a  \FSS\0-
  -  -  rF\R                  " \#\A\R                  \F\0-   SS9  M     \/\*\,-  \--  -  r/\R                  " 5         \R                  " \*5        GM  )    NTg      ?)halfExtents   $   g       @{Gz?)r   r   r   r   )r   r   r   )r   r   r   )
linkMasseslinkCollisionShapeIndiceslinkVisualShapeIndiceslinkPositionslinkOrientationslinkInertialFramePositionslinkInertialFrameOrientationslinkParentIndiceslinkJointTypeslinkJointAxisuseMaximalCoordinatesi)r   r   r      )lateralFrictionanisotropicFrictiongq?g?   g      ?g?g        gɿg?g333333?g      ?g      @   )targetPositionforce)Kpybulletptimemathpybullet_dataconnectGUIsetAdditionalSearchPathgetDataPathcreateCollisionShape
GEOM_PLANEplanecreateMultiBodyr   sphereRadiusGEOM_BOXcolBoxIdmassvisualShapeIdlink_Massesr	   r
   r   r   r   r   indices
jointTypesaxisrangeiappendJOINT_REVOLUTEbasePositionbaseOrientation	sphereUid
setGravitysetRealTimeSimulationanistropicFrictionchangeDynamicsgetNumJointsgetJointInfodtSNAKE_NORMAL_PERIODm_wavePeriodm_waveLengthm_waveAmplitudem_waveFront
m_steeringm_segmentLengthforwardgetKeyboardEventskeysitemskvB3G_RIGHT_ARROWKEY_WAS_TRIGGEREDKEY_WAS_RELEASEDB3G_LEFT_ARROWampoffset
numMuscles
scaleStartsegmentjointphasefloorpisin	targetPossetJointMotorControl2POSITION_CONTROLstepSimulationsleep     Q/home/james-whalen/.local/lib/python3.13/site-packages/pybullet_examples/snake.py<module>ra      s       		!%%    -335 6	q||,   !U  !!!**/;\<.XZ 	     " 

		rAQ""8,#<#-4a89,'##I.&&|4	..A$$%++i 
 d&+*-)48Q5K,9/?9S<Y07-7,04IK	" Q3     $    BGY Z y 	q~~i(	)A..A9aHZ[ 
*  "
$
	
			$jjlda	QA(;(;$;j	QA(:(:$:j	Q1q':':#:j	Q1q'9'9#9#9j  	#&~~i(** Oc))# 56JN' Q^^I./eGGaK?::lJE	TZZE	TWWs]E *,>I 	Q9q=3#
*++iQ9q=3#
*++i I!..+4z+A"$	&% 02 l"\11+**R.o 	r_   