--- title: ABot-World Interactive emoji: 🌍 colorFrom: gray colorTo: red sdk: gradio sdk_version: 6.12.0 app_file: app.py pinned: false short_description: Live interactive world rollout from an image python_version: "3.10" startup_duration_timeout: 40m --- # 🌍 ABot-World — Interactive World Rollout Upload a single starting image and steer a **live** navigable world in real time. Provide a first-frame image (image-to-video seed), describe the scene, and drive the world with **WASD** (move & turn) / **IJKL** (look & pan). The model autoregressively rolls out an action-conditioned world and streams decoded frames straight to your browser. - **Model:** [`acvlab/ABot-World-0-5B-LF`](https://huggingface.co/acvlab/ABot-World-0-5B-LF) (built on Wan2.2-TI2V-5B) - **Code:** [amap-cvlab/ABot-World](https://github.com/amap-cvlab/ABot-World) - **Project:** [ABot-World](https://amap-cvlab.github.io/ABot-World/) ## Architecture This Space runs a proper live backend/infrastructure (in the spirit of [`Overworld/waypoint-1-5`](https://huggingface.co/spaces/Overworld/waypoint-1-5)): - **`gradio.Server`** exposes ZeroGPU-friendly `/start_game` and `/stop_game` API endpoints plus a raw **WebSocket** (`/ws`) that streams binary JPEG frames and receives live control input — no Gradio UI polling. - A custom **`index.html`** front-end handles **image upload** (the i2v seed — no video upload needed), live keyboard steering, and a clean HUD. - Every endpoint is keyed by a per-client `session_id`, so concurrent players never share seed images, frame queues, or status messages. - **ZeroGPU quota** is billed to the *requesting user*: the HF iframe's `x-api-token` / `x-ip-token` is forwarded by the Gradio JS client and the incoming request context is propagated into the GPU worker thread, so `@spaces.GPU` consumes the visitor's own quota rather than the Space owner's. Inference is causal / block-wise, matching the upstream `CausalInferencePipeline`.