Releases: wabiverse/SwiftUSD
v23.11.41 | Swift on Server
What's New
🎧swift on.
SwiftUSD v23.11.41
Support UsdStageCache (and UsdStageCacheContext) in Swift.
Changelog
- Fixes all threading issues which caused crashing when reading and writing binary usd files (.usd, .usdc).
- Supports building SwiftUSD with projects like Vapor for Swift on Server.
- Allow creation/retrieval of USD stages from stage cache.
- See this working example to learn how to work with
UsdStageCache
in Swift.
- See this working example to learn how to work with
- Examples application (beginning a repository of example use cases).
- Various initial work around creating an OpenUSD version upgrader/downgrader.
- Begin work for allowing proper subclassing and inheritance overrides of C++ virtual methods from Swift.
- Adds a new optional parameter to
Pixar.Bundler
, in order to allow for explicit runtime auto-installation of all USD plugins when settinginstallPlugins: true
(a requirement on iOS and visionOS devices)// usage like so: Pixar.Bundler.shared.setup(.resources, installPlugins: true)
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: 5.10
dependencies: [
.package(url: "https://github.com/wabiverse/SwiftUSD.git", from: "23.11.41")
]
The Wabi Foundation uses SwiftUSD to build the Kraken metaversal creation suite, you can always find an up to date configuration to use for your own Swift project here.
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 |
---|---|---|
Boost | boost-devel | libboost-all-dev |
Python | python3-devel | python3-dev |
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 |
v23.11.40 | Swift on Server
What's New
🎧swift on.
SwiftUSD v23.11.40
Fixes crashing when reading/writing binary .USD and .USDC file formats.
Changelog
- Fixes all threading issues which caused crashing when reading and writing binary usd files (.usd, .usdc).
- Supports building SwiftUSD with projects like Vapor for Swift on Server.
- Examples application (beginning a repository of example use cases).
- Various initial work around creating an OpenUSD version upgrader/downgrader.
- Begin work for allowing proper subclassing and inheritance overrides of C++ virtual methods from Swift.
- Adds a new optional parameter to
Pixar.Bundler
, in order to allow for explicit runtime auto-installation of all USD plugins when settinginstallPlugins: true
(a requirement on iOS and visionOS devices)// usage like so: Pixar.Bundler.shared.setup(.resources, installPlugins: true)
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: 5.10
dependencies: [
.package(url: "https://github.com/wabiverse/SwiftUSD.git", from: "23.11.40")
]
The Wabi Foundation uses SwiftUSD to build the Kraken metaversal creation suite, you can always find an up to date configuration to use for your own Swift project here.
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 |
---|---|---|
Boost | boost-devel | libboost-all-dev |
Python | python3-devel | python3-dev |
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 |
v23.11.39
What's New
🎧swift on.
SwiftUSD v23.11.39
Fixes crashing when reading/writing binary .USD and .USDC file formats.
Changelog
- Fixes all threading issues which caused crashing when reading and writing binary usd files (.usd, .usdc).
- Examples application (beginning a repository of example use cases).
- Various initial work around creating an OpenUSD version upgrader/downgrader.
- Begin work for allowing proper subclassing and inheritance overrides of C++ virtual methods from Swift.
- Adds a new optional parameter to
Pixar.Bundler
, in order to allow for explicit runtime auto-installation of all USD plugins when settinginstallPlugins: true
(a requirement on iOS and visionOS devices)// usage like so: Pixar.Bundler.shared.setup(.resources, installPlugins: true)
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: 5.10
dependencies: [
.package(url: "https://github.com/wabiverse/SwiftUSD.git", from: "23.11.39")
]
The Wabi Foundation uses SwiftUSD to build the Kraken metaversal creation suite, you can always find an up to date configuration to use for your own Swift project here.
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 |
---|---|---|
Boost | boost-devel | libboost-all-dev |
Python | python3-devel | python3-dev |
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 |
v23.11.38 | visionOS
What's New
🎧swift on.
SwiftUSD v23.11.38
Support building USD on visionOS.
strike down upon thee with great vengeance and furious anger those who attempt to poison and destroy USD with RealityKit.
Changelog
- Adds a new optional parameter to
Pixar.Bundler
, in order to allow for explicit runtime auto-installation of all USD plugins when settinginstallPlugins: true
(a requirement on iOS and visionOS devices)// usage like so: Pixar.Bundler.shared.setup(.resources, installPlugins: true)
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: 5.10
dependencies: [
.package(url: "https://github.com/wabiverse/SwiftUSD.git", from: "23.11.38")
]
The Wabi Foundation uses SwiftUSD to build the Kraken metaversal creation suite, you can always find an up to date configuration to use for your own Swift project here.
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 |
---|---|---|
Boost | boost-devel | libboost-all-dev |
Python | python3-devel | python3-dev |
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 |
v23.11.37 | visionOS
What's New
🎧swift on.
SwiftUSD v23.11.37
Support building USD on visionOS.
strike down upon thee with great vengeance and furious anger those who attempt to poison and destroy USD with RealityKit.
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: 5.10
dependencies: [
.package(url: "https://github.com/wabiverse/SwiftUSD.git", from: "23.11.37")
]
The Wabi Foundation uses SwiftUSD to build the Kraken metaversal creation suite, you can always find an up to date configuration to use for your own Swift project here.
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 |
---|---|---|
Boost | boost-devel | libboost-all-dev |
Python | python3-devel | python3-dev |
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 |
v23.11.36
What's New
🎧swift on.
SwiftUSD v23.11.36
Addition of UsdStage metadata getters and setters, and declarative vs. imperative api cleanup.
Important
Linux users: This release now links against Python 3.10 which differs with that of prior releases (pre v23.11.34) which used to link to Python 3.11, the intention is for a more out-of-the-box experience across the widest range of existing Linux users, if this has the opposite effect - please submit a new issue ticket and provide a more suitable Python version that works best for your use case, in addition to this if you are currently using Swift 5.9 - please upgrade to Swift 5.10 instead.
Changelog
- Add UsdStage metadata getters and setters.
/* getters (inout). */ var value: Double = 0.0 Usd.Stage.getMetadata("theArtOfArt", &value) /* setters. */ let gloryOfExpression: Bool = Usd.Stage.setMetadata("comment", Tf.Token("Step 1: Empower graphics developers")) /* etc. */ if gloryOfExpression == true { return Usd.Stage.hasAuthoredMetadata("simplicity") }
- Fix conflicts with the experimental declarative api, so it is not easily confused with the standard USD API.
-
For declarative API usage please now use the uppercased prefix:
UsdStage
⤳USDStage
UsdPrim
⤳USDPrim
/* now requires an uppercased (USD) prefix. */ USDStage("HelloPixarUSD", ext: .usda) { USDPrim("Hello", type: .xform) { USDPrim("World", type: .sphere) } } .set(doc: "Stay Swifty.") .save()
-
For all users using the standard USD API (the typical case), continue to use the standard API as intended, no changes are required:
Usd.Stage
Usd.Prim
/* no changes from before, keep doing you. */ let stage = Usd.Stage.createNew("HelloPixarUSD.usda") UsdGeom.Xform.define(stage, path: "/Hello") UsdGeom.Sphere.define(stage, path: "/Hello/World") stage.getPseudoRoot().set(doc: "Hello World Example (Swift)!") stage.save()
-
Note
We now have CI workflows in order for Linux Ubuntu (x86/64) and macOS (arm64),
you can always check their build status from the root of this project repo's README.
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: 5.10
dependencies: [
.package(url: "https://github.com/wabiverse/SwiftUSD.git", from: "23.11.36")
]
The Wabi Foundation uses SwiftUSD to build the Kraken metaversal creation suite, you can always find an up to date configuration to use for your own Swift project here.
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 |
---|---|---|
Boost | boost-devel | libboost-all-dev |
Python | python3-devel | python3-dev |
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 |
v23.11.35 | OpenSubdiv
What's New
🎧swift on.
SwiftUSD v23.11.35
Addition of Hio, Glf, GeomUtil, and OpenSubdiv Shaders.
Important
Linux users: This release now links against Python 3.10 which differs with that of prior releases (pre v23.11.34) which used to link to Python 3.11, the intention is for a more out-of-the-box experience across the widest range of existing Linux users, if this has the opposite effect - please submit a new issue ticket and provide a more suitable Python version that works best for your use case, in addition to this if you are currently using Swift 5.9 - please upgrade to Swift 5.10 instead.
Changelog
- Linux now links against Python 3.10 which differs with that of prior releases (pre v23.11.34) which used to link to Python 3.11.
- Updated to the Swift 5.10 toolchain, in preparation for some changes to be added into Swift 5.10, where it will likely remain as the version minimum for the long haul.
- Fix missing plugins on Linux when running the Bundler auto installer, you should no longer see any coding errors related to missing USD plugins upon this corresponding call in your own application:
Pixar.Bundler.shared.setup(.resources)
- Addition of the following USD (
pxr.Imaging
) libraries:- Hio
- Glf
- GeomUtil
Note
We now have CI workflows in order for Linux Ubuntu (x86/64) and macOS (arm64),
you can always check their build status from the root of this project repo's README.
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: 5.10
dependencies: [
.package(url: "https://github.com/wabiverse/SwiftUSD.git", from: "23.11.35")
]
The Wabi Foundation uses SwiftUSD to build the Kraken metaversal creation suite, you can always find an up to date configuration to use for your own Swift project here.
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 |
---|---|---|
Boost | boost-devel | libboost-all-dev |
Python | python3-devel | python3-dev |
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 |
v23.11.34
What's New
🎧 swift on.
SwiftUSD v23.11.34
Some minor Linux bug & compatability fixes.
Important
Linux users: This release now links against Python 3.10 which differs with that of prior releases which used to link to Python 3.11, the intention is for a more out-of-the-box experience across the widest range of existing Linux users, if this has the opposite effect - please submit a new issue ticket and provide a more suitable Python version that works best for your use case, in addition to this if you are currently using Swift 5.9 - please upgrade to Swift 5.10 instead.
Changelog
- Linux now links against Python 3.10 which differs with that of prior releases which used to link to Python 3.11.
- Updated to the Swift 5.10 toolchain, in preparation for some changes to be added into Swift 5.10, where it will likely remain as the version minimum for the long haul.
- Fix missing plugins on Linux when running the Bundler auto installer, you should no longer see any coding errors related to missing USD plugins upon this corresponding call in your own application:
Pixar.Bundler.shared.setup(.resources)
- Addition of two Gf types
Gf.Matrix4d
andGf.Vector4d
. - Addition of a UsdGeom type,
UsdGeom.Curves
.
Note
We now have CI workflows in order for Linux Ubuntu (x86/64) and macOS (arm64),
you can always check their build status from the root of this project repo's README.
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: 5.10
dependencies: [
.package(url: "https://github.com/wabiverse/SwiftUSD.git", from: "23.11.34")
]
The Wabi Foundation uses SwiftUSD to build the Kraken metaversal creation suite, you can always find an up to date configuration to use for your own Swift project here.
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 |
---|---|---|
Boost | boost-devel | libboost-all-dev |
Python | python3-devel | python3-dev |
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 |
v23.11.33 | CentOS
What's New
🎧 swift on.
SwiftUSD v23.11.33
Supports Linux (CentOS & Ubuntu) on both (x86/64 & aarch64) 🎉.
Note
We now have CI workflows in order for Linux Ubuntu (x86/64) and macOS (arm64),
you can always check their build status from the root of this project repo's README.
Changelog
- Adjusts
pxr
namespace andTf_MakePyConstructor
not to wrap the import from within
the opened scopes, but to instead open the namespaced scopes upon each individual
independent iteration onBOOST_PP_ITERATE
. - Without this fix we recieve the following:
error: redundant #include of module 'Tf' appears within namespace 'Pixar::Tf_MakePyConstructor': #include BOOST_PP_FILENAME_1 ^ Tf/makePyConstructor.h:108:1: note: namespace 'Pixar::Tf_MakePyConstructor' begins here: namespace Tf_MakePyConstructor {
- We now also support building SwiftUSD without the Xcode toolchain on apple platforms, using the
"vanilla swift toolchain", either toolchain is up to the user. - Fixed some unkown references to
TF_VERIFY
in HgiInterop/HgiGL by including<Tf/diagnostic.h>
in the offending files. - Fixed import guard of PyBundle to check PyBundle for existence instead of Python's existence.
-
👾MetaverseKit v1.6.8 🌍
- We now conditionally apply sse2neon based on the chipset arch (ex. arm64, x86/64) you're building on.
- OpenColorIO needed to have target feature attributes added across all of its AVX and AVX2 functions.
- OCIOBundle was attempting to use setenv() (which overrides the OCIO env var with our provided configs),
which apparently doesn't exist on Linux or uses some other function, opted to remove it for Linux since its assumed
users on that platform likely already have OCIO configured to their preferences. - TBB needed to have target feature attributes added for a single function
prolonged_pause()
which uses WAITPKG. - HDF5 had a lowercased hdf5.h which Swift didn't see as an umbrella header on Linux because the target is uppercased, so Swift
was attempting to (rather horribly incorrectly) generate one, renamed the file to HDF5.h and all was happy.
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:
dependencies: [
.package(url: "https://github.com/wabiverse/SwiftUSD.git", from: "23.11.33")
]
The Wabi Foundation uses SwiftUSD to build the Kraken metaversal creation suite, you can always find an up to date configuration to use for your own Swift project here.
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 |
---|---|---|
Boost | boost-devel | libboost-all-dev |
Python | python3-devel | python3-dev |
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 |
v23.11.32 | Linux (x86/64)
What's New
🎧 swift on.
SwiftUSD v23.11.32
Linux (x86/64) Support 🎉
Note
We now have CI workflows in order for Linux Ubuntu (x86/64) and macOS (arm64),
you can always check their build status from the root of this project repo's README.
Changelog
- Adjusts
pxr
namespace andTf_MakePyConstructor
not to wrap the import from within
the opened scopes, but to instead open the namespaced scopes upon each individual
independent iteration onBOOST_PP_ITERATE
. - Without this fix we recieve the following:
error: redundant #include of module 'Tf' appears within namespace 'Pixar::Tf_MakePyConstructor': #include BOOST_PP_FILENAME_1 ^ Tf/makePyConstructor.h:108:1: note: namespace 'Pixar::Tf_MakePyConstructor' begins here: namespace Tf_MakePyConstructor {
- We now also support building SwiftUSD without the Xcode toolchain on apple platforms, using the
"vanilla swift toolchain", either toolchain is up to the user. - Fixed some unkown references to
TF_VERIFY
in HgiInterop/HgiGL by including<Tf/diagnostic.h>
in the offending files. - Fixed import guard of PyBundle to check PyBundle for existence instead of Python's existence.
-
👾MetaverseKit v1.6.7 🌍
- We now conditionally apply sse2neon based on the chipset arch (ex. arm64, x86/64) you're building on.
- OpenColorIO needed to have target feature attributes added across all of its AVX and AVX2 functions.
- OCIOBundle was attempting to use setenv() (which overrides the OCIO env var with our provided configs),
which apparently doesn't exist on Linux or uses some other function, opted to remove it for Linux since its assumed
users on that platform likely already have OCIO configured to their preferences. - TBB needed to have target feature attributes added for a single function
prolonged_pause()
which uses WAITPKG. - HDF5 had a lowercased hdf5.h which Swift didn't see as an umbrella header on Linux because the target is uppercased, so Swift
was attempting to (rather horribly incorrectly) generate one, renamed the file to HDF5.h and all was happy.
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:
dependencies: [
.package(url: "https://github.com/wabiverse/SwiftUSD.git", from: "23.11.32")
]
The Wabi Foundation uses SwiftUSD to build the Kraken metaversal creation suite, you can always find an up to date configuration to use for your own Swift project here.