Hub documentation

3Dデータセット

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

3Dデータセット

このガイドでは、Hub 上で 3D ファイルがどのようにプレビューされるか、および OpenUSD アセット(ロボティクスシミュレーション用の SimReady パッケージなど)のデータセットをどのように構成するかを示します。各 3D ファイルは、そのページでプレビューできます。Dataset Viewer では、Mesh 列にサムネイルが表示され、クリックすると 3D で開きます。また、データセットのページにはアセットのギャラリーが表示されます。.glb、.ply または .stl ファイルのリポジトリには、自動的に Mesh 列が追加されます。SimReady データセットにも、アセットのギャラリーが追加されます。

3Dファイルのプレビュー

データセットのFiles and versionsタブまたはStorage Bucket内の3Dファイルをクリックすると、インタラクティブな3Dビューアで開くことができます。ビューアを回転させたり、ズームしたり、全画面表示に切り替えることができます。

形式拡張機能
OpenUSD.usd, .usda, .usdc, .usdz
glTF.glb, .gltf
メッシュ.obj, .stl, .ply
点群.ply
Gaussian splat.ply, .splat

100 MB を超える glTF、メッシュ、点群、Gaussian splat ファイルは、Load 3D preview をクリックすると読み込まれますが、1 GB を超えるファイルはプレビューされません。

OpenUSDのレイヤーとテクスチャ

USDアセットは、サブレイヤー、ペイロード、マテリアル、テクスチャを参照するルートファイルを含む複数のファイルに分割されることがよくあります。ビューアはこれらの参照ファイルが同じリポジトリから読み込まれるため、アセットを作成した際のフォルダ構造を維持し、参照には相対パスを使用してください。絶対パスやリポジトリ外のファイルへの参照は読み込めません。

Dataset Viewer 内の 3D ファイル

Dataset Viewer は、Mesh 列の各セルにサムネイルを表示します。サムネイルをクリックすると、ファイルが 3D で開きます。サムネイルは、.glb、.ply、.stl および .obj ファイルに対してレンダリングできます。

データセットページには、選択したサブセットとスプリットの最初の行から最大15枚のサムネイルを表示する3D Assetsカードも表示されます。カードが表示されない場合は、最初の行にメッシュが含まれていることを確認してください。

3Dファイルのリポジトリ

データセットに.glb、.ply、または.stlファイルのみが含まれている場合、特別な操作は不要です。meshカラムが自動的に追加されます。メタデータを追加するには、メッシュデータセットの作成を参照してください。

3Dファイルを含むParquetデータセット

データセットが Parquet 形式で保存されている場合、Dataset Viewer は Parquet ファイルを読み取り、リポジトリ内の 3D ファイルをカラムとして追加しません。他のカラムの横に 3D ファイルを表示するには、ファイルをリポジトリ内に保持したまま、それらを参照する Mesh カラムを追加してください:

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")
  • パスは、Parquet ファイルを含むディレクトリからの相対パスでなければなりません。
  • 3Dファイルのない行にはNoneを使用します。
  • フォルダには最大10,000個のファイルを格納できます。そのため、より多くのファイルを扱う場合は、サブフォルダにグループ化してください。

SimReadyデータセット

SimReadyは、物理、マテリアル、セマンティックラベルを備えたシミュレーションで即座に使用できるOpenUSDアセット向けの仕様です。SimReadyパッケージを含むデータセットのページには、3D Assetsカードが表示され、パッケージの数と、データセット全体からサンプリングされた最大15枚のサムネイルが示されます。サムネイルをクリックすると、そのUSDファイルがビューアで開きます。

例えば、nvidia/simready-assetsやnvidia/PhysicalAI-SimReady-Warehouse-01を参照してください。

これらのデータセットにはsimreadyタグも付与されるため、データセットのフィルタリング時に表示されます。

パッケージ構成

パッケージは、com.nvidia.simready.packaging.json ファイルを含むフォルダーです。パッケージはリポジトリ内の任意の深さに配置でき、パッケージ内のフォルダーはすべてそのパッケージの一部となります。

各パッケージには、カードに表示されるためにルートUSDファイルのサムネイルが必要です。SimReadyのサムネイル要件に従い、<folder>/<file>.usdのサムネイルは<folder>/.thumbs/256x256/<file>.usd.png(または.usda.png、.usdc.png、.usdz.png)であり、パッケージフォルダー内またはその1階層下にあります:

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はライトモードで表示され、<file>.usd.pngはダークモードで表示されます。
  • 4 MBを超えるサムネイルはスキップされます。

カードは、データセットへの各プッシュ後に更新されます。

モダリティタグ

3Dファイルを含むデータセットには3dモダリティが割り当てられるため、モダリティによるデータセットの絞り込みで表示されます。データセットカードで設定することもできます。データセットのモダリティを強制設定するを参照してください。

Update on GitHub