遇见数据集

BRepGround

收藏
Hugging Face2026-09-30 更新2026-10-01 收录
官方服务:

资源简介:

BRepGround是一个用于基于文本的B-Rep(边界表示)基本体定位的数据集,旨在支持高保真CAD生成任务,源自论文“Towards High-Fidelity CAD Generation via LLM-Driven Program Generation and Text-Based B-Rep Primitive Grounding”(ICML 2026)。数据集包含CAD状态(STEP实体)、对应的文本查询以及面和边的二值标签。每个样本存储一个CAD状态及其共享标签的文本查询。数据集划分为训练集(51,034个CAD状态,153,159个文本查询)、验证集(2,837个状态,8,511个查询)和测试集(2,857个状态,8,575个查询)。数据以Parquet格式存储,主要字段包括:id(CAD状态ID)、queries(文本查询列表)、face_labels(按OCC遍历顺序的每个面二值标签)、edge_labels(按OCC遍历顺序的每个边二值标签)、asset_archive(包含STEP和标签JSON的ZIP分片)、step_path和label_path(分片内文件路径)。标签中1表示目标基本体,0表示未选择,重复的定向出现按OCC的IsSame身份比较只计一次。数据集采用CC BY 4.0许可,使用pythonocc-core 7.8.1.1 / OCCT 7.8.1索引,适用于文本驱动的CAD基本体定位模型的训练与评估。

BRepGround is a dataset for text-based B-Rep (Boundary Representation) primitive grounding, designed to support high-fidelity CAD generation tasks, derived from the paper Towards High-Fidelity CAD Generation via LLM-Driven Program Generation and Text-Based B-Rep Primitive Grounding (ICML 2026). The dataset contains CAD states (STEP entities), corresponding text queries, and binary labels for faces and edges. Each sample stores a CAD state along with its shared-label text queries. The dataset is split into training (51,034 CAD states, 153,159 text queries), validation (2,837 states, 8,511 queries), and test (2,857 states, 8,575 queries) sets. Data is stored in Parquet format with main fields: id (CAD state ID), queries (list of text queries), face_labels (binary labels per face in OCC traversal order), edge_labels (binary labels per edge in OCC traversal order), asset_archive (ZIP archive containing STEP and label JSON files), step_path and label_path (file paths within the archive). Labels: 1 indicates target primitive, 0 indicates not selected; repeated oriented occurrences are counted only once by OCCs IsSame identity comparison. The dataset is licensed under CC BY 4.0, indexed using pythonocc-core 7.8.1.1 / OCCT 7.8.1, and is suitable for training and evaluating text-driven CAD primitive grounding models.

创建时间:
2026-09-28
原始信息汇总

BRepGround 数据集概述

基本信息

  • 数据集名称:BRepGround
  • 许可证:CC BY 4.0
  • 语言:英语 (en)
  • 数据规模:10K < n < 100K
  • 标签:cad、3d、brep、text-grounding、arxiv:2603.11831
  • 相关论文:Towards High-Fidelity CAD Generation via LLM-Driven Program Generation and Text-Based B-Rep Primitive Grounding (ICML 2026)

数据集内容

面向基于文本的 B-Rep 基元定位(Text-based B-Rep primitive grounding)数据。每个样本由以下部分组成:

  • 一个 STEP 实体(STEP solid)
  • 一个文本查询(text query)
  • 其面(faces)和边(edges)上的二值标签

一个 Parquet 行存储一个 CAD 状态,该行中的查询共享相同的标签。每个标签直接对应一个 STEP 基元。

数据划分

划分 CAD 状态数 文本查询数
train 51,034 153,159
validation 2,837 8,511
test 2,857 8,575

数据说明

  • STEP 为该状态 ID 对应操作前的实体。例如,00133967_chamfer_6 属于父模型 00133967。
  • 状态 ID 在各划分之间互不相交。
  • 父模型存在重叠:train/validation 共享 2,039 个,train/test 共享 2,032 个,validation/test 共享 272 个。
  • splits.json 使用 train、val、test;而 Hugging Face Datasets 使用 validation 表示验证划分。

数据列说明

列名 含义
id CAD 状态 ID
queries 与该行标签共享的文本查询
face_labels 每个 STEP 面对应一个二值标签,按 OCC 遍历顺序
edge_labels 每个 STEP 边对应一个二值标签,按 OCC 遍历顺序
asset_archive 包含 STEP 和标签 JSON 的 ZIP 分片
step_path、label_path ZIP 分片内的文件路径
  • 1 表示目标基元;0 表示未选中的基元。
  • 面索引与边索引均从零开始。
  • 同一基元的重复定向出现按一次计数,采用 OCC 的 IsSame 身份比较。

