jxx123 commited on
Commit
c785ba7
1 Parent(s): 0f97cc0

Toy cartpole simulator app

Browse files
app.py CHANGED
@@ -1,4 +1,28 @@
1
  import streamlit as st
 
 
 
 
2
 
3
- x = st.slider('Select a value')
4
- st.write(x, 'squared is', x * x)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  import streamlit as st
2
+ import gymnasium
3
+ from gymnasium.wrappers.record_video import RecordVideo
4
+ from PIL import Image
5
+ import time
6
 
7
+ steps = st.number_input("Step Number", min_value=1, value=100)
8
+ sim_clicked = st.button("Simulate")
9
+
10
+ if sim_clicked:
11
+ env = gymnasium.make("MountainCarContinuous-v0", render_mode="rgb_array")
12
+ env = RecordVideo(env, video_folder="./videos")
13
+ obs, info = env.reset()
14
+ with st.empty():
15
+ for i in range(steps):
16
+ action = env.action_space.sample()
17
+ obs, reward, terminated, truncated, info = env.step(action)
18
+ rgb_array = env.render()
19
+
20
+ image = Image.fromarray(rgb_array)
21
+ st.image(image, caption=f"Step {i}")
22
+ time.sleep(0.02)
23
+
24
+ if terminated or truncated:
25
+ break
26
+ env.close()
27
+
28
+ st.video("./videos/rl-video-episode-0.mp4")
videos/rl-video-episode-0.meta.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"step_id": 0, "episode_id": 0, "content_type": "video/mp4"}
videos/rl-video-episode-0.mp4 ADDED
Binary file (21.6 kB). View file