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-0.1.0.tar.gz (44.6 kB view details)

Uploaded Source

Built Distribution

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

assetpipe-0.1.0-py3-none-any.whl (49.7 kB view details)

Uploaded Python 3

File details

Details for the file assetpipe-0.1.0.tar.gz.

File metadata

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

File hashes

Hashes for assetpipe-0.1.0.tar.gz
Algorithm Hash digest
SHA256 8d762adc7ea5b15bd5d5b5b562e2968d192d48304273797dd1cf54babc12cd03
MD5 f4b4e4fee78b48e0bef5ab592a588d7f
BLAKE2b-256 a2d80aecd5ac25e4ed2e4b601b3de96bc3bdc9309d437a40b11d2882d09375fd

See more details on using hashes here.

File details

Details for the file assetpipe-0.1.0-py3-none-any.whl.

File metadata

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

File hashes

Hashes for assetpipe-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c4e2ae2834cb6d85857840b830b7c0b8f76a870678c18b073885dace67781d30
MD5 9f831906574b83fd0609e99adba8408a
BLAKE2b-256 3be29c6a4b15d748173becefead088409798cd2adb5cd6a96827dfc3b276bc13

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