Skip to content

AthemIO/SwiftASWF

Repository files navigation

SwiftASWF

Swift 6.1 Ubuntu macOS Windows

Swift package providing Academy Software Foundation (ASWF) libraries for 3D applications. This package serves as the primary dependency for SwiftUSD.

Installation

Add SwiftASWF as a dependency in your Package.swift:

dependencies: [
  .package(url: "https://github.com/AthemIO/SwiftASWF.git", from: "1.8.5"),
]

Building from Source

Prerequisites

macOS:

  • Xcode 16+ with Command Line Tools
  • Swift 6.1+

Linux (Ubuntu/Debian):

sudo apt-get install -y \
  libbz2-dev libx11-dev libgl1-mesa-dev libglu1-mesa-dev \
  libxrandr-dev libxinerama-dev libxcursor-dev libxi-dev

Windows:

  • Visual Studio 2022 with C++ workload
  • Swift 6.1+ toolchain

Build Commands

# Clone the repository
git clone https://github.com/AthemIO/SwiftASWF.git
cd SwiftASWF

# Initialize submodules (required)
git submodule update --init --recursive

# Build release (recommended - debug builds are slow)
swift build -c release

# Build specific target
swift build -c release --target OpenEXR

# Run tests
swift test

# Run demo app (requires Swift Bundler)
swift bundler run -p macOS SwiftASWFDemo

Swift Targets

Core

Target Version Upstream
OpenEXR 3.2.1 AcademySoftwareFoundation/openexr
Imath 3.1.12 AcademySoftwareFoundation/Imath
Eigen 3.4.0 eigen/eigen
OneTBB 2021.12.0 oneapi-src/oneTBB

Imaging

Target Version Upstream
OpenImageIO 2.7.0 AcademySoftwareFoundation/OpenImageIO
OpenColorIO 2.4.2 AcademySoftwareFoundation/OpenColorIO
TurboJPEG 3.0.1 libjpeg-turbo/libjpeg-turbo
TIFF 4.6.0 libsdl-org/libtiff
LibPNG 1.6.40 pnggroup/libpng
WebP 1.3.2 webmproject/libwebp
Raw 0.21.1 LibRaw/LibRaw

3D & Graphics

Target Version Upstream
MaterialX 1.39.3 AcademySoftwareFoundation/MaterialX
OpenSubdiv 3.6.1 PixarAnimationStudios/OpenSubdiv
OpenVDB 12.0.0 AcademySoftwareFoundation/openvdb
Alembic 1.8.5 alembic/alembic
Ptex 2.4.2 wdas/ptex
Draco 1.5.6 google/draco

Compression

Target Version Upstream
Blosc 1.21.5 Blosc/c-blosc
ZStandard 1.5.5 facebook/zstd
LZMA2 5.4.4 tukaani-project/xz
MiniZip 4.0.1 zlib-ng/minizip-ng

Utilities

Target Version Upstream
HDF5 1.10.0 HDFGroup/hdf5
Yaml 0.8.0 jbeder/yaml-cpp
ImGui 1.89.9 ocornut/imgui

Platform Support

Platform Minimum Version Status
macOS 14+ ✓ Full support
iOS 17+ ✓ Full support
visionOS 1.0+ ✓ Full support
tvOS 17+ ✓ Full support
watchOS 10+ ✓ Full support
Linux Ubuntu 22.04+ ✓ Full support
Windows Windows 10+ ✓ Full support

Troubleshooting

Build Errors

"TBB header not found"

fatal error: 'oneapi/tbb/detail/_utils.h' file not found

Ensure you're using SwiftASWF v1.8.5 or later, which includes fixed TBB header paths.

"Module not found" on Linux

error: no such module 'OpenEXR'

Install the required system dependencies (see Prerequisites above).

Slow debug builds

Debug builds compile significantly slower due to unoptimized C++ code. Use release builds for development:

swift build -c release

Runtime Issues

OCIO config not found

The OCIOBundle target requires the OCIO environment variable to be set. Use OCIOBundler.shared to automatically configure the bundled ACES or AgX color configs.

Related Projects

  • SwiftUSD - Swift bindings for Pixar's Universal Scene Description
  • ASWF Landscape - Academy Software Foundation project ecosystem

License

Licensed under the Apache License 2.0. See LICENSE for details.

Individual bundled libraries retain their original licenses (Apache 2.0, BSD 3-Clause, MIT, etc.). See the LICENSE file for complete attribution.

About

ASWF libraries used in SwiftUSD

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •