Skip to main content

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

Project description

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

Links

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

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

makeusd-0.1.0.tar.gz (6.9 kB view details)

Uploaded Source

Built Distribution

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

makeusd-0.1.0-py3-none-any.whl (9.1 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for makeusd-0.1.0.tar.gz
Algorithm Hash digest
SHA256 f15acdc31d7f045c3115041cb3a7889979f7559c599334046797cfce486f5702
MD5 94a725d9f5e4133fd115de3b04e7b09c
BLAKE2b-256 9cde92cb9c1f4071b48878971faeda8137560b82c936255efa0ce09f6dfbfe76

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for makeusd-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c05bf70ace0564f2a5ee9a5f99bc2d1c7b6b48c7b999897de0ecb43aae264ca4
MD5 6d8ec14629f55d9fba53d8eea1234a10
BLAKE2b-256 19eea570cb83f7c376eefdceae6390c5af5d2d758e8e09d78f351a8017934ed8

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