加载方式

bash pip install datasets

python from datasets import load_dataset

dataset = load_dataset("jhlee11/BRepGround") row = dataset["test"][0] query = row["queries"][0] face_labels = row["face_labels"] edge_labels = row["edge_labels"]

使用 streaming=True 可在不下载整个划分的情况下进行迭代。

下载 STEP 与标签文件

bash hf download jhlee11/BRepGround export_data.py --repo-type dataset --local-dir downloads/brepground python downloads/brepground/export_data.py --split all --output datasets/grounding

  • 使用 --split test 指定单个划分,--id <state-id> 指定单个状态,或 --source /path/to/BRepGround 指定本地仓库。
  • 每个 ZIP 分片最多包含 2,000 个状态。
  • 仅加载 Parquet 只会读取标签和路径;导出脚本还会下载 STEP 文件。

导出目录结构:

text datasets/grounding/ steps/<state-id>.step labels/<state-id>.json

每个标签 JSON 包含 query、face_labels 和 edge_labels;query 包含与 Parquet 行中 queries 相同的字符串。

读取带标签的几何

  • 标签索引使用 pythonocc-core 7.8.1.1 / OCCT 7.8.1。
  • 需按照代码仓库的环境设置说明创建共享的 futurecad 环境。在代码仓库根目录导出 STEP 与标签文件后运行:

bash conda activate futurecad

python from grounding_brep.step_labels import read_step_labels

sample = read_step_labels( "datasets/grounding/steps/00133967_chamfer_6.step", "datasets/grounding/labels/00133967_chamfer_6.json", ) selected_faces = [f for f, flag in zip(sample["faces"], sample["labels"]["face_labels"]) if flag] selected_edges = [e for e, flag in zip(sample["edges"], sample["labels"]["edge_labels"]) if flag]

  • 读取器使用 read_step_file(..., as_compound=True) 加载 STEP,并使用 TopologyExplorer(shape, ignore_orientation=True).faces() 与 .edges()。
  • 标签直接遵循这两个遍历序列。在归一化、重新导出或以其他方式修改形状之前,先读取标签。
  • 完整索引约定参见 LABELS.md。

文件结构

text data/<split>-.parquet assets/<split>-.zip splits.json export_data.py read_labels.py requirements.txt LABELS.md README.md LICENSE.md

引用

