--- license: cc-by-nc-4.0 language: - en library_name: transformers pipeline_tag: image-text-to-text tags: - vision-language-model - multimodal - panoramic-understanding - 360-degree - equirectangular-panorama - spatial-reasoning - panoworld base_model: - Qwen/Qwen3.5-9B datasets: - wcccp/Pano_dataset --- # PanoWorld-Hstar PanoWorld-Hstar is a vision-language model based on **Qwen3.5-9B**, developed for 360-degree panoramic understanding and spatial reasoning. The model is part of the **PanoWorld** project, which focuses on ERP-native panoramic perception, global spatial topology understanding, and human-centric visual search in 360° scenes. * Project: https://github.com/wcpcp/PanoWorld * Model: https://huggingface.co/wcccp/PanoWorld * Dataset: https://huggingface.co/datasets/wcccp/Pano_dataset ## Model Description PanoWorld-Hstar is fine-tuned for vision-language understanding in equirectangular panorama images. It is designed to improve model capability on panoramic scene captioning, spatial relation reasoning, direction understanding, and 360° visual question answering. ## Intended Use This model is intended for research on: * 360° panoramic image understanding * panoramic visual question answering * spatial and directional reasoning * human-centric visual search in panoramic scenes * embodied AI and panoramic scene perception ## Usage ```python import torch from transformers import AutoProcessor, Qwen3_5ForConditionalGeneration model_id = "wcccp/PanoWorld-Hstar" processor = AutoProcessor.from_pretrained(model_id, trust_remote_code=True) model = Qwen3_5ForConditionalGeneration.from_pretrained( model_id, torch_dtype=torch.bfloat16, device_map="auto", trust_remote_code=True, ) messages = [ { "role": "user", "content": [ {"type": "image", "image": "example_panorama.jpg"}, {"type": "text", "text": "Describe this 360-degree panoramic scene."}, ], } ] inputs = processor.apply_chat_template( messages, tokenize=True, add_generation_prompt=True, return_dict=True, return_tensors="pt", ).to(model.device) generated_ids = model.generate( **inputs, max_new_tokens=512, ) generated_ids_trimmed = [ output_ids[len(input_ids):] for input_ids, output_ids in zip(inputs.input_ids, generated_ids) ] response = processor.batch_decode( generated_ids_trimmed, skip_special_tokens=True, clean_up_tokenization_spaces=False, )[0] print(response) ``` Please use a recent version of `transformers` that supports Qwen3.5. ## Citation ```bibtex @misc{wang2026panoworld, title={PanoWorld: Towards Spatial Supersensing in 360$^\circ$ Panorama World}, author={Changpeng Wang and Xin Lin and Junhan Liu and Yuheng Liu and Zhen Wang and Donglian Qi and Yunfeng Yan and Xi Chen}, year={2026}, eprint={2605.13169}, archivePrefix={arXiv}, primaryClass={cs.CV}, url={https://arxiv.org/abs/2605.13169}, } ```