Skip to content

Releases: wabiverse/SwiftUSD

v23.11.41 | Swift on Server

10 Jul 12:50
dd79be9
Compare
Choose a tag to compare

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.
  • 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 setting installPlugins: 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

09 Jul 10:45
4bff55b
Compare
Choose a tag to compare

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 setting installPlugins: 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

09 Jul 05:14
1eaa45d
Compare
Choose a tag to compare

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 setting installPlugins: 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

12 Jun 18:39
8693254
Compare
Choose a tag to compare

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 setting installPlugins: 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

12 Jun 15:20
584db0c
Compare
Choose a tag to compare

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

05 May 22:31
6428fb0
Compare
Choose a tag to compare

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:

      • UsdStageUSDStage
      • UsdPrimUSDPrim
      /* 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

12 Apr 18:29
e36e2d0
Compare
Choose a tag to compare

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

06 Apr 11:12
1bae4ae
Compare
Choose a tag to compare

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 and Gf.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

04 Apr 03:01
ded75ea
Compare
Choose a tag to compare

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 and Tf_MakePyConstructor not to wrap the import from within
    the opened scopes, but to instead open the namespaced scopes upon each individual
    independent iteration on BOOST_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)

15 Mar 00:18
a584395
Compare
Choose a tag to compare

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 and Tf_MakePyConstructor not to wrap the import from within
    the opened scopes, but to instead open the namespaced scopes upon each individual
    independent iteration on BOOST_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.