Skip to main content

makeusd

One file for 3D printing, AR preview, and parametric source.

pip install makeusd

What it does

makeusd packs your 3D designs into USDZ files that work everywhere:

  • Preview in AR on iPhone, iPad, Vision Pro — tap to open, no app needed
  • Send to a slicer — export to 3MF for BambuStudio, PrusaSlicer, OrcaSlicer
  • Keep the source — embed your OpenSCAD or CadQuery files inside the USDZ
  • Multi-color — each part gets its own PBR material with correct colors

One command. One file. Three capabilities.

Quick start

Pack STL files into a USDZ

# Two-color case: orange body, black logo
makeusd pack body.stl "#FF8C00" logo.stl "#1A1A1A" -o case.usdz

AirDrop case.usdz to your iPhone. Tap to preview in AR. Done.

Export USDZ to 3MF for printing

makeusd export case.usdz -o case.3mf

Open case.3mf in BambuStudio. Colors are preserved. Print.

Embed parametric source

# Pack STLs + embed the OpenSCAD source that generated them
makeusd pack body.stl "#FF8C00" logo.stl "#1A1A1A" \
  --source case.scad \
  --generator openscad \
  -o case.usdz

The .scad file is stored inside the USDZ (which is a ZIP). Anyone who receives the file can extract the source and rebuild.

Inspect a USDZ

makeusd inspect case.usdz
case.usdz (101 KB)
  /Case (Xform)
    /Case/Body — Mesh, 2847 faces, material: OrangePBR (#FF8C00)
    /Case/Logo — Mesh, 1204 faces, material: BlackPBR (#1A1A1A)

  Bounds: 42.0 x 26.3 x 13.1 mm
  Up axis: Z
  Embedded source: case.scad (OpenSCAD)

Commands

Command Description
makeusd pack Combine STL files + colors into a multi-material USDZ
makeusd export Export USDZ meshes to 3MF or STL for printing
makeusd inspect Show scene graph, materials, bounds, embedded files
makeusd rebuild Extract embedded source, run generator, repack (requires OpenSCAD/CadQuery)

Why USDZ for 3D printing?

The 3D printing ecosystem is stuck on formats from the 1980s-2010s:

Format Year Colors Materials AR Preview Source Hierarchy
STL 1987 No No No No No
OBJ 1992 Via MTL Basic No No No
3MF 2015 Yes Basic No No Yes
USDZ 2018 Yes Full PBR Native iOS/visionOS Embeddable Yes

USDZ is the only format that lets you preview your print in AR on your phone, send it to a slicer, and keep the parametric source — all in one file.

OpenUSD is backed by Pixar, Apple, NVIDIA, Adobe, and Autodesk. The Alliance for OpenUSD ratified Core Specification 1.0 in December 2025.

As a Python library

from makeusd import pack, export, inspect

# Pack STLs into USDZ
pack(
    parts=[("body.stl", "#FF8C00"), ("logo.stl", "#1A1A1A")],
    output="case.usdz",
    source="case.scad",
    generator="openscad",
)

# Export to 3MF
export("case.usdz", "case.3mf")

# Inspect
info = inspect("case.usdz")
print(info.bounds_mm)  # (42.0, 26.3, 13.1)

Requirements

  • Python 3.9+
  • usd-core (Pixar's USD Python bindings)
pip install usd-core

OpenSCAD or CadQuery only needed for rebuild command.

License

MIT

  • OpenUSD — Universal Scene Description
  • AOUSD — Alliance for OpenUSD
  • openusd-mcp — MCP server for OpenUSD (also by Daslab)
  • Daslab — Where AI meets the physical world

Metadata

Release files for makeusd 0.1.0

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

Source distribution (sdist)

Source distribution for makeusd 0.1.0
File Size Uploaded Provenance Actions
makeusd-0.1.0.tar.gz 6.9 kB Without provenance Details for makeusd-0.1.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for makeusd 0.1.0
File Interpreter ABI Platform Actions
makeusd-0.1.0-py3-none-any.whl Python 3 none any Details for makeusd-0.1.0-py3-none-any.whl

Total release size: 16.1 kB

Release files / makeusd-0.1.0.tar.gz

Download URL makeusd-0.1.0.tar.gz
Size 6.9 kB
Tags Source
SHA-256 checksum
How to use checksums
f15acdc31d7f045c3115041cb3a7889979f7559c599334046797cfce486f5702
BLAKE2b-256 checksum
How to use checksums
9cde92cb9c1f4071b48878971faeda8137560b82c936255efa0ce09f6dfbfe76
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.6

Release files / makeusd-0.1.0-py3-none-any.whl

Download URL makeusd-0.1.0-py3-none-any.whl
Size 9.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c05bf70ace0564f2a5ee9a5f99bc2d1c7b6b48c7b999897de0ecb43aae264ca4
BLAKE2b-256 checksum
How to use checksums
19eea570cb83f7c376eefdceae6390c5af5d2d758e8e09d78f351a8017934ed8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.6

Security for makeusd 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files No provenance

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