
    h                        S r SSKr " S S5      r\S:X  a  \" S5        \" 5       r\" S5        \R                  S5      r\" S	\S
    S35        \" S\S    S35        \" S5        \R                  SS5      r\" S\S    35        \" S\S   S 35        \" S5        \R                  S5      r\" SSR                  \S   5       35        \" S5        \" S5        \" S5        \" S5        \" S 5        \" S!5        gg)"zF
World Model - Understand physics, causality, and how the world works
    Nc                   D    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
rg)
WorldModel   c                      0 U l         / U l        g )Nphysics_statepredictions)selfs    A/home/james-whalen/eden-agi-project/core/knowledge/world_model.py__init__WorldModel.__init__   s        c                     UR                  5       nSU;   d  SU;   a  U R                  U5      $ SU;   d  SU;   a  U R                  U5      $ SU;   d  SU;   a  U R                  U5      $ SSS	.$ )
zSimulate physical scenariosfalldrop	collisioncrashmovemotiongeneralzphysics applied)
simulationresult)lowersimulate_falling_objectsimulate_collisionsimulate_motion)r
   scenarioscenario_lowers      r   simulate_physicsWorldModel.simulate_physics   s    !) ^#v'?//99 .(G~,E**844 ^#x>'A''11'3DEEr   c                 t   SnSU;   aS  UR                  5       n[        U5       H4  u  pE US-   [        U5      :  a  SX4S-      ;   a  OO[        U5      n  OM4  M6     Sn[        R
                  " SU-  U-  5      n[        R
                  " SU-  U-  5      nSU[        US5      [        US5      SS.$ !    M  = f)	z%Simulate object falling under gravityg      $@meter   g#@   falling_objectgravity)r   height_mtime_to_fall_simpact_velocity_msphysics)split	enumeratelenfloatmathsqrtround)	r
   r   heightwordsiwordgtime_to_fallfinal_velocitys	            r   r   "WorldModel.simulate_falling_object   s     hNN$E$U+01!c%j0@w%!*,b!&t GI, , yyVa01q56>2 )#L!4"'": 
 	
s   *B22B7c                     SSSSS.$ )z"Simulate collision between objectsr   momentum_conservedz-objects bounce or combine based on elasticityconservation_of_momentum)r   r   outcomer*    r
   r   s     r   r   WorldModel.simulate_collision9   s     $*F1	
 	
r   c                     S/ SQSSS.$ )zSimulate object motionr   )velocityaccelerationforcezobject follows physics lawsnewtons_laws)r   
principles
predictionr*   r>   r?   s     r   r   WorldModel.simulate_motionB   s     !?7%	
 	
r   c                     SSSSSS.nUR                  5       nUR                  5        H$  u  pVUR                  SS5      U;   d  M  UUUS	S
.s  $    UUSSS
.$ )z"Predict outcome of action in worldz"object moves in direction of forcez%water temperature increases, may boilztension released, objects fallzdoor swings on hingesz!ball follows parabolic trajectory)push_object
heat_watercut_rope	open_door
throw_ball_ g333333?)initialactionrG   
confidencez outcome depends on physical lawsg333333?)r   itemsreplace)r
   initial_staterR   r	   action_lowerkeyrG   s          r   predict_outcomeWorldModel.predict_outcomeK   s~     @A80=
 ||~*002OC{{3$4,$","&	   3 %<	
 	
r   c                     / SQ/ SQ/ SQ/ SQS.nUR                  5       nUR                  5        H  u  pEXC;   d  M  UU[        U5      SS.s  $    US/S	S
.$ )z!Understand causal chain of events)zclouds formz
rain fallsz
ground wetzpuddles form)heat appliedignition
combustionz	smoke/ash)zseed plantedzwater addedgerminationgrowth)r\   zchemical changeszfood cooked)rainfireplant_growthcookingphysical_process)eventcausal_chainstepstypeunknownr   )rf   rg   ri   )r   rT   r-   )r
   rf   chainsevent_lowerrX   chains         r   understand_causality_chain%WorldModel.understand_causality_chainf   sh     PKTJ	
 kkm ,,.JC!"$) Z.	  ) YOOr   c                     UUSS/ SQS.nU$ )z+Model spatial relationships between objectsT
calculable)updownleftrightforwardback)objects	relations3d_space	distances
directionsr>   )r
   rx   ry   spatial_understandings       r   model_spatial_relations"WorldModel.model_spatial_relations{   s#     "%L!
 %$r   r   N)__name__
__module____qualname____firstlineno__r   r   r   r   r   rY   rn   r~   __static_attributes__r>   r   r   r   r      s,    F$
8


6P*
%r   r   __main__zWORLD MODEL TESTu,   
🌍 Simulating: Drop object from 20 metersz drop object from 20 meter heightz   Time to fall: r(   sz   Impact velocity: r)   z m/su   
🔮 Predicting: Push a ballzball at restzpush ball forwardz   Prediction: rG   z   Confidence: rS   z.0%u    
⚡ Understanding: Rain processra   z
   Chain: u    → rg   u   
🌍 Eden now understands:z*   - Physics (gravity, motion, collisions)z&   - Predictions (outcome forecasting)z'   - Causality chains (event sequences)z   - Spatial relationsu   
✅ WORLD MODEL OPERATIONAL)__doc__r/   r   r   printworldr   r   rY   rn   joinr>   r   r   <module>r      sB   % %B z	
LE 

9:##$FGF	f%567q
9:	 (<!= >d
CD 

*+"">3FGF	OF<01
23	OF<05
67 

-.--f5F	Jw||F>$:;<
=>	
()	
67	
23	
34	
"#	
)*9 r   