Skip to main content

Portable tools for preparing simulation-ready mesh and model assets

Project description

sim-asset-tools

sim-asset-tools prepares portable, versioned assets for robotics and physics simulation. It combines packaged OpenVDB and ACVD executables, peer raw-mesh operations such as normalization and CoACD decomposition, and higher-level object and body-surface workflows behind one sim-assets command.

Installation

Install all object and model operations as an isolated tool:

uv tool install "sim-asset-tools[all]"

The default installation includes native remeshing, normalization, validation, and their VTK/Trimesh runtimes. Install sim-asset-tools[coacd] for object preparation or sim-asset-tools[mujoco] for compiled-model body surfaces.

Prebuilt wheels support CPython 3.10–3.13 on Linux x86_64 or ARM64, Windows x86_64, and macOS 12 or newer on Intel or Apple Silicon. Headless processing does not require additional OS packages beyond the platform baseline.

To build from source:

git clone https://github.com/JYChen18/sim-asset-tools.git
cd sim-asset-tools
uv sync --all-extras
uv build --wheel

Native source organization and dependency-update guidance live in native/README.md.

Mesh operations

sim-assets mesh normalize input.obj normalized.obj

sim-assets mesh openvdb input.obj output.obj \
  --resolution 50 --level-set 0.1

sim-assets mesh acvd input.obj output.ply \
  --vertices 3000 --gradation 1.5

sim-assets mesh coacd input.obj collision/

Object bundles

Prepare one object or every supported mesh in a folder:

sim-assets prepare object raw/cup.obj \
  --output assets/objects/cup --formats mjcf,urdf
sim-assets prepare objects raw/ --output assets/objects --jobs 8
sim-assets check object assets/objects/cup

Each object is self-describing:

cup/
├── asset.json
├── source/
├── visual/mesh.obj
├── collision/coacd/part_000.obj
└── models/
    ├── model.xml
    └── model.urdf

The pipeline normalizes the source mesh, runs OpenVDB and ACVD, decomposes the result with CoACD, and records the transform, recipes, hashes, and collision mass properties in asset.json.

Body surfaces

Prepare body-local, watertight surfaces from the final compiled model so that entity prefixes, scaling, and attached collision geoms are included:

sim-assets prepare body-surfaces scene.xml \
  --output assets/derived/scene/body-surfaces

sim-assets check body-surfaces scene.xml \
  --assets assets/derived/scene/body-surfaces

The body-surfaces/v1 manifest maps exact model body names to hashed filenames, which supports names containing separators such as hand/forearm. Consumers validate the source and generated mesh hashes before using the surfaces.

Manifest compatibility

All generated bundles use schema sim-asset/v1. Body-surface guarantees are versioned separately as body-surfaces/v1. Artifact paths are relative to the manifest, and the manifest is published only after all referenced files are complete.

Third-party software

Component Version or source Use License
ACVD Commit 275554980e466914ae9053c8667006f251989422 Bundled remeshing tools CeCILL-B
OpenVDB v8.2.0 Statically linked SDF processing MPL 2.0
oneTBB v2022.0.0 Bundled threading library Apache 2.0
Boost 1.81.0 OpenVDB build dependency Boost Software License 1.0
VTK 9.6.2 Native mesh processing runtime BSD-style VTK license
CoACD Optional Python dependency Convex decomposition See the installed CoACD distribution

Code authored for this repository is licensed under the Apache License 2.0. Bundled third-party components retain their respective licenses.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

sim_asset_tools-0.2.0-py3-none-win_amd64.whl (2.3 MB view details)

Uploaded Python 3Windows x86-64

sim_asset_tools-0.2.0-py3-none-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (3.1 MB view details)

Uploaded Python 3manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

sim_asset_tools-0.2.0-py3-none-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (3.0 MB view details)

Uploaded Python 3manylinux: glibc 2.26+ ARM64manylinux: glibc 2.28+ ARM64

sim_asset_tools-0.2.0-py3-none-macosx_12_0_x86_64.whl (3.0 MB view details)

Uploaded Python 3macOS 12.0+ x86-64

sim_asset_tools-0.2.0-py3-none-macosx_12_0_arm64.whl (2.7 MB view details)

Uploaded Python 3macOS 12.0+ ARM64

File details

Details for the file sim_asset_tools-0.2.0-py3-none-win_amd64.whl.

File metadata

File hashes

Hashes for sim_asset_tools-0.2.0-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 b904bb6c75704eeb032c28f47c5a875eddaf713b4d287c2f830b433c5fe6a2a0
MD5 58b4b8479dd209f31f53ecbd3bbc87c3
BLAKE2b-256 c553d08b3c5df703527c517a043f78d1ad2c59662558f1f64a96d17fc39f6737

See more details on using hashes here.

Provenance

The following attestation bundles were made for sim_asset_tools-0.2.0-py3-none-win_amd64.whl:

Publisher: release.yml on JYChen18/sim-asset-tools

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sim_asset_tools-0.2.0-py3-none-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for sim_asset_tools-0.2.0-py3-none-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 02ee834ad240d7b4bf52ea845b979728158a6414cdc6026f0068f1f044ecbb58
MD5 76b2ce212147e47d0d426c8e104af65d
BLAKE2b-256 65370e51a00ea91cf463d8a9e468e2bb4e08ee444db3ae43f5747a8f7c52efdd

See more details on using hashes here.

Provenance

The following attestation bundles were made for sim_asset_tools-0.2.0-py3-none-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release.yml on JYChen18/sim-asset-tools

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sim_asset_tools-0.2.0-py3-none-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for sim_asset_tools-0.2.0-py3-none-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 289c578b3e334ddc803904fa2da91e278dce25c21c40991b5ec22cffb917f51e
MD5 604aa0912305d09838fe68684ee39eae
BLAKE2b-256 82c80efcc8255c251aa4b882ecbf96c9e46010ae67a9e46c00e43e488063f067

See more details on using hashes here.

Provenance

The following attestation bundles were made for sim_asset_tools-0.2.0-py3-none-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl:

Publisher: release.yml on JYChen18/sim-asset-tools

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sim_asset_tools-0.2.0-py3-none-macosx_12_0_x86_64.whl.

File metadata

File hashes

Hashes for sim_asset_tools-0.2.0-py3-none-macosx_12_0_x86_64.whl
Algorithm Hash digest
SHA256 94ce91ac9bc2a8a39b100d8fda0f04d77a87fcb97b74d1d3b1e5abef5d068a94
MD5 636312329101998d165f68b23d5c8ef1
BLAKE2b-256 3b30f5054907608f75dd184bb7a4d6fc3eb1688313e23b503bfc1a5f237507d9

See more details on using hashes here.

Provenance

The following attestation bundles were made for sim_asset_tools-0.2.0-py3-none-macosx_12_0_x86_64.whl:

Publisher: release.yml on JYChen18/sim-asset-tools

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sim_asset_tools-0.2.0-py3-none-macosx_12_0_arm64.whl.

File metadata

File hashes

Hashes for sim_asset_tools-0.2.0-py3-none-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 0fcc25addee3269d1fdf6f0e72700209639ed9233e96f35a43f49fe0427ab47b
MD5 f58a0c3915284ca3c215dd2553145da4
BLAKE2b-256 8035a81fc1b30ee6b6e0d2214f5ddb3354ea0bb63c62b58906908d1e9f1be2a6

See more details on using hashes here.

Provenance

The following attestation bundles were made for sim_asset_tools-0.2.0-py3-none-macosx_12_0_arm64.whl:

Publisher: release.yml on JYChen18/sim-asset-tools

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page