Hub documentation

Dataset 3D

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Dataset 3D

Hub menampilkan pratinjau file 3D di browser, sehingga Anda dapat memeriksa mesh, scene, point cloud, dan Gaussian splat tanpa perlu mengunduhnya. Panduan ini membahas:

Pratinjau file 3D

Klik file 3D di tab Files and versions dari dataset atau Storage Bucket untuk membukanya di viewer 3D interaktif. Anda dapat memutar, memperbesar, dan membuka viewer dalam layar penuh.

FormatEkstensiContoh
glTF.glb, .gltfDamagedHelmet.glb
Mesh.obj, .stl, .plycone.stl
Awan titik.plybirmingham_block_13.ply
Gaussian splat.ply, .splata_monarch_butterfly.ply
OpenUSD.usd, .usda, .usdc, .usdzsm_box_corrugated_brown_b08_01.usd

File glTF, mesh, point cloud, dan Gaussian splat berukuran lebih dari 100 MB akan dimuat saat Anda mengklik Load 3D preview. File berukuran lebih dari 1 GB tidak dapat dipratinjau.

Meshes dan glTF

File glTF dirender dengan material dan teksturnya. Gunakan tombol di sudut kanan atas untuk beralih antara Solid, Wireframe, dan Solid + wireframe.

Awan titik

File .ply yang hanya berisi vertex, seperti hasil pemindaian LiDAR atau fotogrametri, ditampilkan sebagai awan titik dengan warna vertex-nya:

Gaussian splats

Gaussian splats dapat disimpan sebagai file .splat atau .ply:

OpenUSD

Aset USD sering kali dipecah ke dalam beberapa file: file root yang merujuk ke sublayer, payload, material, dan tekstur. Viewer memuat file-file yang dirujuk tersebut dari repositori yang sama, jadi pertahankan struktur folder yang Anda gunakan saat membuat aset, dan gunakan path relatif untuk referensi. Referensi ke path absolut, atau ke file di luar repositori, tidak dapat dimuat.

File 3D di Dataset Viewer

Kolom mesh

Dataset Viewer menampilkan thumbnail untuk setiap sel pada kolom Mesh. Thumbnail dapat dirender untuk file .glb, .ply, .stl dan .obj.

Klik thumbnail untuk membuka file dalam 3D, di sebelah nilai lain dari barisnya:

Kartu Aset 3D

Halaman dataset juga menampilkan kartu 3D Assets dengan hingga 15 thumbnail dari baris-baris pertama subset dan split yang dipilih, seperti yang ada di bagian atas halaman ini. Pastikan baris-baris pertama memiliki mesh, jika tidak kartu tersebut tidak akan muncul.

Sebagai contoh, lihat cfahlgren1/smithsonian-3d-glb.

Menyusun struktur dataset Anda

Hanya file 3D

Jika dataset Anda hanya berisi file .glb, .ply atau .stl, Anda tidak perlu melakukan apa pun: kolom mesh akan ditambahkan secara otomatis.

my_dataset_repository/
└── meshes
    β”œβ”€β”€ chair.glb
    β”œβ”€β”€ lamp.glb
    └── table.glb

Kolom tambahan

Untuk menambahkan caption, label, atau kolom lain, tambahkan file metadata.jsonl (atau metadata.csv) dengan kolom file_name di samping file 3D Anda:

my_dataset_repository/
└── train
    β”œβ”€β”€ box.glb
    β”œβ”€β”€ sphere.glb
    └── metadata.jsonl

Lihat Membuat dataset mesh untuk detail lebih lanjut, dan cfahlgren1/mesh-doc-test-metadata untuk contoh.

Parquet

Jika dataset Anda disimpan sebagai Parquet, Dataset Viewer membaca file Parquet dan tidak menambahkan file 3D di repositori sebagai kolom. Untuk menampilkan file 3D di samping kolom lainnya, simpan file di repositori dan tambahkan kolom Mesh yang merujuk ke file tersebut:

