1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
//! RL environments for the rlevo framework.
//!
//! This crate provides a collection of standard benchmark environments
//! for training and evaluating reinforcement learning agents, including
//! classic control problems, gridworlds, tabular MDPs, physics-based
//! continuous-control tasks, and optimisation benchmark functions.
//!
//! # Getting Started
//!
//! ```rust
//! use rlevo_core::environment::{Environment, Snapshot};
//! use rlevo_environments::grids::core::GridAction;
//! use rlevo_environments::grids::{EmptyConfig, EmptyEnv};
//!
//! let mut env = EmptyEnv::with_config(EmptyConfig::default(), false);
//! env.reset().expect("reset");
//! let snapshot = env.step(GridAction::Forward).expect("step");
//! assert!(!snapshot.is_done());
//! ```
//!
//! # Module Organization
//!
//! - [`classic`]: Classic control problems (CartPole, MountainCar, Pendulum, Acrobot, TenArmedBandit)
//! - [`landscapes`]: Optimization fitness landscapes (Sphere, Ackley, Rastrigin)
//! - [`grids`]: Gridworld environments inspired by Farama Minigrid
//! - [`toy_text`]: Tabular RL environments (Blackjack, Taxi, CliffWalking, FrozenLake)
//! - [`wrappers`]: Environment wrappers (TimeLimit)
//! - [`render`]: ASCII and null renderers
//! - [`box2d`]: Box2D-style physics environments (BipedalWalker, LunarLander, CarRacing)
//! - [`locomotion`]: MuJoCo-inspired locomotion environments via Rapier3D
//!
//! # Design Principles
//!
//! All environments implement a common interface:
//! - `reset()` → initial state
//! - `step(action)` → (next_state, reward, done)
//! - Deterministic or stochastic based on configuration
/// Board-game environments — **stub, planned for v0.2**.
///
/// The submodules compile but do not yet implement the [`rlevo_core::environment::Environment`]
/// trait. They are hidden from the rendered docs until the `Environment` impls land.
/// Internal dead-code and doc-lint warnings are suppressed here because the
/// contained code is scaffolding for the v0.2 implementation.