GithubHelp home page GithubHelp logo

wabiverse / metaversekit Goto Github PK

View Code? Open in Web Editor NEW
17.0 5.0 0.0 170.86 MB

Monolithic dependency encapsulating the ASWF landscape to swiftly architect the metaverse.

Home Page: https://wabi.foundation

License: Apache License 2.0

Swift 0.06% C++ 46.55% C 43.45% JavaScript 0.13% Shell 0.01% CMake 0.13% Python 0.17% NASL 0.05% GLSL 0.20% CSS 0.05% Objective-C 0.28% HTML 0.03% Assembly 3.50% Pawn 0.44% Makefile 0.02% POV-Ray SDL 4.36% HLSL 0.10% Metal 0.14% Cuda 0.01% Objective-C++ 0.32%
animation apple augmented-reality collaboration computer-graphics film game-engine graphics linux macos

metaversekit's Introduction

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.


metaversekit's People

Contributors

furby-tm avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

metaversekit's Issues

Use official ASWF source, reduce SWG modifications

Libraries across the ASWF should not have to be modified, or modified very minimally - figure out a way (perhaps through the usage of git submodules) or Swift package plugins, so that our (or the Swift Working Group) changes are very minimal, we want to ensure we are shipping as close to the official libraries as we can.

In the end it is our preference that the code we maintain is just the Swift code and/or Swift extensions of these C and C++ ASWF projects.

SWG proposal pending.

Ptex | Swift import

Provide a working Swift importable Ptex Swift target using Swift 5.9 cxx interop.

Linux (x86/64) Support

As far as I'm aware v1.5.8 should support Linux running on x86/64 architecture.


Noticed that SwiftUSD did not, or at least has not yet run into an issue with it's build here, currently it's failing for unrelated issues due to SPI not yet having these dependencies installed on it's Linux instance:

sudo apt install libbz2-dev
sudo apt install zlib1g-dev
sudo apt install python3-dev
sudo apt install libboost-all-dev

But the error status seen here seems strange to me, likely because if you target building of the entire package itself it'll attempt to blindly build all targets, instead of looking at the dependency graph (and sse2neon is not supposed to be built for x86/64) but there doesn't seem to be a way to tell Swift a certain target should only be built under such constraints, I might just have to resort to preprocessing out the existence of the target entirely outside this scope:

#if arch(arm64)
#endif

Note

While this is a tiny single header "library" and I could easily preprocess out the whole header itself, my question here pertains to if there's any way to do this from the Package.swift configuration level or if this is a limitation of SPM itself that should likely be addressed at some point.

Curious if anybody can confirm for me? I don't have any access to this arch on my end.

Thanks!

Imath | Swift import

Provide a working Swift importable Imath Swift target using Swift 5.9 cxx interop.

Draco | Swift import

Provide a working Swift importable Draco Swift target using Swift 5.9 cxx interop.

OneTBB | Swift import

Provide a working Swift importable OneTBB Swift target using Swift 5.9 cxx interop.

ImGui | Swift import

Provide a working Swift importable ImGui Swift target using Swift 5.9 cxx interop.

Python | Swift import

Provide a working Swift importable Python Swift target using Swift 5.9 cxx interop.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.