SwiftUSD v24.8.21 | 🎧swift on.
Experimental Android Support, ARC-Managed Lifetimes, UsdView, & Safer Swift OpenUSD API.
Changelog
Commits
Changes
- Experimental Android support - build OpenUSD apps for Android:
SWIFTUSD_ANDROID_SUPPORT_ENABLED=1 swift bundler run --simulator "Pixel_10_Pro" -c release UsdView
- Adopts parts of the apple/SwiftUsd overlay for a safer Swift OpenUSD API - client code should now hold
UsdStagedirectly instead ofUsdStageRefPtr; dereferencing and lifetime management are handled internally. - Extends the apple/SwiftUsd overlay to fix Swift/C++ interop bugs around
std::string↔Stringconversions and ambiguousXformableoperation overloads that previously caused Swift compiler crashes on Linux.
Breaking
UsdStage.createNew(...),UsdStage.open(...), andUsdStage.createInMemory()now returnUsdStagedirectly with proper ARC-managed lifetimes, client code should now holdUsdStagedirectly instead ofUsdStageRefPtr; dereferencing and lifetime management are handled internally.HgiGL.createHgi(),HgiMetal.createHgi(), andUsdImagingGL.Engine.createEngine(...)now return the types directly with proper ARC-managed lifetimes, instead of ashared_ptr-backed...Ptr/...SharedPtrwrapper. TheHgiGLPtr,HgiMetalPtr, andUsdImagingGLEngineSharedPtr/EngineSharedPtrtypealiases are removed.
Fixed
UsdStageandSdfLayerinstances held by Swift now have correct reference-counted lifetimes. Their retain/release hooks were previously no-op stubs, so Swift's ARC calls didn't actually affect the underlying object's refcount; they now go through apple/SwiftUsd'sTf_RetainReleaseHelperand properly participate inTfRefBaserefcounting.HgiGL,HgiMetal, andUsdImagingGLEngineare now reference-counted Swift types (they now go through our ownTf_SharedPtrRetainReleaseHelperand properly participate in refcounting) - Swift automatically releases them when no longer referenced, so manual lifetime workarounds are no longer needed.
UsdView Developments
|
![]() |
untitled60-2.mov
Thank you
- @meshula
- @dgovil
- @brechtvl
- @stackotter
- @gracien-app
- @scott-wilson
- @obvgab
- @felfoldy
- Pixar's OpenUSD contributors
Usage
To use this release of Pixar's USD in your swift project, add the following to the dependencies section in your Package.swift file:
// swift-tools-version: 6.0
dependencies: [
.package(url: "https://github.com/wabiverse/SwiftUSD.git", from: "24.8.21")
]Linux
For Linux, these are the only dependencies required, as MetaverseKit provides everything else.
Tip
If you are on a distro like Ubuntu there is a good chance you already have most of these installed.
| Dependency | CentOS | Ubuntu |
|---|---|---|
| BZ2 | bzip2-devel | libbz2-dev |
| ZLib | zlib-devel | zlib1g-dev |
| FreeGLUT | freeglut-devel | freeglut3-dev |
| DEFLATE | libdeflate-devel | libdeflate-dev |
| Expat | libexpat-devel | libexpat1-dev |
| Xcursor | libXcursor-devel | libxcursor-dev |
| Xt | libXt-devel | libxt-dev |
| Xi | libXi-devel | libxi-dev |
| Xinerama | libXinerama-devel | libxinerama-dev |
| Xrandr | libXrandr-devel | libxrandr-dev |



