diff --git a/examples/demo.py b/examples/demo.py index 40ebeb4c776e5ac245328eff76f2cde5339a1cd8..783df56e8b8b534450031cc9e40a2bd30ef11ebd 100644 --- a/examples/demo.py +++ b/examples/demo.py @@ -96,6 +96,7 @@ class Demo: for iAgent in range(self.env.get_num_agents()): # allways walk straight forward action = 2 + action = np.random.choice([0, 1, 2, 3], 1, p=[0.0, 0.5, 0.5, 0.0])[0] # update the actions action_dict.update({iAgent: action}) diff --git a/flatland/utils/editor.py b/flatland/utils/editor.py index 081cf02c804f5a8d64542b2cfdc75c664bc479a9..61bdd49db743bb3745f08361874161f78ffc821c 100644 --- a/flatland/utils/editor.py +++ b/flatland/utils/editor.py @@ -9,7 +9,6 @@ from ipywidgets import IntSlider, VBox, HBox, Checkbox, Output, Text, RadioButto from numpy import array import flatland.utils.rendertools as rt -from examples.play_model import Player from flatland.envs.agent_utils import EnvAgent, EnvAgentStatic from flatland.envs.env_utils import mirror from flatland.envs.generators import complex_rail_generator, empty_rail_generator @@ -113,9 +112,6 @@ class View(object): VBox([self.wShowObs]), ] - # Progress bar intended for stepping in the background (not yet working) - self.wProg_steps = ipywidgets.IntProgress(value=0, min=0, max=20, step=1, description="Step") - # abbreviated description of buttons and the methods they call ldButtons = [ dict(name="Refresh", method=self.controller.refresh, tip="Redraw only"), @@ -128,7 +124,6 @@ class View(object): tip="Regenerate the rails using the method selected below"), dict(name="Load", method=self.controller.load), dict(name="Save", method=self.controller.save), - dict(name="Step", method=self.controller.step) ] self.lwButtons = [] @@ -360,7 +355,6 @@ class Controller(object): self.model.init_agents_static] self.model.env.agents = None self.model.init_agents_static = None - self.player = None self.model.env.restart_agents() self.model.env.reset(False, False) self.refresh(event) @@ -413,7 +407,6 @@ class EditorModel(object): self.env_filename = "temp.pkl" self.set_env(env) self.iSelectedAgent = None - self.player = None self.init_agents_static = None self.thread = None @@ -616,7 +609,6 @@ class EditorModel(object): self.env.rail.grid[:, :] = 0 self.env.agents = [] self.env.agents_static = [] - self.player = None self.redraw() @@ -631,7 +623,6 @@ class EditorModel(object): def restartAgents(self): self.env.agents = EnvAgent.list_from_static(self.env.agents_static) - self.player = None self.redraw() def setFilename(self, filename): @@ -650,6 +641,7 @@ class EditorModel(object): self.env.restart_agents() self.env.reset(False, False) self.init_agents_static = None + self.view.oRT.update_background() self.fix_env() self.set_env(self.env) self.redraw() @@ -688,7 +680,6 @@ class EditorModel(object): self.env.reset(regen_rail=True) self.fix_env() self.set_env(self.env) - self.player = None self.view.new_env() self.redraw() @@ -721,7 +712,7 @@ class EditorModel(object): # Create a new agent and select it. agent_static = EnvAgentStatic(rcCell, 0, rcCell, moving=False) self.iSelectedAgent = self.env.add_agent_static(agent_static) - self.player = None # will need to start a new player + self.view.oRT.update_background() else: # Move the selected agent to this cell agent_static = self.env.agents_static[self.iSelectedAgent] @@ -745,26 +736,9 @@ class EditorModel(object): if self.iSelectedAgent is not None: self.env.agents_static[self.iSelectedAgent].target = rcCell self.init_agents_static = None + self.view.oRT.update_background() self.redraw() - def step(self): - if self.init_agents_static is None: - self.init_agents_static = [agent.to_list() for agent in self.env.agents_static] - if self.player is None: - self.player = Player(self.env) - self.env.reset(regen_rail=False, replace_agents=False) - self.player.step() - self.redraw() - - def bg_updater(self, wProg_steps): - try: - for i in range(20): - self.step() - time.sleep(0.2) - wProg_steps.value = i + 1 # indicate progress on bar - finally: - self.thread = None - def fix_env(self): self.env.width = self.env.rail.width self.env.height = self.env.rail.height diff --git a/notebooks/Scene_Editor.ipynb b/notebooks/Scene_Editor.ipynb index 444c1ebf023a06294b04f58a4f180a46608f6d96..9ce65953aa3280702c46a4221bd8337d7f1ae85c 100644 --- a/notebooks/Scene_Editor.ipynb +++ b/notebooks/Scene_Editor.ipynb @@ -11,29 +11,6 @@ "cell_type": "code", "execution_count": 1, "metadata": {}, - "outputs": [], - "source": [ - "%load_ext autoreload\n", - "%autoreload 2" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [], - "source": [ - "import numpy as np\n", - "from numpy import array\n", - "import ipywidgets\n", - "import IPython\n", - "from IPython.core.display import display, HTML" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, "outputs": [ { "data": { @@ -49,24 +26,17 @@ } ], "source": [ + "from IPython.core.display import display, HTML\n", "display(HTML(\"<style>.container { width:95% !important; }</style>\"))" ] }, { "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [], - "source": [ - "from flatland.utils.editor import EditorMVC" - ] - }, - { - "cell_type": "code", - "execution_count": 5, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ + "from flatland.utils.editor import EditorMVC\n", "mvc = EditorMVC(sGL=\"PILSVG\" ) " ] }, @@ -92,7 +62,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 3, "metadata": { "scrolled": false }, @@ -100,7 +70,7 @@ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "140f16d2c9a643e39d68c6421e50b9bd", + "model_id": "155b149b140940acbc810a986a4c10f1", "version_major": 2, "version_minor": 0 }, diff --git a/rendering/make_video_ffmpeg.txt b/rendering/make_video_ffmpeg.txt index 198b660db97c711adbb10bb082f7dd62132bac08..982b5066d7b243a766d0fa6ce9955c72c075126f 100644 --- a/rendering/make_video_ffmpeg.txt +++ b/rendering/make_video_ffmpeg.txt @@ -1,4 +1,6 @@ ffmpeg -y -framerate 12 -i frame_%04d.bmp -hide_banner -c:v libx264 -pix_fmt yuv420p test.mp4 +ffmpeg -i test.mp4 test.gif + pause \ No newline at end of file