bayang/shape
Shape Geometry Dataset Synthetic graph-based centerline representations of 3D geometric motifs (pipe-like structures). JSON Schema dataset.json is an array of shape records. Each record: { "category": "arc_90", "nodes": [[x, y, z], ...], "edges": [[i, j], ...], "features": { "curvature": [0.0, 0.1, ...], "segment_angle": [0.0, 160.5, ...] } } Field Type Description category string Shape class label (e.g. straight, arc_90, corner)… See the full description on the dataset page: https://huggingface.co/datasets/bayang/shape.
Shape Geometry Dataset
Synthetic graph-based centerline representations of 3D geometric motifs (pipe-like structures).
JSON Schema
dataset.json is an array of shape records. Each record:
{
"category": "arc_90",
"nodes": [[x, y, z], ...],
"edges": [[i, j], ...],
"features": {
"curvature": [0.0, 0.1, ...],
"segment_angle": [0.0, 160.5, ...]
}
}Categories
Why this structure?
- Nodes + edges = graph — directly loadable into GNN frameworks (PyTorch Geometric, DGL).
- Unit spacing — standardises graph density across shapes; a 15-unit straight and a 90° arc at R=10 both have proportional node counts.
- Random rigid pose — every sample gets a random 3D rotation + translation so the model can't memorise orientation.
- Per-node features — curvature and segment angle give the network local geometric cues beyond raw xyz, helping distinguish arcs from straights even when node counts overlap.
- Junctions share a hub node — T and Y shapes have one node connected to 3 edges, matching real pipe topology and giving the GNN a clear topological signal.
Regenerate
python generate_geometry_dataset.pyGenerates 10000 samples per category (17 arc classes + straight + corner + junctionT + junctionY = 21 categories, 21k samples total).
