Demonstration only. Corollary is a non-commercial research demo — no warranty, no support, not for commercial use or clinical decisions. Read the disclaimer

All datasets

CAD Geometry Corpus · ADSKAILab

ABC-1M

A corpus of one million CAD-quality 3D shapes from the ABC dataset for engineering generative models.

What ABC-1M is

ABC-1M is a 3D geometry dataset published by ADSKAILab for engineering and materials science applications. It comprises one million computer-aided design (CAD) quality shapes drawn from the broader ABC dataset.

The dataset provides a foundation training corpus for generative geometric modeling, serving as the training data for the Make-A-Shape and WaLa generative models.

How it was made

The corpus compiles one million 3D shapes selected from the ABC dataset. The data is structured using the Parquet format with tabular and text modalities, enabling access through data analysis frameworks including Polars, Dask, and the Hugging Face Datasets library.

Key facts

Category
CAD Geometry Corpus
Format
Parquet
Modalities
Tabular, text
Associated fields
Engineering, materials-science

What you can use it for

Training generative 3D shape models
Supplies base training data for 3D generative architectures, such as Make-A-Shape and WaLa.
Engineering geometry research
Provides a standardised collection of one million CAD-quality geometries for computational engineering and materials science investigations.

Explore the data

The schema, real rows, full-text search and a SQL filter — read in your browser, nothing downloaded.

Explore

Read the real rows without downloading anything

Reading rows…

LiveRead from ADSKAILab/ABC-1M at the moment you asked. Nothing is cached or stored — every row above came from that request.

How the columns are distributed

Over 2,659 rows of default/train

area

float
min
-120618.39325
median
10028.41
mean
1.1M
max
455M

body_index

int
min
0
median
2
mean
20.18
max
1,031

err

string_label
  • 100%
  • Process returned with code 1 and error: Traceback (most recent call last): File "/home/ray/anaconda3/envs/occ/lib/python3.7/runpy.py", line 193, in _run_module_as_main "__main__", mod_spec) File "/home/ray/anaconda3/envs/occ/lib/python3.7/runpy.py", line 85, in _run_code exec(code, run_globals) File "/tmp/ray/session_2024-07-06_09-46-21_505136_263/runtime_resources/working_dir_files/_ray_pkg_43b20090e70c1813/src/brep_direct_gen/data_process/process_single_solid.py", line 193, in <module> process_solid() File "/tmp/ray/session_2024-07-06_09-46-21_505136_263/runtime_resources/working_dir_files/_ray_pkg_43b20090e70c1813/src/brep_direct_gen/data_process/process_single_solid.py", line 183, in process_solid data = extract_features_from_body(compound) File "/tmp/ray/session_2024-07-06_09-46-21_505136_263/runtime_resources/working_dir_files/_ray_pkg_43b20090e70c1813/src/brep_direct_gen/data_process/process_single_solid.py", line 167, in extract_features_from_body data, split_solid = parse_solid(solid, num_uv=num_uv, num_u=num_u) File "/tmp/ray/session_2024-07-06_09-46-21_505136_263/runtime_resources/working_dir_files/_ray_pkg_43b20090e70c1813/src/brep_direct_gen/data_process/process_abc.py", line 140, in parse_solid solid, num_uv=num_uv, num_u=num_u, allow_sheets=allow_sheets File "/tmp/ray/session_2024-07-06_09-46-21_505136_263/runtime_resources/working_dir_files/_ray_pkg_43b20090e70c1813/src/brep_direct_gen/data_process/utils.py", line 328, in extract_features_from_solid face_dict, edge_dict, edge_face_incidence = face_edge_adj(shape, allow_sheets) File "/tmp/ray/session_2024-07-06_09-46-21_505136_263/runtime_resources/working_dir_files/_ray_pkg_43b20090e70c1813/src/brep_direct_gen/data_process/utils.py", line 232, in face_edge_adj left_face, right_face = edge.find_left_and_right_faces(connected_faces) File "/home/ray/anaconda3/envs/occ/lib/python3.7/site-packages/occwl/edge.py", line 453, in find_left_and_right_faces if face2.is_left_of(self): File "/home/ray/anaconda3/envs/occ/lib/python3.7/site-packages/occwl/face.py", line 322, in is_left_of assert found_edge, "Edge doesn't belong to face" AssertionError: Edge doesn't belong to face ERROR conda.cli.main_run:execute(124): `conda run python -m src.brep_direct_gen.data_process.process_single_solid /tmp/tmpny2g8laj` failed. (See above for error) 0%
  • Process returned with code 124 and error: 0%

largest_distance_between_edge_bboxes_world

float
min
0
median
9.87
mean
10.05
max
18

largest_distance_between_face_bboxes_world

float
min
0
median
9.13
mean
9.22
max
17.72

max_edges_per_face

int
min
0
median
12
mean
21.52
max
440

num_cones

int
min
0
median
0
mean
1.13
max
84

num_cylinders

int
min
0
median
4
mean
10.92
max
512

num_edges

int
min
2
median
42
mean
99.41
max
2,199

num_faces

int
min
1
median
18
mean
37.56
max
776

num_faces_after_splitting

int
min
0
median
22
mean
42.09
max
789

num_spheres

int
min
0
median
0
mean
0.40
max
30

num_toruses

int
min
0
median
0
mean
1.35
max
122

num_vertices

int
min
1
median
28
mean
64.42
max
1,544

scaled_unique

bool
  • True100%

smallest_max_bbox_length_solid_length_ratio

float
min
0
median
0.08
mean
0.18
max
1

smallest_mid_bbox_length_solid_length_ratio

float
min
0
median
0.03
mean
0.08
max
1.00

smooth_edges_weighted_by_length

float
min
0
median
0.11
mean
0.23
max
1

solid_name

string_text
min
1
median
7
mean
9.98
max
159

solid_to_bounding_box_volume_ratio

float
min
-3.66
median
0.44
mean
0.48
max
1

sphere_radius

float
min
0.21
median
46.17
mean
188.06
max
6530.94

sphere_scaled_area

float
min
-23.75
median
4.85
mean
5.39
max
22.46

sphere_scaled_volume

float
min
-0.33
median
0.11
mean
0.45
max
36.52

stem

string_text
min
47
median
47
mean
47
max
47

thin_box_ratio

float
min
3.1e-3
median
0.66
mean
0.62
max
1

volume

float
min
-3947215.1847
median
19939.94
mean
85M
max
64.8B

Strengths and limits

Good at

  • Provides a large collection of one million CAD-quality 3D shapes from the ABC dataset.
  • Formatted in Parquet for integration with tabular data processing libraries such as Polars and Dask.

Watch out for

  • Does not include detailed source documentation regarding individual shape annotations, geometric representations, or surface mesh properties.

Questions

Can I look inside ABC-1M without downloading it?

Yes. This page reads its schema, real rows and per-column statistics in the browser, with full-text search and a SQL filter. Nothing is downloaded to your machine.

What licence is ABC-1M under?

Its authors declare mit. Read the terms on the original page before reusing the data.

Which generative models have been trained on ABC-1M?

ABC-1M serves as the foundation training corpus for the Make-A-Shape and WaLa generative models.

Where do the 3D models in ABC-1M originate?

All shapes in the corpus are drawn from the ABC dataset.

What data formats are provided?

The corpus is provided in Parquet format covering tabular and text modalities.

Written from ABC-1M's own dataset card. Statements citing a figure that does not appear there are removed before publication. Licence and running details come from our registry.