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
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 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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f15acdc31d7f045c3115041cb3a7889979f7559c599334046797cfce486f5702
|
|
| MD5 |
94a725d9f5e4133fd115de3b04e7b09c
|
|
| BLAKE2b-256 |
9cde92cb9c1f4071b48878971faeda8137560b82c936255efa0ce09f6dfbfe76
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c05bf70ace0564f2a5ee9a5f99bc2d1c7b6b48c7b999897de0ecb43aae264ca4
|
|
| MD5 |
6d8ec14629f55d9fba53d8eea1234a10
|
|
| BLAKE2b-256 |
19eea570cb83f7c376eefdceae6390c5af5d2d758e8e09d78f351a8017934ed8
|