Skip to main content

🔧 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.

Metadata

Release files for assetpipe-cli 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for assetpipe-cli 0.1.1
File Size Uploaded
assetpipe_cli-0.1.1.tar.gz 47.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for assetpipe-cli 0.1.1
File Interpreter ABI Platform
assetpipe_cli-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 100.0 kB

Release files / assetpipe_cli-0.1.1.tar.gz

Download URL assetpipe_cli-0.1.1.tar.gz
Size 47.1 kB
Tags Source
SHA-256 checksum
How to use checksums
86ecab49a6e8d189638ba94048ffc3b56da73f189a2b8f98efc1ef52e85e9dd0
BLAKE2b-256 checksum
How to use checksums
e24d89f0c20e7bb75e3ac15005f75269663def411334fca7ddd1043c9ec7c744
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.0

Release files / assetpipe_cli-0.1.1-py3-none-any.whl

Download URL assetpipe_cli-0.1.1-py3-none-any.whl
Size 52.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
932b50e8fa4d3094c71474b59db81e1877f1e6688da3eb9028a7752d1b9ee9ed
BLAKE2b-256 checksum
How to use checksums
145050ca91ffe05273aae094816607d0411f920612081b9f193437b674f73665
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.0

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page