# stanfordvl/behavior-1k architecture

> Architecture diagram of the GitHub repository stanfordvl/behavior-1k, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-25). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/stanfordvl/behavior-1k
- Repository: https://github.com/stanfordvl/behavior-1k

## Overview

BEHAVIOR-1K is an embodied-AI simulation benchmark for household activities. Its central user workflow is an agent interacting with a simulated environment and being assessed on task outcomes. The tree also shows task-language semantics, evaluation and data interfaces, and a substantial asset pipeline. The README establishes the benchmark scope; most implementation excerpts are partial or unrelated, so uncertain runtime wiring is omitted.

Main entry points: [`OmniGibson/omnigibson/envs/env_base.py`](https://github.com/stanfordvl/behavior-1k/blob/main/OmniGibson/omnigibson/envs/env_base.py) (Environment API), [`OmniGibson/omnigibson/tasks/behavior_task.py`](https://github.com/stanfordvl/behavior-1k/blob/main/OmniGibson/omnigibson/tasks/behavior_task.py) (Activity task), [`OmniGibson/omnigibson/simulator.py`](https://github.com/stanfordvl/behavior-1k/blob/main/OmniGibson/omnigibson/simulator.py) (Simulator), [`bddl3/bddl/activity.py`](https://github.com/stanfordvl/behavior-1k/blob/main/bddl3/bddl/activity.py) (BDDL semantics)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_runtime["Simulation runtime"]
  node_env["Environment API<br/>[env_base.py]"]
  node_sim["Simulator<br/>[simulator.py]"]
end

subgraph group_tasking["Task semantics"]
  node_task["Activity task<br/>[behavior_task.py]"]
  node_bddl["BDDL semantics<br/>[activity.py]"]
  node_conditions["Predicates"]
  node_transitions["State transitions"]
  node_reward["Reward functions"]
  node_termination["Termination checks"]
end

subgraph group_world["Embodied world"]
  node_scene["Scene model<br/>[scene_base.py]"]
  node_objects["World objects<br/>[usd_object.py]"]
  node_states["Object states"]
  node_systems["Particle systems<br/>[system_base.py]"]
  node_robot["Robot embodiment<br/>[robot.py]"]
  node_controllers["Robot controllers<br/>[controller_view.py]"]
  node_sensors["Sensors<br/>[sensor_base.py]"]
end

subgraph group_evaluation["Evaluation and data"]
  node_evaluation["Benchmark evaluation<br/>[evaluator.py]"]
  node_wrappers["Data wrappers<br/>[data_wrapper.py]"]
end

subgraph group_assets["Asset preparation"]
  node_asset_pipeline["Asset pipeline"]
  node_scene_conversion["Scene conversion<br/>[usdify_scenes.py]"]
end

node_agent(("AI agent"))

node_agent -->|"acts in"| node_env
node_env -->|"steps"| node_sim
node_env -->|"runs activity"| node_task
node_env -->|"returns observations"| node_agent
node_task -->|"uses activity definitions"| node_bddl
node_bddl -->|"defines predicates"| node_conditions
node_task -->|"applies transitions"| node_transitions
node_task -->|"computes reward"| node_reward
node_task -->|"checks completion"| node_termination
node_sim -->|"simulates"| node_scene
node_scene -->|"holds"| node_objects
node_objects -->|"expose state"| node_states
node_sim -->|"updates"| node_systems
node_robot -->|"dispatches control"| node_controllers
node_sim -->|"produces readings"| node_sensors
node_evaluation -->|"evaluates episodes"| node_env
node_wrappers -->|"wraps interaction"| node_env
node_asset_pipeline -->|"converts assets"| node_scene_conversion

click node_env "https://github.com/stanfordvl/behavior-1k/blob/main/OmniGibson/omnigibson/envs/env_base.py"
click node_sim "https://github.com/stanfordvl/behavior-1k/blob/main/OmniGibson/omnigibson/simulator.py"
click node_task "https://github.com/stanfordvl/behavior-1k/blob/main/OmniGibson/omnigibson/tasks/behavior_task.py"
click node_bddl "https://github.com/stanfordvl/behavior-1k/blob/main/bddl3/bddl/activity.py"
click node_conditions "https://github.com/stanfordvl/behavior-1k/blob/main/bddl3/bddl/condition_evaluation.py"
click node_transitions "https://github.com/stanfordvl/behavior-1k/blob/main/OmniGibson/omnigibson/transition_rules.py"
click node_reward "https://github.com/stanfordvl/behavior-1k/blob/main/OmniGibson/omnigibson/reward_functions/reward_function_base.py"
click node_termination "https://github.com/stanfordvl/behavior-1k/blob/main/OmniGibson/omnigibson/termination_conditions/termination_condition_base.py"
click node_scene "https://github.com/stanfordvl/behavior-1k/blob/main/OmniGibson/omnigibson/scenes/scene_base.py"
click node_objects "https://github.com/stanfordvl/behavior-1k/blob/main/OmniGibson/omnigibson/objects/usd_object.py"
click node_states "https://github.com/stanfordvl/behavior-1k/blob/main/OmniGibson/omnigibson/object_states/object_state_base.py"
click node_systems "https://github.com/stanfordvl/behavior-1k/blob/main/OmniGibson/omnigibson/systems/system_base.py"
click node_robot "https://github.com/stanfordvl/behavior-1k/blob/main/OmniGibson/omnigibson/robots/robot.py"
click node_controllers "https://github.com/stanfordvl/behavior-1k/blob/main/OmniGibson/omnigibson/controllers/controller_view.py"
click node_sensors "https://github.com/stanfordvl/behavior-1k/blob/main/OmniGibson/omnigibson/sensors/sensor_base.py"
click node_evaluation "https://github.com/stanfordvl/behavior-1k/blob/main/OmniGibson/omnigibson/eval/evaluator.py"
click node_wrappers "https://github.com/stanfordvl/behavior-1k/blob/main/OmniGibson/omnigibson/envs/data_wrapper.py"
click node_asset_pipeline "https://github.com/stanfordvl/behavior-1k/tree/main/asset_pipeline/b1k_pipeline"
click node_scene_conversion "https://github.com/stanfordvl/behavior-1k/blob/main/asset_pipeline/b1k_pipeline/usd_conversion/usdify_scenes.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_env,node_sim toneBlue
class node_task,node_bddl,node_conditions,node_transitions,node_reward,node_termination toneAmber
class node_scene,node_objects,node_states,node_systems,node_robot,node_controllers,node_sensors toneMint
class node_evaluation,node_wrappers toneRose
class node_asset_pipeline,node_scene_conversion,node_agent toneIndigo
```

## Components

### Simulation runtime

- [Environment API](https://github.com/stanfordvl/behavior-1k/blob/main/OmniGibson/omnigibson/envs/env_base.py): `OmniGibson/omnigibson/envs/env_base.py`
- [Simulator](https://github.com/stanfordvl/behavior-1k/blob/main/OmniGibson/omnigibson/simulator.py): `OmniGibson/omnigibson/simulator.py`

### Task semantics

- [Activity task](https://github.com/stanfordvl/behavior-1k/blob/main/OmniGibson/omnigibson/tasks/behavior_task.py): `OmniGibson/omnigibson/tasks/behavior_task.py`
- [BDDL semantics](https://github.com/stanfordvl/behavior-1k/blob/main/bddl3/bddl/activity.py): `bddl3/bddl/activity.py`
- [Predicates](https://github.com/stanfordvl/behavior-1k/blob/main/bddl3/bddl/condition_evaluation.py): `bddl3/bddl/condition_evaluation.py`
- [State transitions](https://github.com/stanfordvl/behavior-1k/blob/main/OmniGibson/omnigibson/transition_rules.py): `OmniGibson/omnigibson/transition_rules.py`
- [Reward functions](https://github.com/stanfordvl/behavior-1k/blob/main/OmniGibson/omnigibson/reward_functions/reward_function_base.py): `OmniGibson/omnigibson/reward_functions/reward_function_base.py`
- [Termination checks](https://github.com/stanfordvl/behavior-1k/blob/main/OmniGibson/omnigibson/termination_conditions/termination_condition_base.py): `OmniGibson/omnigibson/termination_conditions/termination_condition_base.py`

### Embodied world

- [Scene model](https://github.com/stanfordvl/behavior-1k/blob/main/OmniGibson/omnigibson/scenes/scene_base.py): `OmniGibson/omnigibson/scenes/scene_base.py`
- [World objects](https://github.com/stanfordvl/behavior-1k/blob/main/OmniGibson/omnigibson/objects/usd_object.py): `OmniGibson/omnigibson/objects/usd_object.py`
- [Object states](https://github.com/stanfordvl/behavior-1k/blob/main/OmniGibson/omnigibson/object_states/object_state_base.py): `OmniGibson/omnigibson/object_states/object_state_base.py`
- [Particle systems](https://github.com/stanfordvl/behavior-1k/blob/main/OmniGibson/omnigibson/systems/system_base.py): `OmniGibson/omnigibson/systems/system_base.py`
- [Robot embodiment](https://github.com/stanfordvl/behavior-1k/blob/main/OmniGibson/omnigibson/robots/robot.py): `OmniGibson/omnigibson/robots/robot.py`
- [Robot controllers](https://github.com/stanfordvl/behavior-1k/blob/main/OmniGibson/omnigibson/controllers/controller_view.py): `OmniGibson/omnigibson/controllers/controller_view.py`
- [Sensors](https://github.com/stanfordvl/behavior-1k/blob/main/OmniGibson/omnigibson/sensors/sensor_base.py): `OmniGibson/omnigibson/sensors/sensor_base.py`

### Evaluation and data

- [Benchmark evaluation](https://github.com/stanfordvl/behavior-1k/blob/main/OmniGibson/omnigibson/eval/evaluator.py): `OmniGibson/omnigibson/eval/evaluator.py`
- [Data wrappers](https://github.com/stanfordvl/behavior-1k/blob/main/OmniGibson/omnigibson/envs/data_wrapper.py): `OmniGibson/omnigibson/envs/data_wrapper.py`

### Asset preparation

- [Asset pipeline](https://github.com/stanfordvl/behavior-1k/tree/main/asset_pipeline/b1k_pipeline): `asset_pipeline/b1k_pipeline`
- [Scene conversion](https://github.com/stanfordvl/behavior-1k/blob/main/asset_pipeline/b1k_pipeline/usd_conversion/usdify_scenes.py): `asset_pipeline/b1k_pipeline/usd_conversion/usdify_scenes.py`

### Other components

- **AI agent**

## Connections

- AI agent → Environment API: acts in
- Environment API → Simulator: steps
- Environment API → Activity task: runs activity
- Environment API → AI agent: returns observations
- Activity task → BDDL semantics: uses activity definitions
- BDDL semantics → Predicates: defines predicates
- Activity task → State transitions: applies transitions
- Activity task → Reward functions: computes reward
- Activity task → Termination checks: checks completion
- Simulator → Scene model: simulates
- Scene model → World objects: holds
- World objects → Object states: expose state
- Simulator → Particle systems: updates
- Robot embodiment → Robot controllers: dispatches control
- Simulator → Sensors: produces readings
- Benchmark evaluation → Environment API: evaluates episodes
- Data wrappers → Environment API: wraps interaction
- Asset pipeline → Scene conversion: converts assets
