Hub documentation
Conjunto de dados 3D
Conjunto de dados 3D
O Hub exibe pré-visualizações de arquivos 3D no navegador, permitindo inspecionar malhas, cenas, nuvens de pontos e Gaussian splats sem baixá-los. Este guia aborda:
- Visualização de arquivos 3D em um visualizador interativo
- Arquivos 3D no Dataset Viewer, com colunas
Meshe uma galeria de ativos - Estruturando seu conjunto de dados para que os arquivos 3D apareçam ao lado das outras colunas
- Conjuntos de dados SimReady de ativos OpenUSD para simulação de robótica

Visualizando arquivos 3D
Clique em um arquivo 3D na aba Files and versions de um dataset ou Storage Bucket para abri-lo em um visualizador 3D interativo. Você pode girar, dar zoom e abrir o visualizador em tela cheia.
| Formato | Extensões | Exemplo |
|---|---|---|
| glTF | .glb, .gltf | DamagedHelmet.glb |
| Mesh | .obj, .stl, .ply | cone.stl |
| Nuvem de pontos | .ply | birmingham_block_13.ply |
| Splat gaussiano | .ply, .splat | a_monarch_butterfly.ply |
| OpenUSD | .usd, .usda, .usdc, .usdz | sm_box_corrugated_brown_b08_01.usd |
Arquivos glTF, mesh, nuvem de pontos e Gaussian splat com mais de 100 MB são carregados quando você clica em Load 3D preview. Arquivos com mais de 1 GB não são pré-visualizados.
Malhas e glTF
Arquivos glTF são renderizados com seus materiais e texturas. Use os botões no canto superior direito para alternar entre Solid, Wireframe e Solid + wireframe.

Nuvens de pontos
Um arquivo .ply contendo apenas vértices, como um scan LiDAR ou de fotogrametria, é exibido como uma nuvem de pontos com as cores dos vértices:

Gaussian splats
Os Gaussian splats podem ser armazenados como arquivos .splat ou .ply:

OpenUSD

Um ativo USD é frequentemente dividido em vários arquivos: um arquivo raiz que referencia sublayers, payloads, materiais e texturas. O viewer carrega esses arquivos referenciados do mesmo repositório, portanto, mantenha a estrutura de pastas com a qual você criou o ativo e use caminhos relativos para as referências. Referências a caminhos absolutos ou a arquivos fora do repositório não podem ser carregadas.
Arquivos 3D no Dataset Viewer
Colunas de malha
O Dataset Viewer exibe uma miniatura para cada célula de uma coluna Mesh. Miniaturas podem ser renderizadas para arquivos .glb, .ply, .stl e .obj.

Clique em uma miniatura para abrir o arquivo em 3D, ao lado dos outros valores de sua linha:

Cartão de ativos 3D
A página do conjunto de dados também exibe um cartão 3D Assets com até 15 miniaturas das primeiras linhas do subconjunto e da divisão selecionados, como o que está no topo desta página. Certifique-se de que as primeiras linhas tenham uma malha, caso contrário o cartão não aparecerá.
Por exemplo, veja cfahlgren1/smithsonian-3d-glb.
Estruturando seu conjunto de dados
Apenas arquivos 3D
Se o seu conjunto de dados contém apenas arquivos .glb, .ply ou .stl, você não precisa fazer nada: eles recebem automaticamente uma coluna mesh.
my_dataset_repository/
└── meshes
├── chair.glb
├── lamp.glb
└── table.glbColunas adicionais
Para adicionar legendas, rótulos ou outras colunas, adicione um arquivo metadata.jsonl (ou metadata.csv) com uma coluna file_name ao lado dos seus arquivos 3D:
my_dataset_repository/
└── train
├── box.glb
├── sphere.glb
└── metadata.jsonlVeja Criar um conjunto de dados de malha para mais detalhes e cfahlgren1/mesh-doc-test-metadata para um exemplo.
Parquet
Se o seu conjunto de dados estiver armazenado como Parquet, o Dataset Viewer lê os arquivos Parquet e não adiciona os arquivos 3D do repositório como uma coluna. Para exibir os arquivos 3D ao lado das suas outras colunas, mantenha os arquivos no repositório e adicione uma coluna Mesh que os referencie:
my_dataset_repository/
├── meshes
│ ├── box.glb
│ ├── cone.stl
│ └── ...
└── train.parquetimport 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")- Os caminhos devem ser relativos ao diretório que contém o arquivo Parquet.
- Use
Nonepara linhas sem um arquivo 3D. - Uma pasta pode conter até 10.000 arquivos, portanto, agrupe conjuntos maiores de arquivos em subpastas.
Veja cfahlgren1/mesh-doc-test-formats para um exemplo.
Conjuntos de dados SimReady
SimReady é uma especificação para ativos OpenUSD prontos para uso em simulação, com física, materiais e rótulos semânticos. Conjuntos de dados que contêm pacotes SimReady exibem um cartão 3D Assets em sua página, com o número de pacotes e até 15 miniaturas amostradas em todo o conjunto de dados. Clicar em uma miniatura abre seu arquivo USD no visualizador.

Por exemplo, veja nvidia/simready-assets ou nvidia/PhysicalAI-SimReady-Warehouse-01.
Esses conjuntos de dados também recebem a tag simready, portanto, aparecem ao filtrar conjuntos de dados.
Estrutura do pacote
Um pacote é uma pasta que contém um arquivo com.nvidia.simready.packaging.json. Os pacotes podem estar em qualquer profundidade no repositório, e as pastas dentro de um pacote fazem parte desse pacote.
Cada pacote precisa de uma miniatura do arquivo USD raiz para aparecer no cartão. Seguindo o requisito de miniaturas do SimReady, a miniatura de <folder>/<file>.usd é <folder>/.thumbs/256x256/<file>.usd.png (ou .usda.png, .usdc.png, .usdz.png), na pasta do pacote ou em uma pasta abaixo dela:
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
└── ...- Um arquivo opcional
<file>.usd_light.pngé exibido no modo claro, e<file>.usd.pngno modo escuro. - Miniaturas maiores que 4 MB são ignoradas.
O cartão é atualizado após cada push no dataset.
Etiqueta de modalidade
Datasets com arquivos 3D recebem a modalidade 3d, portanto aparecem ao filtrar datasets por modalidade. Você também pode configurá-la no cartão do dataset, veja Forçar a definição de uma modalidade de dataset.