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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file sim_asset_tools-0.2.0-py3-none-win_amd64.whl.
File metadata
- Download URL: sim_asset_tools-0.2.0-py3-none-win_amd64.whl
- Upload date:
- Size: 2.3 MB
- Tags: Python 3, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b904bb6c75704eeb032c28f47c5a875eddaf713b4d287c2f830b433c5fe6a2a0
|
|
| MD5 |
58b4b8479dd209f31f53ecbd3bbc87c3
|
|
| BLAKE2b-256 |
c553d08b3c5df703527c517a043f78d1ad2c59662558f1f64a96d17fc39f6737
|
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
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
sim_asset_tools-0.2.0-py3-none-win_amd64.whl -
Subject digest:
b904bb6c75704eeb032c28f47c5a875eddaf713b4d287c2f830b433c5fe6a2a0 - Sigstore transparency entry: 2217791068
- Sigstore integration time:
-
Permalink:
JYChen18/sim-asset-tools@45a53f66cf02c6e481778e969b7d592947e18627 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/JYChen18
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@45a53f66cf02c6e481778e969b7d592947e18627 -
Trigger Event:
push
-
Statement type:
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
- Download URL: sim_asset_tools-0.2.0-py3-none-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 3.1 MB
- Tags: Python 3, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
02ee834ad240d7b4bf52ea845b979728158a6414cdc6026f0068f1f044ecbb58
|
|
| MD5 |
76b2ce212147e47d0d426c8e104af65d
|
|
| BLAKE2b-256 |
65370e51a00ea91cf463d8a9e468e2bb4e08ee444db3ae43f5747a8f7c52efdd
|
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
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
sim_asset_tools-0.2.0-py3-none-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl -
Subject digest:
02ee834ad240d7b4bf52ea845b979728158a6414cdc6026f0068f1f044ecbb58 - Sigstore transparency entry: 2217794166
- Sigstore integration time:
-
Permalink:
JYChen18/sim-asset-tools@45a53f66cf02c6e481778e969b7d592947e18627 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/JYChen18
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@45a53f66cf02c6e481778e969b7d592947e18627 -
Trigger Event:
push
-
Statement type:
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
- Download URL: sim_asset_tools-0.2.0-py3-none-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
- Upload date:
- Size: 3.0 MB
- Tags: Python 3, manylinux: glibc 2.26+ ARM64, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
289c578b3e334ddc803904fa2da91e278dce25c21c40991b5ec22cffb917f51e
|
|
| MD5 |
604aa0912305d09838fe68684ee39eae
|
|
| BLAKE2b-256 |
82c80efcc8255c251aa4b882ecbf96c9e46010ae67a9e46c00e43e488063f067
|
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
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
sim_asset_tools-0.2.0-py3-none-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl -
Subject digest:
289c578b3e334ddc803904fa2da91e278dce25c21c40991b5ec22cffb917f51e - Sigstore transparency entry: 2217792419
- Sigstore integration time:
-
Permalink:
JYChen18/sim-asset-tools@45a53f66cf02c6e481778e969b7d592947e18627 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/JYChen18
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@45a53f66cf02c6e481778e969b7d592947e18627 -
Trigger Event:
push
-
Statement type:
File details
Details for the file sim_asset_tools-0.2.0-py3-none-macosx_12_0_x86_64.whl.
File metadata
- Download URL: sim_asset_tools-0.2.0-py3-none-macosx_12_0_x86_64.whl
- Upload date:
- Size: 3.0 MB
- Tags: Python 3, macOS 12.0+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
94ce91ac9bc2a8a39b100d8fda0f04d77a87fcb97b74d1d3b1e5abef5d068a94
|
|
| MD5 |
636312329101998d165f68b23d5c8ef1
|
|
| BLAKE2b-256 |
3b30f5054907608f75dd184bb7a4d6fc3eb1688313e23b503bfc1a5f237507d9
|
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
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
sim_asset_tools-0.2.0-py3-none-macosx_12_0_x86_64.whl -
Subject digest:
94ce91ac9bc2a8a39b100d8fda0f04d77a87fcb97b74d1d3b1e5abef5d068a94 - Sigstore transparency entry: 2217791744
- Sigstore integration time:
-
Permalink:
JYChen18/sim-asset-tools@45a53f66cf02c6e481778e969b7d592947e18627 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/JYChen18
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@45a53f66cf02c6e481778e969b7d592947e18627 -
Trigger Event:
push
-
Statement type:
File details
Details for the file sim_asset_tools-0.2.0-py3-none-macosx_12_0_arm64.whl.
File metadata
- Download URL: sim_asset_tools-0.2.0-py3-none-macosx_12_0_arm64.whl
- Upload date:
- Size: 2.7 MB
- Tags: Python 3, macOS 12.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0fcc25addee3269d1fdf6f0e72700209639ed9233e96f35a43f49fe0427ab47b
|
|
| MD5 |
f58a0c3915284ca3c215dd2553145da4
|
|
| BLAKE2b-256 |
8035a81fc1b30ee6b6e0d2214f5ddb3354ea0bb63c62b58906908d1e9f1be2a6
|
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
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
sim_asset_tools-0.2.0-py3-none-macosx_12_0_arm64.whl -
Subject digest:
0fcc25addee3269d1fdf6f0e72700209639ed9233e96f35a43f49fe0427ab47b - Sigstore transparency entry: 2217793380
- Sigstore integration time:
-
Permalink:
JYChen18/sim-asset-tools@45a53f66cf02c6e481778e969b7d592947e18627 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/JYChen18
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@45a53f66cf02c6e481778e969b7d592947e18627 -
Trigger Event:
push
-
Statement type: