MetaverseKit

1.7.2

Monolithic dependency encapsulating the ASWF landscape to swiftly architect the metaverse.
wabiverse/MetaverseKit

What's New

v1.7.2 | OpenSubdiv

2024-04-12T18:20:34Z

What's New

🎧 swift on.
  • Add OpenSubdiv GPU Shaders.
  • Fix Linux cross-platform compatibility.
    • Adjusted package configuration to link against python 3.10 instead of prior releases which used to link against python 3.11, the intention is to provide simplicity to existing Linux users, if some other version is preferred, please file an issue to have it changed.
    • Targeting x86/64 now works and no longer causes build failures. 🎉🎉🎉
    • Targeting aarch64 should now also work, in addition to x86/64 on CentOS.

Changelog

  • 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

Add MetaverseKit as a package dependency to your own Swift project's Package.swift file:

// swift-tools-version: 5.10

dependencies: [
  .package(url: "https://github.com/wabiverse/MetaverseKit", from: "1.7.2")
]

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

MetaverseKit

One small step for swift, one giant leap for reality!

Embark on the Metaversal Frontier

Swiftly integrate the ASWF Landscape into mighty apps, plugins, and games with seamless simplicity. MetaverseKit is a monolithic dependency target of the SwiftUSD package, and will continue to evolve with additional plugins, tools, and developer resources overtime. Once industry leaders adopt official support of these libraries as Swift Packages, the MetaverseKit package will begin to pull in these official git remotes through versioned releases, and we will provide monolithic releases in accordance with the VFX Reference Platform.

Note

The Wabi Foundation remains steadfast in its collaboration with industry leaders, diligently working to secure official support for these foundational libraries through the implementation of Swift Packages. This strategic initiative opens the gateway for developers, offering unparalleled opportunity to unleash the full power of industry-grade software, and unlocking its utmost potential.


📰 News

Planning & initial development on CosmoGraph, seamlessly create native cross-platform applications and games for ObjCRT, GLibRT, FreeRT, WinRT, and various graphics frameworks using a unified Swift and C++ API.


Wabi Targets

Swift Target Description
MetaPy Metaversal Python, all the python modules from the below libraries, combined into a single swift target.
MXGraphEditor MaterialX Graph Editor, visualizing, creating, and editing MaterialX graphs on the flick of a swift run MXGraphEditor command.
MXResources MaterialX Resources, adding this target to your swift app or plugin will automatically install the MaterialX Standard Library and MaterialX Resources into the /Resources directory that is embedded within your swift application bundle or plugin module.
Swift Plugins Description Usage
SwiftBundler Create cross-platform Swift apps, (Xcode optional!). Turn Swift Packages into fully bundled Swift apps from the comfort of the command line - including macOS, iOS, and even visionOS. swift package plugin bundler run -p visionOS

Industry Swift Targets

Important

As of January 10th, 2024 Linux is now supported, in addition to Apple platforms, you can grab the latest release here! 🎉 With Microsoft Windows support coming sometime in the near future.

Swift Target Version
OneTBB (in progress) 2021.10.0
Python 3.11.6
PyBind11 2.11.1
Boost 1.81.2
OpenSubdiv 3.6.0
OpenImageIO 2.5.4.0
OpenColorIO 2.3.0
OSL 1.12.14.0 (TODO)
Ptex 2.4.2
ImGui 1.89.9
Embree ??? (TODO)
Alembic 1.8.5
OpenEXR 3.2.1
IMath 3.1.9
MaterialX 1.38.8
OpenVDB 10.1.0
HDF5 1.10.0
Blosc 1.21.5
Eigen 3.4.0
Draco 1.5.6
TurboJPEG 3.0.1
TIFF 4.6.0
LibPNG 1.6.40
WebP 1.3.2
RAW 0.21.1
ZStandard 1.5.5
LZMA2 5.4.4
MiniZip 4.0.1
Yaml 0.8.0

Platform Independent

Swift Target Version
Apple (Metal-cpp) macOS 14.2 / iOS 17.2 / visionOS 1.0

Usage

To use MetaverseKit with Swift, add MetaverseKit as a Package dependency in your Package.swift file, example usage.
dependencies: [
  .package(url: "https://github.com/wabiverse/MetaverseKit.git", from: "1.4.2"),
]

Note

Swift is an open source programming language that is fully supported across Linux and Swift on Server, the entire Apple family of devices: macOS, visionOS, iOS, tvOS, watchOS, as well as support for Microsoft Windows. To learn more about Swift, please visit swift.org.


Description

  • Swift Tools 5.10.0
View More Packages from this Author

Dependencies

Last updated: Tue Apr 30 2024 16:52:05 GMT-0900 (Hawaii-Aleutian Daylight Time)