<liclass="toctree-l1 current has-children"><aclass="reference internal"href="../">Experimental</a><inputchecked=""class="toctree-checkbox"id="toctree-checkbox-3"name="toctree-checkbox-3"role="switch"type="checkbox"/><labelfor="toctree-checkbox-3"><divclass="visually-hidden">Toggle child pages in navigation</div><iclass="icon"><svg><usehref="#svg-arrow-right"></use></svg></i></label><ulclass="current">
<liclass="toctree-l2 current current-page"><aclass="current reference internal"href="#">Functional Environment</a></li>
<liclass="toctree-l2"><aclass="reference internal"href="../../../environments/classic_control/mountain_car_continuous/">Mountain Car Continuous</a></li>
<liclass="toctree-l2"><aclass="reference internal"href="../../../tutorials/gymnasium_basics/environment_creation/">Make your own custom environment</a></li>
<liclass="toctree-l2"><aclass="reference internal"href="../../../tutorials/gymnasium_basics/vector_envs_tutorial/">Training A2C with Vector Envs and Domain Randomization</a></li>
</ul>
</li>
<liclass="toctree-l1 has-children"><aclass="reference internal"href="../../../tutorials/training_agents/">Training Agents</a><inputclass="toctree-checkbox"id="toctree-checkbox-10"name="toctree-checkbox-10"role="switch"type="checkbox"/><labelfor="toctree-checkbox-10"><divclass="visually-hidden">Toggle child pages in navigation</div><iclass="icon"><svg><usehref="#svg-arrow-right"></use></svg></i></label><ul>
<liclass="toctree-l2"><aclass="reference internal"href="../../../tutorials/training_agents/reinforce_invpend_gym_v26/">Training using REINFORCE for Mujoco</a></li>
<liclass="toctree-l2"><aclass="reference internal"href="../../../tutorials/training_agents/blackjack_tutorial/">Solving Blackjack with Q-Learning</a></li>
<liclass="toctree-l1"><aclass="reference external"href="https://github.com/Farama-Foundation/Gymnasium/blob/main/docs/README.md">Contribute to the Docs</a></li>
<emclass="property"><spanclass="pre">class</span><spanclass="w"></span></em><spanclass="sig-prename descclassname"><spanclass="pre">gymnasium.experimental.</span></span><spanclass="sig-name descname"><spanclass="pre">FuncEnv</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">options</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">dict</span><spanclass="p"><spanclass="pre">[</span></span><spanclass="pre">str</span><spanclass="p"><spanclass="pre">,</span></span><spanclass="w"></span><spanclass="pre">Any</span><spanclass="p"><spanclass="pre">]</span></span><spanclass="w"></span><spanclass="p"><spanclass="pre">|</span></span><spanclass="w"></span><spanclass="pre">None</span></span><spanclass="w"></span><spanclass="o"><spanclass="pre">=</span></span><spanclass="w"></span><spanclass="default_value"><spanclass="pre">None</span></span></em><spanclass="sig-paren">)</span><aclass="headerlink"href="#gymnasium.experimental.FuncEnv"title="Permalink to this definition">#</a></dt>
<dd><p>Base class (template) for functional envs.</p>
<p>This API is meant to be used in a stateless manner, with the environment state being passed around explicitly.
That being said, nothing here prevents users from using the environment statefully, it’s just not recommended.
A functional env consists of the following functions (in this case, instance methods):
- initial: returns the initial state of the POMDP
- observation: returns the observation in a given state
- transition: returns the next state after taking an action in a given state
- reward: returns the reward for a given (state, action, next_state) tuple
- terminal: returns whether a given state is terminal
- state_info: optional, returns a dict of info about a given state
- step_info: optional, returns a dict of info about a given (state, action, next_state) tuple</p>
<p>The class-based structure serves the purpose of allowing environment constants to be defined in the class,
and then using them by name in the code itself.</p>
<p>For the moment, this is predominantly for internal use. This API is likely to change, but in the future
we intend to flesh it out and officially expose it to end users.</p>
<spanclass="sig-prename descclassname"><spanclass="pre">gymnasium.experimental.FuncEnv.</span></span><spanclass="sig-name descname"><spanclass="pre">initial</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">self</span></span></em>, <emclass="sig-param"><spanclass="n"><spanclass="pre">rng</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">Any</span></span></em><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><spanclass="pre">StateType</span></span></span><aclass="headerlink"href="#gymnasium.experimental.FuncEnv.initial"title="Permalink to this definition">#</a></dt>
<spanclass="sig-prename descclassname"><spanclass="pre">gymnasium.experimental.FuncEnv.</span></span><spanclass="sig-name descname"><spanclass="pre">transition</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">self</span></span></em>, <emclass="sig-param"><spanclass="n"><spanclass="pre">state</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">StateType</span></span></em>, <emclass="sig-param"><spanclass="n"><spanclass="pre">action</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">ActType</span></span></em>, <emclass="sig-param"><spanclass="n"><spanclass="pre">rng</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">Any</span></span></em><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><spanclass="pre">StateType</span></span></span><aclass="headerlink"href="#gymnasium.experimental.FuncEnv.transition"title="Permalink to this definition">#</a></dt>
<spanclass="sig-prename descclassname"><spanclass="pre">gymnasium.experimental.FuncEnv.</span></span><spanclass="sig-name descname"><spanclass="pre">observation</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">self</span></span></em>, <emclass="sig-param"><spanclass="n"><spanclass="pre">state</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">StateType</span></span></em><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><spanclass="pre">ObsType</span></span></span><aclass="headerlink"href="#gymnasium.experimental.FuncEnv.observation"title="Permalink to this definition">#</a></dt>
<spanclass="sig-prename descclassname"><spanclass="pre">gymnasium.experimental.FuncEnv.</span></span><spanclass="sig-name descname"><spanclass="pre">reward</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">self</span></span></em>, <emclass="sig-param"><spanclass="n"><spanclass="pre">state</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">StateType</span></span></em>, <emclass="sig-param"><spanclass="n"><spanclass="pre">action</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">ActType</span></span></em>, <emclass="sig-param"><spanclass="n"><spanclass="pre">next_state</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">StateType</span></span></em><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><spanclass="pre">RewardType</span></span></span><aclass="headerlink"href="#gymnasium.experimental.FuncEnv.reward"title="Permalink to this definition">#</a></dt>
<spanclass="sig-prename descclassname"><spanclass="pre">gymnasium.experimental.FuncEnv.</span></span><spanclass="sig-name descname"><spanclass="pre">terminal</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">self</span></span></em>, <emclass="sig-param"><spanclass="n"><spanclass="pre">state</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">StateType</span></span></em><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><spanclass="pre">TerminalType</span></span></span><aclass="headerlink"href="#gymnasium.experimental.FuncEnv.terminal"title="Permalink to this definition">#</a></dt>
<spanclass="sig-prename descclassname"><spanclass="pre">gymnasium.experimental.FuncEnv.</span></span><spanclass="sig-name descname"><spanclass="pre">state_info</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">self</span></span></em>, <emclass="sig-param"><spanclass="n"><spanclass="pre">state</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">StateType</span></span></em><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><spanclass="pre">dict</span></span></span><aclass="headerlink"href="#gymnasium.experimental.FuncEnv.state_info"title="Permalink to this definition">#</a></dt>
<spanclass="sig-prename descclassname"><spanclass="pre">gymnasium.experimental.FuncEnv.</span></span><spanclass="sig-name descname"><spanclass="pre">step_info</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">self</span></span></em>, <emclass="sig-param"><spanclass="n"><spanclass="pre">state</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">StateType</span></span></em>, <emclass="sig-param"><spanclass="n"><spanclass="pre">action</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">ActType</span></span></em>, <emclass="sig-param"><spanclass="n"><spanclass="pre">next_state</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">StateType</span></span></em><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><spanclass="pre">dict</span></span></span><aclass="headerlink"href="#gymnasium.experimental.FuncEnv.step_info"title="Permalink to this definition">#</a></dt>
<spanclass="sig-prename descclassname"><spanclass="pre">gymnasium.experimental.FuncEnv.</span></span><spanclass="sig-name descname"><spanclass="pre">transform</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">self</span></span></em>, <emclass="sig-param"><spanclass="n"><spanclass="pre">func</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">Callable</span><spanclass="p"><spanclass="pre">[</span></span><spanclass="p"><spanclass="pre">[</span></span><spanclass="pre">Callable</span><spanclass="p"><spanclass="pre">]</span></span><spanclass="p"><spanclass="pre">,</span></span><spanclass="w"></span><spanclass="pre">Callable</span><spanclass="p"><spanclass="pre">]</span></span></span></em><spanclass="sig-paren">)</span><aclass="headerlink"href="#gymnasium.experimental.FuncEnv.transform"title="Permalink to this definition">#</a></dt>
<spanclass="sig-prename descclassname"><spanclass="pre">gymnasium.experimental.FuncEnv.</span></span><spanclass="sig-name descname"><spanclass="pre">render_image</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">self</span></span></em>, <emclass="sig-param"><spanclass="n"><spanclass="pre">state</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">StateType</span></span></em>, <emclass="sig-param"><spanclass="n"><spanclass="pre">render_state</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">RenderStateType</span></span></em><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><spanclass="pre">tuple</span><spanclass="p"><spanclass="pre">[</span></span><spanclass="pre">RenderStateType</span><spanclass="p"><spanclass="pre">,</span></span><spanclass="w"></span><spanclass="pre">numpy.ndarray</span><spanclass="p"><spanclass="pre">]</span></span></span></span><aclass="headerlink"href="#gymnasium.experimental.FuncEnv.render_image"title="Permalink to this definition">#</a></dt>
<spanclass="sig-prename descclassname"><spanclass="pre">gymnasium.experimental.FuncEnv.</span></span><spanclass="sig-name descname"><spanclass="pre">render_init</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">self</span></span></em>, <emclass="sig-param"><spanclass="o"><spanclass="pre">**</span></span><spanclass="n"><spanclass="pre">kwargs</span></span></em><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><spanclass="pre">RenderStateType</span></span></span><aclass="headerlink"href="#gymnasium.experimental.FuncEnv.render_init"title="Permalink to this definition">#</a></dt>
<spanclass="sig-prename descclassname"><spanclass="pre">gymnasium.experimental.FuncEnv.</span></span><spanclass="sig-name descname"><spanclass="pre">render_close</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">self</span></span></em>, <emclass="sig-param"><spanclass="n"><spanclass="pre">render_state</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">RenderStateType</span></span></em><spanclass="sig-paren">)</span><aclass="headerlink"href="#gymnasium.experimental.FuncEnv.render_close"title="Permalink to this definition">#</a></dt>
<h2>gymnasium.experimental.func2env.FunctionalJaxCompatibilityEnv<aclass="headerlink"href="#gymnasium-experimental-func2env-functionaljaxcompatibilityenv"title="Permalink to this heading">#</a></h2>