AI-native 3D avatar foundry — generate, rig, validate, and export production-ready avatars. Zero runtime dependencies. MCP server included.
Project description
AXIS Foundry
AI-native 3D resources foundry — generate, rig, validate, and export production-ready 3D assets across multiple asset kinds.
Zero runtime dependencies. Pure Python 3.11+. Wired into the AXIS Language (GoldenSlice) workflow runtime.
Originally AXIS Foundry. The avatar pipeline remains the flagship and is byte-for-byte compatible. The platform now models a wider asset taxonomy — props, vehicles, environments, VFX, weapons/armor, character accessories, and generic assets — with shared canonical contracts, provenance, marketplace metadata, and TrustFabric listing payloads.
Table of Contents
- Features
- Asset Taxonomy
- Installation
- Quickstart
- Supported Input Formats
- Export Targets
- CLI Commands
- Avatar Pipeline
- AXIS Language Integration
- Marketplace + TrustFabric Listings
- Architecture
- Testing
- Continuous Integration
- Requirements
- Contributing
- License
Features
- Multi-asset-kind support with a unified
CanonicalAssetContractsystem - Production-ready 17-stage avatar pipeline (classify → normalize → repair → 65-bone rig → skin → validate → facial → texture → animate → LOD → preview → export)
- Zero external runtime dependencies — 100% Python standard library
- Strong provenance & auditability — every stage emits a versioned, SHA-256-hashed contract
- Native AXIS Language (GoldenSlice) integration with pipeline audit guarantees
- Marketplace-ready outputs including TrustFabric / PAI listing payloads
- Cross-engine export to Unity, Unreal Engine, Godot, and Roblox
- 9,962+ tests passing across Python 3.12–3.14 with strict CI provenance auditing
Asset Taxonomy
AssetKind |
Status | Notes |
|---|---|---|
AVATAR |
Production | Full 17-stage pipeline including 65-bone humanoid rig, skinning, facial, LOD, animation |
PROP |
Contract + marketplace | Canonical contract, marketplace events, TrustFabric listings |
VEHICLE |
Contract + marketplace | Canonical contract, marketplace events, TrustFabric listings |
ENVIRONMENT |
Contract + marketplace | Canonical contract, marketplace events, TrustFabric listings |
VFX |
Contract + marketplace | Canonical contract, marketplace events, TrustFabric listings |
WEAPON_ARMOR |
Contract + marketplace | Canonical contract, marketplace events, TrustFabric listings |
CHARACTER_ACCESSORY |
Contract + marketplace | Canonical contract, marketplace events, TrustFabric listings |
GENERIC |
Contract + marketplace | Catch-all canonical contract, marketplace events, TrustFabric listings |
Note: Pipeline factory functions (
process_mesh_file,create_contract_from_template) acceptasset_kind=today. Non-AVATARkinds currently raiseNotImplementedErroruntil kind-specific normalize/rig/skin/validate paths are implemented. They are intentionally gated, not stubbed.
Installation
# From PyPI (recommended for users)
pip install axis-foundry
# Or in editable mode (for development)
python -m venv .venv
source .venv/bin/activate # Linux/macOS
# .venv\Scripts\activate # Windows
pip install -e ".[dev]"
The package has zero runtime dependencies beyond the Python standard library.
After install, two console scripts are available:
| Command | What it does |
|---|---|
axis-foundry |
Full CLI (process, validate, export, ...) |
axis-foundry-mcp |
MCP stdio server for AI agents |
Use from your AI agent (MCP)
AXIS Foundry ships a Model Context Protocol server so AI agents (Claude Desktop, Cursor, Windsurf, VS Code Copilot, Blender AI add-ons) can call the avatar pipeline directly.
After pip install axis-foundry, add this to your agent's MCP config:
{
"mcpServers": {
"axis-foundry": {
"command": "axis-foundry-mcp",
"env": {
"AXIS_API_BASE": "https://api.avatar.jonathanarvay.com"
}
}
}
}
Config file locations:
- Claude Desktop:
%APPDATA%\Claude\claude_desktop_config.json(Windows) /~/Library/Application Support/Claude/claude_desktop_config.json(macOS) - Cursor / Windsurf:
~/.cursor/mcp.json/~/.codeium/windsurf/mcp_config.json - VS Code:
.vscode/mcp.jsonin your workspace
To inspect the tool manifest without starting the server:
python -m axis_foundry mcp --list --json
Quickstart
# Process an avatar (default asset kind)
python -m axis_foundry process model.glb
# JSON contract output only
python -m axis_foundry process model.glb --json
# Export ready for Unity
python -m axis_foundry process model.glb --platform unity --export
# Run validation only
python -m axis_foundry validate model.glb
# Batch process an entire directory
python -m axis_foundry batch models/
Python API example:
from axis_foundry.contracts import AssetKind, new_contract
# Create a non-avatar contract directly
prop = new_contract(AssetKind.PROP)
prop.identity.name = "wooden-crate-01"
prop.attributes["material"] = "oak"
print(prop.to_json())
Supported Input Formats
| Format | Normalizer |
|---|---|
.glb, .gltf |
glTF 2.0 |
.fbx |
FBX |
.obj |
Wavefront OBJ |
.stl |
STL |
.ply |
PLY |
.vrm |
VRM |
.usda, .usdc, .usdz |
USD |
Export Targets
| Platform | Output Format |
|---|---|
| Unity | .unitypackage-compatible glTF |
| Unreal | UE-compatible glTF |
| Godot | Godot-compatible glTF |
| Roblox | Roblox-compatible mesh |
CLI Commands
| Command | Description |
|---|---|
process |
Run the full pipeline on a mesh file |
info |
Classify and display file information |
validate |
Run validation rules and show results |
inspect |
Deep inspection of bones, hierarchy, provenance |
manifest |
Inspect or verify embedded provenance manifest |
report |
Generate a comprehensive pipeline report |
batch |
Process multiple files with summary table |
wizard |
Interactive step-by-step processing |
audit |
Audit provenance chain and contract integrity |
migrate |
Migrate contract JSON to current schema |
serve |
Start HTTP API server (default 127.0.0.1:8321) |
Avatar Pipeline (Production Path)
Input File
↓
Classify → Normalize → Extract Geometry → Repair Mesh
↓
Auto-Rig (65-bone humanoid) → Skin Weights → Validate
↓
Facial Rig → Texture → Animate → LOD Generation → Preview
↓
Export (glTF / engine-specific)
Each stage produces a CanonicalAvatarContract (frozen dataclass) that captures the complete state of the asset. Contracts are versioned, diffable, and carry SHA-256 provenance hashes.
CanonicalAvatarContract inherits from CanonicalAssetContract and hard-pins asset_kind = AssetKind.AVATAR (excluded from serialization for backwards compatibility).
The full pipeline consists of 17 distinct stages with rich intermediate contracts for maximum auditability and partial re-processing.
AXIS Language Integration
The Foundry pipeline is exposed as plugins on the AXIS Language (GoldenSlice) workflow runtime:
- Vendored GoldenSlice snapshot lives at
axis_foundry/language/_goldenslice/(stdlib only — zero runtime dependency on external packages). - Foundry slice (
axis_foundry/language/foundry_slice.py) registers:OnAssetPipeline→foundry.normalize,foundry.rig,foundry.skinOnValidate→foundry.validateOnExport→foundry.export
- Pinned upstream:
UPSTREAM_GOLDENSLICE_VERSION = "2.3.0" axis_foundry.language.pipeline_audit.audit_pipeline_against_axis()guarantees that every hook/plugin/op binding used by the Python implementation exists in the slice. Drift raisesPipelineAuditError.
Marketplace + TrustFabric Listings
Every MarketplaceHookEvent carries the asset_kind. The axis_foundry.portal.paid_listing module builds (and optionally submits) TrustFabric / PAI-compatible listings:
- Default endpoint:
https://api.trustfabric.ai/v1/listings - Schema v1 with deterministic SHA-256 contract hash
- Submission uses
urllib.request(stdlib) - Opt-in configuration via environment variables:
AXIS_TRUSTFABRIC_API_URLAXIS_TRUSTFABRIC_API_KEY
Architecture
axis_foundry/
├── contracts/ # AssetKind taxonomy, Canonical*Contract hierarchy,
│ # query index, schema versioning & migration
├── normalization/ # Format normalizers + intelligent file classifier
├── rigging/ # Auto-rigging, bone mapping, rig repair & validation
├── skinning/ # Geodesic / heat-diffusion / blended weight painting
├── validation/ # Structural + export validation rules + profiles
├── exporters/ # Unity, Unreal, Godot, Roblox glTF/mesh writers
├── animation/ # Retargeting, blending, and animation utilities
├── audit/ # Provenance auditing + CI integration helpers
├── lod/ # Level-of-detail generation pipeline
├── reporting/ # Rich pipeline reports and dashboards
├── language/ # AXIS Language (GoldenSlice) bridge + pipeline audit
├── portal/ # Marketplace hooks + TrustFabric paid listing builder
├── cli.py # Rich CLI entry point
└── pipeline.py # Core orchestration & stage contracts
Testing
# Run the full test suite
python -m pytest tests/ -q
# Run a specific test module with verbose output
python -m pytest tests/test_pipeline.py -v
9,962 tests passing with zero external runtime dependencies.
Tests execute across Python 3.12, 3.13, and 3.14 in CI.
Continuous Integration
GitHub Actions runs on every push and pull request to main:
- Test — full
pytestsuite across Python 3.12–3.14 - Audit — provenance chain verification with JUnit + JSON reports and GitHub annotations
Requirements
- Python ≥ 3.11
- No runtime dependencies (pure stdlib)
pytest ≥ 7.0(development / testing only)
Contributing
We welcome contributions! Please:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-new-thing) - Ensure all tests still pass (
python -m pytest) - Run the pipeline audit (
python -m axis_foundry audit) - Open a Pull Request
For large changes, please open an issue first to discuss the design.
License
MIT License. See LICENSE for full details.
Built with ❤️ for the AXIS ecosystem and the future of open, provenance-rich 3D content.
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 Distribution
Built Distribution
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 axis_foundry-0.3.0.tar.gz.
File metadata
- Download URL: axis_foundry-0.3.0.tar.gz
- Upload date:
- Size: 2.0 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9be511e35cd8014037516fc0362a9fbba808eedffc17da22ea785a0fd2d6d35b
|
|
| MD5 |
1c48e598254f8eb6580058610b9af27f
|
|
| BLAKE2b-256 |
29c0dccf7bb171c1e5826a006014b2b6f667faba26e23ae4781a1c0968d8a29c
|
Provenance
The following attestation bundles were made for axis_foundry-0.3.0.tar.gz:
Publisher:
publish.yml on lastmanupinc-hub/AXIS-Foundry
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
axis_foundry-0.3.0.tar.gz -
Subject digest:
9be511e35cd8014037516fc0362a9fbba808eedffc17da22ea785a0fd2d6d35b - Sigstore transparency entry: 1516142999
- Sigstore integration time:
-
Permalink:
lastmanupinc-hub/AXIS-Foundry@f596b79baff1673686076be75d091967926a3d79 -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/lastmanupinc-hub
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@f596b79baff1673686076be75d091967926a3d79 -
Trigger Event:
release
-
Statement type:
File details
Details for the file axis_foundry-0.3.0-py3-none-any.whl.
File metadata
- Download URL: axis_foundry-0.3.0-py3-none-any.whl
- Upload date:
- Size: 1.3 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
198f4d65185a30a0b41dc9bd05a9ea6ef43ad9253eed62deaa14a305d089df36
|
|
| MD5 |
5739f180609f2e967378827bf5575e10
|
|
| BLAKE2b-256 |
155549fc76761caa09a94cedc7e659fc46db25b108af1bc4cd0110babd3fdf61
|
Provenance
The following attestation bundles were made for axis_foundry-0.3.0-py3-none-any.whl:
Publisher:
publish.yml on lastmanupinc-hub/AXIS-Foundry
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
axis_foundry-0.3.0-py3-none-any.whl -
Subject digest:
198f4d65185a30a0b41dc9bd05a9ea6ef43ad9253eed62deaa14a305d089df36 - Sigstore transparency entry: 1516143124
- Sigstore integration time:
-
Permalink:
lastmanupinc-hub/AXIS-Foundry@f596b79baff1673686076be75d091967926a3d79 -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/lastmanupinc-hub
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@f596b79baff1673686076be75d091967926a3d79 -
Trigger Event:
release
-
Statement type: