study-session-optimizer / openenv.yaml
Shreya2005-2005's picture
FINAL FIX: indentation fix and hardened scores to [0.1, 0.9]
cc5d66e
Raw History Blame Contribute Delete
3.48 kB
openenv_version: "1.0"
environment:
name: smart-study-session-optimizer
description: >
An RL environment where an agent learns to balance studying and breaks
to maximize productivity without burning out. Inspired by my own terrible
study habits during college.
version: "1.0.0"
author: "Hackathon Participant"
observation_space:
type: object
properties:
energy:
type: number
minimum: 0.0
maximum: 100.0
description: Current energy level of the student (0=exhausted, 100=fully rested)
focus:
type: number
minimum: 0.0
maximum: 100.0
description: Focus/concentration score right now
time_studied:
type: number
minimum: 0.0
description: Total minutes studied in this session so far
session_minutes:
type: number
minimum: 0.0
description: Total elapsed minutes in the current session
consecutive_study_minutes:
type: number
minimum: 0.0
description: How many minutes studied in a row without a break
break_count:
type: integer
minimum: 0
description: Number of breaks taken so far
productive_minutes:
type: number
minimum: 0.0
description: Minutes where focus was above 60 (counted as productive)
action_space:
type: integer
values:
- value: 0
name: study
description: Continue studying for the next time step (5 minutes)
- value: 1
name: short_break
description: Take a short 10-minute break to recover some energy
- value: 2
name: long_break
description: Take a long 20-minute break for full energy recovery
endpoints:
reset:
method: POST
path: /reset
description: Reset the environment to initial state, returns first observation
step:
method: POST
path: /step
description: Execute one action in the environment
request_body:
action:
type: integer
description: Action to take (0=study, 1=short break, 2=long break)
response_body:
observation:
type: object
description: New observation after action
reward:
type: number
description: Reward signal for this step
done:
type: boolean
description: Whether the episode is finished
info:
type: object
description: Extra info for debugging/grading
state:
method: GET
path: /state
description: Get current environment state without modifying it
health:
method: GET
path: /health
description: Health check endpoint
tasks:
- id: survive_8_hours
name: "Survive 8 Hours"
description: >
Study for 8 hours (480 minutes) without energy hitting zero.
Score based on remaining energy (clamped 0.1 to 0.9).
max_steps: 120
scoring: 0.1 + (energy / 100) * 0.8
success_threshold: 0.5
- id: maximize_productivity
name: "Maximize Productivity"
description: >
Get as many productive minutes (focus > 60) as possible.
Score based on focus and energy (clamped 0.1 to 0.9).
max_steps: 60
scoring: 0.1 + (focus / 200) * 0.8 + (energy / 200) * 0.8
success_threshold: 0.5
- id: smart_break_taker
name: "Smart Break Taker"
description: >
Only take breaks when energy is low (below 40%).
Score based on energy and focus (clamped 0.1 to 0.9).
max_steps: 80
scoring: 0.1 + (energy / 200) * 0.8 + (focus / 200) * 0.8
success_threshold: 0.6