my_dataset_repository/
β”œβ”€β”€ meshes
β”‚   β”œβ”€β”€ box.glb
β”‚   β”œβ”€β”€ cone.stl
β”‚   └── ...
└── train.parquet
import json
import pyarrow as pa
import pyarrow.parquet as pq
from datasets import Features, Mesh, Value

table = pq.read_table("train.parquet")

cells = [
    {"bytes": None, "path": f"meshes/{row_id}.glb"}  # relative path from parquet directory to meshes
    for row_id in table["id"].to_pylist()
]
table = table.append_column("mesh", pa.array(cells, type=Mesh().pa_type))

# List all the columns of your dataset
features = Features({"id": Value("string"), "prompt": Value("string"), "mesh": Mesh()})
table = table.replace_schema_metadata(
    {"huggingface": json.dumps({"info": {"features": features.to_dict()}})}
)
pq.write_table(table, "train.parquet")
  • Path harus relatif terhadap direktori yang berisi file Parquet.
  • Gunakan None untuk baris tanpa file 3D.
  • Sebuah folder dapat berisi hingga 10.000 file, jadi kelompokkan kumpulan file yang lebih besar ke dalam subfolder.

Lihat cfahlgren1/mesh-doc-test-formats untuk contoh.

Dataset SimReady

SimReady adalah spesifikasi untuk aset OpenUSD yang siap digunakan dalam simulasi, lengkap dengan fisika, material, dan label semantik. Dataset yang berisi paket SimReady menampilkan kartu 3D Assets di halamannya, yang memuat jumlah paket dan hingga 15 thumbnail yang diambil secara acak dari seluruh dataset. Mengklik thumbnail akan membuka file USD-nya di viewer.

Sebagai contoh, lihat nvidia/simready-assets atau nvidia/PhysicalAI-SimReady-Warehouse-01.

Dataset-dataset ini juga diberi tag simready, sehingga muncul saat menerapkan filter pada dataset.

Struktur paket

Paket adalah folder yang berisi file com.nvidia.simready.packaging.json. Paket dapat berada di kedalaman mana pun dalam repositori, dan folder di dalam paket merupakan bagian dari paket tersebut.

Setiap paket membutuhkan thumbnail dari file USD root-nya agar muncul di kartu. Mengikuti persyaratan SimReady untuk thumbnail, thumbnail dari <folder>/<file>.usd adalah <folder>/.thumbs/256x256/<file>.usd.png (atau .usda.png, .usdc.png, .usdz.png), di folder paket atau satu folder di bawahnya:

my_dataset_repository/
β”œβ”€β”€ IV_pole_a01
β”‚   β”œβ”€β”€ com.nvidia.simready.packaging.json
β”‚   └── simready_usd
β”‚       β”œβ”€β”€ .thumbs
β”‚       β”‚   └── 256x256
β”‚       β”‚       β”œβ”€β”€ sm_IV_pole_a01_01.usd.png
β”‚       β”‚       └── sm_IV_pole_a01_01.usd_light.png
β”‚       β”œβ”€β”€ sm_IV_pole_a01_01.usd
β”‚       └── payloads
β”‚           └── ...
└── IV_pole_a02
    β”œβ”€β”€ com.nvidia.simready.packaging.json
    └── ...
  • <file>.usd_light.png opsional ditampilkan dalam mode terang, dan <file>.usd.png dalam mode gelap.
  • Thumbnail yang lebih besar dari 4 MB akan dilewati.

Kartu diperbarui setelah setiap push ke dataset.

Tag modalitas

Dataset dengan file 3D mendapatkan modalitas 3d, sehingga muncul saat memfilter dataset berdasarkan modalitas. Anda juga dapat menyetelnya di kartu dataset, lihat Memaksa penyetelan modalitas dataset.

Update on GitHub