bibtex @misc{li2026highfidelitycadgenerationllmdriven, title={Towards High-Fidelity CAD Generation via LLM-Driven Program Generation and Text-Based B-Rep Primitive Grounding}, author={Jiahao Li and Qingwang Zhang and Qiuyu Chen and Guozhan Qiu and Yunzhong Lou and Xiangdong Zhou}, year={2026}, eprint={2603.11831}, archivePrefix={arXiv}, primaryClass={cs.CV}, url={https://arxiv.org/abs/2603.11831} }

相关链接

  • 论文:https://arxiv.org/abs/2603.11831
  • 代码:https://github.com/JohanStackk/FutureCAD
  • FutureCAD histories:https://huggingface.co/datasets/jhlee11/FutureCAD
  • 环境设置:https://github.com/JohanStackk/FutureCAD/blob/main/docs/environment.md
  • 许可证:https://creativecommons.org/licenses/by/4.0/
搜集汇总
数据集介绍
BRepGround 数据集图片
构建方式
在计算机辅助设计与三维几何深度学习交叉领域,针对边界表示(B-Rep)模型细粒度语义理解的需求,该数据集从参数化CAD历史中系统性地抽取了带标注的实体状态。每个样本以STEP格式的实心体为几何载体,配套自然语言查询文本,并对其表面与棱边逐一赋予二值标签,以标识查询所指向的目标基元。标注过程遵循OpenCASCADE的拓扑遍历顺序,通过IsSame身份比较消除同一基元的重复有向出现,确保面与边标签与底层几何索引严格对应。数据集按状态划分训练、验证与测试集,状态标识互不重叠,查询文本在同一行内共享标签集合,从而为文本到B-Rep基元的定位任务提供了结构清晰、标注一致的监督信号。
特点
该数据集的核心特征在于将文本查询与B-Rep基元级几何标注紧密耦合,构建了面向CAD生成与理解的细粒度 grounding 资源。每个CAD状态可承载多条文本查询,这些查询共享同一组面与边的二值标签,兼顾了标注效率与语义多样性。标签索引严格遵循pythonocc-core/OCCT的遍历顺序,并借助IsSame比较规避了同一基元多次有向出现导致的重复计数问题,保证了标注的几何唯一性。数据集规模适中,涵盖数万个CAD状态与十余万条查询,分片存储为Parquet与ZIP资产归档,便于按需加载与流式处理。此外,状态标识在划分间保持独立,而父模型存在可控重叠,为评估模型泛化能力提供了合理的实验设定。
使用方法
使用者可通过Hugging Face Datasets库以一行代码加载数据,既可直接读取Parquet中的标签与路径,也可借助流式模式避免全量下载。若需获取STEP几何文件与对应标签JSON,可运行提供的导出脚本,按全部、单个划分或指定状态标识进行恢复,脚本会将文件组织为steps与labels两个目录。在具备pythonocc-core 7.8.1.1与OCCT 7.8.1环境的条件下,调用read_step_labels函数即可将STEP实体与标签JSON联合读取,输出按OCC遍历顺序排列的面与边序列,再依据二值标签筛选目标基元。需注意的是,标签读取应在对形状进行归一化、重导出或其他修改之前完成,以确保索引一致性。
背景与挑战
背景概述
在计算机辅助设计领域,基于文本描述生成高保真度CAD模型长期受制于几何表示与语义理解之间的鸿沟,B-Rep边界表示作为工业标准却缺乏细粒度文本定位基准。BRepGround数据集于2026年由Jiahao Li、Qingwang Zhang等学者构建,伴随ICML 2026论文《Towards High-Fidelity CAD Generation via LLM-Driven Program Generation and Text-Based B-Rep Primitive Grounding》发布,旨在为LLM驱动的CAD程序生成与文本到B-Rep基元的定位任务提供约5.1万CAD状态和逾17万条文本查询的监督信号。该数据集首次将文本查询与STEP实体的面、边二值标签直接关联,推动了CAD生成从整体形状合成向可解释、可定位的基元级操作演进,为程序化CAD生成与多模态几何理解奠定了数据基础。
当前挑战
该数据集所解决的领域问题在于文本引导的B-Rep基元定位,即从自然语言查询中准确识别CAD实体上面与边的目标集合,其挑战源于几何拓扑的复杂性与语义指代的多义性——同一文本可能对应多个拓扑相似的面或边,而细微的几何差异又可能改变语义归属。构建过程中,研究者需确保标签索引与OCC遍历顺序严格一致,处理重复有向出现的同一基元仅计一次的身份判定难题,并在保持父模型跨划分重叠的同时实现状态ID的严格不相交,以平衡数据规模与评测可靠性。此外,从STEP实体提取面边标签并维持与pythonocc-core 7.8.1.1的兼容性,亦对数据管线的鲁棒性提出了苛刻要求。
常用场景
经典使用场景
在计算机辅助设计与三维几何深度学习交叉领域,BRepGround数据集最为经典的应用场景莫过于文本驱动的B-Rep基元定位任务。该任务要求模型根据自然语言查询,在STEP格式的实体模型中精确识别并标记出对应的面或边基元。每条数据样本将一段文本描述与边界表示中的具体几何图元通过二元标签建立显式关联,为细粒度跨模态理解提供了监督信号。研究者可借此训练模型在复杂CAD模型中实现从语言到几何基元的精准映射,从而推动文本与边界表示之间语义对齐技术的发展。
解决学术问题
该数据集有效回应了CAD生成与理解研究中长期存在的跨模态对齐难题。以往工作多聚焦于整体形状的文本描述生成或类别级检索,难以在基元层面构建语言与几何的细粒度对应关系。BRepGround通过提供面与边的二元标签,使模型能够学习区分目标基元与非目标基元,从而解决了文本查询中空间指代与几何选择之间的歧义问题。其大规模、多查询的设计还为评估模型在复杂CAD状态下的定位鲁棒性提供了基准,对推动可解释、可编辑的CAD生成研究具有重要学术意义。
衍生相关工作
BRepGround的发布催生了一系列围绕LLM驱动CAD生成与文本基元定位的后续研究。其配套论文提出的FutureCAD框架将程序生成与文本基元定位相结合,为高保真CAD生成开辟了新路径。在此基础上,研究者进一步探索了多步编辑历史建模、跨状态基元追踪以及基于定位反馈的迭代优化方法。部分工作将该数据集的标注范式扩展至装配体与工程图理解任务,另有研究利用其标签体系评估视觉语言模型在几何推理上的表现。这些衍生工作共同丰富了文本与B-Rep交互的研究生态。
以上内容由遇见数据集搜集并总结生成
二维码
社区交流群
二维码
科研交流群
商业服务