FreeAskWorld
[AAAI 2026 Oral] FreeAskWorld is an interactive simulation framework that integrates large language models (LLMs) for high-level planning and socially grounded interaction in embodied AI.
Install / Use
/learn @AIR-DISCOVER/FreeAskWorldREADME
Project Milestones
- [x] 📝 Paper Publication: Published the main research paper describing FreeAskWorld.
- [x] 📊 Data Processing Code Release: Released code for preprocessing, data cleaning, and annotation pipelines.
- [x] 🎥 Presentation Video: Released project presentation video.
- [ ] 🛠️ Simulator Code Release: Publish the core simulation code for developers and external collaborators.
- [x] 🤖 Agent Robot Integration: Integrate agent interfaces (OpenClaw / Codex / Claude / custom) to access and interact with robots inside the FreeAskWorld simulation environment.
- [ ] 📚 Usage Tutorial: Create a comprehensive tutorial for using the FreeAskWorld simulator, including setup, configuration, and example workflows.
- [ ] 🧑💻 API Documentation: Provide thorough documentation of the simulator’s API for seamless integration and extension.
- [ ] 🎮 Steam Release: Prepare and publish the FreeAskWorld simulator on Steam for broader accessibility.
Agent integration note: the current recommended local path is ROS2-first, because the local Unity simulator is configured in ROS2 mode on 127.0.0.1:10000. See docs/agent_ros2_integration.md. The ROS2 path now includes a live-capable rclpy transport when external ROS2 runtime dependencies are present, while still preserving scaffold-only fallback behavior. For live ROS2 usage, a repo-local .ros2_venv or equivalent ROS-compatible Python environment may be needed to avoid ROS Humble rclpy ABI mismatch, and the wrapper at scripts/agent_ros2_cli.sh now auto-activates .ros2_venv when present. The additive closed_loop websocket Agent bridge remains available, but for this Unity setup it should be treated as experimental and future-facing rather than the primary runtime path.
Agent config entry paths (for OpenClaw / Claude Code / Codex / custom agent adapters):
- ROS2 integration doc:
docs/agent_ros2_integration.md - ROS2 package:
integrations/agent_ros2/ - ROS2 wrapper CLI:
scripts/agent_ros2_cli.sh - Legacy closed-loop agent bridge prototypes are archived under
archived/closed_loop-agent/and are not part of the current recommended control path.
Help auto install Agent ROS2 Integration. Other AI agents can discover these paths and install/configure automatically.
Canonical entry command for auto-discovery:
bash scripts/agent_ros2_cli.sh --help
First-time setup notes (read this before install)
FreeAskWorld now includes a repo-owned local runtime path for ROS2-first live testing.
Requirements
- Python 3.10
- ROS2 Humble installed manually
- ROS2 manual setup guide:
docs/ros2_setup.md
Option 1 — Agent install (recommended)
In an agent session, use this exact instruction:
Install all envs by scripts/setup_envs.sh
Option 2 — User command line install
From the repo root, run:
cd ~/research/FreeAskWorld && bash scripts/setup_envs.sh
What scripts/setup_envs.sh does:
- checks whether a repo-local environment already exists
- reuses it if present instead of blindly creating a new one
- otherwise creates
.ros2_venvwith Python 3.10 - installs the minimal Python packages needed for live testing
- warns clearly if ROS2 Humble is not installed yet
- points you to the manual ROS2 setup guide if system ROS2 is missing
After setup:
source .ros2_venv/bin/activate
scripts/start_local_runtime.sh
scripts/status_local_runtime.sh
curl http://127.0.0.1:8787/healthz
STEP_SECONDS=2 OBSERVE_SECONDS=1 scripts/run_live_smoke.sh
scripts/stop_local_runtime.sh
run_live_smoke.sh now visibly executes all major player actions for a few seconds each and prints step-by-step results plus observation summaries.
Shortest interactive player-control examples:
scripts/player_cmd.sh status
scripts/player_cmd.sh observe 1
scripts/player_cmd.sh forward 0.5
scripts/player_cmd.sh left 30
scripts/player_cmd.sh right 30
scripts/player_cmd.sh around
scripts/player_cmd.sh stop
scripts/player_cmd.sh wait 1
scripts/player_cmd.sh ask "Where is the target?"
scripts/player_cmd.sh action '{"action":"move_forward","parameters":{"distance_m":0.5}}'
Expected behavior for the minimal checks above:
--helpprints CLI usage.status --output-jsonruns even without Unity connected.- In scaffold-only mode,
transport_ready: falsedoes not by itself mean the repo is broken.
For live validation, use:
scripts/start_local_runtime.sh
STEP_SECONDS=2 OBSERVE_SECONDS=1 scripts/run_live_smoke.sh
This visibly runs the main player actions (forward, left, right, around, wait, ask, stop), prints each step result, captures observations between steps, and writes a JSON report.
If --ros2-live fails immediately on a fresh machine, check these first:
- ROS2 Humble is installed manually; use
docs/ros2_setup.md. .ros2_venvexists and includes at leastnumpyplus the local runtime Python deps.- The Unity/ROS2 backend is actually running and reachable.
- The machine allows DDS/UDP/shared-memory transport required by ROS2 middleware.
- The ROS log directory is writable (for example, set
ROS_LOG_DIR=/tmp/roslogif needed).
🎥 Demos
Simulator Presentation Demonstrates the main functions of this simulator.
<p align="center"> <!-- 直接展示视频 + 保留下载链接 --> <video width="800" controls> <source src="docs/Presentation.mp4" type="video/mp4"> 你的浏览器不支持 HTML5 视频播放,请点击下方链接下载。 </video> <br> <a href="docs/Presentation.mp4">📥 Download Simulator Presentation Video</a> </p>Simulator APP Presentation Demonstrates the main functions of this simulator.
<p align="center"> <!-- 直接展示视频 + 保留下载链接 --> <video width="800" controls> <source src="docs/APP Presentation.mp4" type="video/mp4"> 你的浏览器不支持 HTML5 视频播放,请点击下方链接下载。 </video> <br> <a href="docs/APP Presentation.mp4">📥 Download APP Presentation Video</a> </p>ROS2 Example Demonstrates the ROS2 RGBD SLAM in our simulator.
<p align="center"> <!-- 直接展示视频 + 保留下载链接 --> <video width="800" controls> <source src="docs/RGBD SLAM Presentation.mp4" type="video/mp4"> 你的浏览器不支持 HTML5 视频播放,请点击下方链接下载。 </video> <br> <a href="docs/RGBD SLAM Presentation.mp4">📥 Download ROS2 Example Video</a> </p>📌 Introduction
As embodied intelligence progresses, simulation platforms must evolve beyond low-level physics toward human-centric, socially interactive environments.
FreeAskWorld introduces:
- A closed-loop interactive simulator
- A scalable human-agent world modeling framework
- A modular data generation pipeline
- A new benchmark: Direction Inquiry Task, extending VLN to active question-asking & guidance following
This repo contains simulator code and baseline models from our AAAI 2026 paper.
✨ Key Features
| Feature | Description | |---|---| | 🤖 LLM-Powered Agents | Intention modeling, reasoning, natural dialog, instruction generation | | 🚶 Realistic Humans | Personalized profiles, schedules, motion & navigation styles | | 🌦️ Dynamic World | Weather, lighting, traffic, and scene randomization | | 🔁 Closed-Loop Sync | WebSocket-based state exchange for real-time model interaction | | 🧩 Direction Inquiry Task | Agents ask for help, interpret human guidance, adapt plans | | 📦 Large-Scale Data | 6 tasks · 16 object categories · 63,429 frames · 17+ hours | | 🔄 Data Generation Pipeline | Modular pipeline for generating embodied ai data |
Synthetic Data Generation
docs/OccupancyMapGenerationContrast.jpg docs/SyhteticDataPic.jpg
W
