vi-ocean/SymVAE
Geometric Logic-Form Dataset (SymParser / SymVAE / SymHPR) Dataset for the CVPR 2026 paper Hierarchical Process Reward Models are Symbolic Vision Learners โ Shan Zhang, Aotian Chen, Kai Zou, Jindong Gu, Yuan Xue, Anton van den Hengel. ๐ Project page: vi-ocean.github.io/projects/SymVAE โ SymVAE stands for Symbolic Variational Auto-Encoder. A multimodal dataset for training and evaluating MLLMs on geometric diagram โ logic-form extraction. Given a geometry image, a model mustโฆ See the full description on the dataset page: https://huggingface.co/datasets/vi-ocean/SymVAE.
Geometric Logic-Form Dataset (SymParser / SymVAE / SymHPR)
Dataset for the CVPR 2026 paper **Hierarchical Process Reward Models are Symbolic Vision Learners** โ Shan Zhang, Aotian Chen, Kai Zou, Jindong Gu, Yuan Xue, Anton van den Hengel.
๐ Project page: vi-ocean.github.io/projects/SymVAE โ SymVAE stands for Symbolic Variational Auto-Encoder.
A multimodal dataset for training and evaluating MLLMs on geometric diagram โ logic-form extraction. Given a geometry image, a model must produce a structured logic form describing the diagram: point instances, line instances, shape instances, geometric relations, and normalized point positions.
The release contains three subsets:
All images live under images/ and are shared across the three subsets (3.4 GB total, 135,172 PNGs).
Directory Structure
Because the image collection contains ~141k files (more than a git host allows per directory), the images are shipped as two tar archives. Everything else is plain JSON.
.
โโโ images_SFT.tar # 2.6 GB โ extracts to images/SFT/images/ (106,276 png, SymParser)
โโโ images_RL.tar # 619 MB โ extracts to images/RL/... (RL images)
โ # RL/images (11,865, LogicForm) + RL/annotated_images
โ # (5,000, PGDP) + RL/geo170k (18,040, Geo170K: geo3k / geoqa_plus)
โโโ SymParser_100K/
โ โโโ SymParser_100K.json
โโโ SymVAE_16K/
โ โโโ SymVAE_train.json
โ โโโ SymVAE_eval.json
โโโ SymHPR_9K/
โโโ SymHPR_train_with_logicform.json
โโโ SymHPR_eval_with_logicform.jsonSetup โ extract the images once
# after downloading the repo (see Usage below)
tar xf images_SFT.tar # โ images/SFT/images/...
tar xf images_RL.tar # โ images/RL/...This recreates a single images/ directory shared by all three subsets (3.4 GB total, 135,172 PNGs).
โ ๏ธ Image path convention. Theimage/image_pathfields in the JSON files are written relative to theimages/directory, e.g.SFT/images/final_construction_sample_0.pngorRL/images/final_construction_sample_11021.png. After extracting the tars, resolve a full path by prependingimages/:full_path = os.path.join("images", record_image_path)
Subsets
1. SymParser_100K (SFT)
LLaVA-style conversations. Field image points to SFT/images/*.png.
{
"id": "logic_form_1",
"image": "SFT/images/final_construction_sample_0.png",
"conversations": [
{"from": "human", "value": "<image>\nGenerate the logic forms for this image."},
{"from": "gpt", "value": "Point instances: [l, g, h, w, s, x, n, v, b]\n\nLine instances: [sx, xn, nv, vs]\n\nShape instances:\nCircle(b)\nSquare(s, x, n, v)\n..."}
]
}2. SymVAE_16K (RL)
OpenAI-messages-style prompts. Sources: Geo170K (7,000), LogicForm (5,000), PGDP (4,000).
{
"prompt": [
{"role": "user", "content": [
{"type": "image_url", "image_url": {"url": "RL/images/final_construction_sample_11021.png"}},
{"type": "text", "text": "Analyze this geometric diagram and extract a complete logic form."}
]}
],
"answer": "Point instances: [q, k, p, o]\n\nLine instances: [qk, kp, pq]\n...",
"info": {
"image_path": "RL/images/final_construction_sample_11021.png",
"source": "LogicForm",
"idx": 5000,
"original_id": "stage1_logic_form_10477",
"image_filename": "RL/images/final_construction_sample_11021.png",
"logic_form_gt": { "point_instances": [...], "line_instances": [...], "shape_instances": [...], "indicator_of_shape": null, "geometric_relations": [...], "point_positions": {...} }
}
}3. SymHPR_9K (RL, with logic-form GT)
Same schema as SymVAE. Sources: LogicForm (5,000), PGDP (4,000). Every record includes structured logic_form_gt in info.
Logic-Form Schema
Answers are text but follow a fixed structure, which info.logic_form_gt mirrors as fields:
- Point instances โ
[q, k, p, o] - Line instances โ
[qk, kp, pq] - Shape instances โ
Circle(o),Triangle(q, k, p),Square(...) - Indicator of shape โ constraints (
Parallel,Perpendicular,Equals(LengthOf(...), ...)) - Geometric relations โ
PointLiesOnCircle(q, Circle(o, radius_0_0)),ConcyclicPoints(...) - Point positions โ normalized coordinates in
[0, 1], e.g.q=(0.225, 0.547)
Usage
Download the whole repo, then extract the two image tars once:
from huggingface_hub import snapshot_download
snapshot_download(repo_id="vi-ocean/SymVAE", repo_type="dataset", local_dir="./data")cd ./data
tar xf images_SFT.tar # โ images/SFT/images/...
tar xf images_RL.tar # โ images/RL/...Then load a subset (image paths are relative to the extracted images/ folder):
import json, os
root = "./data" # local clone / snapshot dir (after extracting the tars)
# --- SFT ---
sft = json.load(open(os.path.join(root, "SymParser_100K/SymParser_100K.json")))
rec = sft[0]
img = os.path.join(root, "images", rec["image"]) # prepend images/
# --- RL ---
rl = json.load(open(os.path.join(root, "SymVAE_16K/SymVAE_train.json")))
rec = rl[0]
img = os.path.join(root, "images", rec["info"]["image_path"])Data Sources
Images are aggregated / rendered from: synthetically constructed geometry diagrams (LogicForm), PGDP (annotated_images), and Geo170K (geo3k, geoqa_plus). Please cite the original datasets when using the corresponding subsets.
License
<!-- TODO: ็กฎ่ฎค่ฎธๅฏ่ฏใ้ป่ฎคๅกซ CC-BY-4.0๏ผๆณจๆ Geo170K / PGDP ๅญ้้้ตๅฎๅ ถๅๅง่ฎธๅฏ่ฏใ --> Released under CC-BY-4.0 for the newly created annotations. Third-party image sources (Geo170K, PGDP) retain their original licenses.
Citation
@inproceedings{zhang2026hierarchical,
title = {Hierarchical Process Reward Models are Symbolic Vision Learners},
author = {Zhang, Shan and Chen, Aotian and Zou, Kai and Gu, Jindong and Xue, Yuan and van den Hengel, Anton},
booktitle = {Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)},
pages = {22185--22194},
year = {2026}
}