YCB Downloader (ycbust)
ycbust is a Rust library and CLI for downloading and extracting assets from the YCB Object and Model Set. It is aimed at rendering, robotics, and simulation workflows that need a predictable local YCB layout with minimal setup.
Features
- Library and CLI interfaces for the same download/extract workflow
- Fast presets for
representative,tbp-standard,tbp-similar, andall google_16kmeshes by default, with--fullfor extra Berkeley assets- Validation helpers for checking that benchmark objects are fully present
- Progress bars for local downloads
- Optional
s3feature for streaming extracted assets directly to S3
Installation
Install the CLI from crates.io:
Install with S3 support:
Prebuilt binaries are also available on the GitHub releases page.
Quick Start
The CLI uses subcommands. The default local output path is your OS temp directory plus ycb:
- Linux/macOS:
/tmp/ycb - Windows:
%TEMP%\ycb
Download the default TBP standard subset:
Download a quick 3-object smoke-test set:
Download specific objects to a custom directory:
Download all supported file types for the standard subset:
Validate a local dataset directory:
List the objects in a built-in subset:
Fetch the full upstream object list from YCB S3:
Subsets
representative: 3 common objects for quick end-to-end checkstbp-standard: the TBP standard 10-object benchmark settbp-similar: the TBP harder 10-object discrimination setall: every object advertised by the YCB dataset index
Output Layout
For a typical google_16k download, ycbust produces:
<output-dir>/
003_cracker_box/
google_16k/
textured.obj
texture_map.png
textured.mtl
...
For rendering workflows, point your asset loader at google_16k/textured.obj.
Library Usage
The crate can also be used directly from Rust:
use Path;
use ;
async
API docs: docs.rs/ycbust
S3 Streaming
With the s3 feature enabled, downloads can be extracted directly into an S3 bucket:
Use --profile <name> if you do not want to rely on the default AWS credential chain.
Development
This repo uses just for common tasks:
This is a public utility crate, so changes should stay small, general-purpose, and easy to verify.