Skip to main content

Universal Asset Pipeline CLI - Convert, optimize, and validate 3D/2D assets

Project description

🔧 AssetPipe

Universal Asset Pipeline CLI — One tool to rule them all.

Convert, optimize, and validate 3D/2D assets across formats. Built for game studios, VFX houses, and arch-viz firms.

Features

  • Format Conversion — FBX ↔ glTF ↔ OBJ ↔ USD ↔ Alembic
  • Texture Optimization — Resize, compress, generate mipmaps, convert to KTX2/WebP
  • Mesh Optimization — Decimate, LOD generation, clean topology
  • Validation — Missing textures, broken UVs, scale issues, naming conventions
  • Batch Processing — Watch folders, CI/CD hooks, parallel execution
  • Plugin System — Add custom rules and converters

Installation

pip install assetpipe

Quick Start

# Convert a single file
assetpipe convert model.fbx --to gltf

# Convert with optimization
assetpipe convert model.fbx --to gltf --optimize --validate

# Batch process a directory
assetpipe batch ./assets --config pipeline.yaml

# Watch folder for automatic processing
assetpipe watch ./incoming --config pipeline.yaml

# Validate assets
assetpipe validate ./assets --rules strict

# Generate report
assetpipe report ./assets --output report.html

Configuration

Create a pipeline.yaml file:

version: 1

input:
  formats: [fbx, obj, blend]
  
output:
  format: gltf
  directory: ./processed

optimization:
  mesh:
    decimate: 0.5  # Reduce to 50% triangles
    generate_lods: [1.0, 0.5, 0.25]
  textures:
    max_size: 2048
    format: webp
    quality: 85

validation:
  rules:
    - no_missing_textures
    - valid_uvs
    - max_triangles: 100000
    - naming_convention: "^[a-z][a-z0-9_]*$"

notifications:
  slack:
    webhook: $SLACK_WEBHOOK
    on: [error, complete]

CLI Commands

Command Description
convert Convert a single asset
batch Process multiple assets
watch Watch folder for changes
validate Validate assets against rules
optimize Optimize meshes and textures
report Generate asset report
info Show asset information
plugins Manage plugins

Supported Formats

3D Models

  • Import: FBX, OBJ, glTF/GLB, BLEND*, USD*, Alembic*
  • Export: glTF/GLB, OBJ, USD*

Textures

  • Import: PNG, JPG, TGA, EXR, PSD*
  • Export: PNG, JPG, WebP, KTX2*

*Requires additional dependencies

Plugin Development

Create custom converters and validators:

# plugins/my_validator.py
from assetpipe.plugins import ValidatorPlugin, ValidationResult

class MyValidator(ValidatorPlugin):
    name = "my_custom_check"
    
    def validate(self, asset):
        if asset.triangle_count > 50000:
            return ValidationResult.error("Too many triangles!")
        return ValidationResult.ok()

Register in pipeline.yaml:

plugins:
  - path: ./plugins/my_validator.py
    enabled: true

CI/CD Integration

GitHub Actions

- name: Validate Assets
  run: |
    pip install assetpipe
    assetpipe validate ./assets --rules strict --fail-on-error

Pre-commit Hook

# .pre-commit-config.yaml
repos:
  - repo: local
    hooks:
      - id: assetpipe-validate
        name: Validate 3D Assets
        entry: assetpipe validate
        files: \.(fbx|obj|gltf|glb)$
        language: system

License

MIT License - see LICENSE for details.

Contributing

Contributions welcome! See CONTRIBUTING.md for guidelines.

Project details


Download files

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

Source Distribution

assetpipe_cli-0.1.1.tar.gz (47.1 kB view details)

Uploaded Source

Built Distribution

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

assetpipe_cli-0.1.1-py3-none-any.whl (52.9 kB view details)

Uploaded Python 3

File details

Details for the file assetpipe_cli-0.1.1.tar.gz.

File metadata

  • Download URL: assetpipe_cli-0.1.1.tar.gz
  • Upload date:
  • Size: 47.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for assetpipe_cli-0.1.1.tar.gz
Algorithm Hash digest
SHA256 86ecab49a6e8d189638ba94048ffc3b56da73f189a2b8f98efc1ef52e85e9dd0
MD5 1939cb0596ee23b92ec8ec459a083c24
BLAKE2b-256 e24d89f0c20e7bb75e3ac15005f75269663def411334fca7ddd1043c9ec7c744

See more details on using hashes here.

File details

Details for the file assetpipe_cli-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: assetpipe_cli-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 52.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for assetpipe_cli-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 932b50e8fa4d3094c71474b59db81e1877f1e6688da3eb9028a7752d1b9ee9ed
MD5 59b5489ea1d330151150197dfd634456
BLAKE2b-256 145050ca91ffe05273aae094816607d0411f920612081b9f193437b674f73665

See more details on using hashes here.

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