This is a thin Swift wrapper around the popular and excellent Open Asset Import Library library.
It provides a swifty and typesafe API.
Open Asset Import Library (short name: Assimp) is a portable Open Source library to import various well-known 3D model formats in a uniform manner. The most recent version also knows how to export 3d files and is therefore suitable as a general-purpose 3D model converter. Loads 40+ 3D file formats into one unified and clean data structure.
These instructions will get your copy of the project up and running on your local machine and provide a code example.
Package.swift file with the following lines or use it to create a new project.
For package manifests using the Swift 5.3+ toolchain use:
// swift-tools-version:5.3 import PackageDescription let package = Package( name: "YourPackageName", dependencies: [ .package(name: "Assimp", url: "https://github.com/ctreffs/SwiftAssimp.git", from: "2.1.0") ], targets: [ .target( name: "YourTargetName", dependencies: ["Assimp"]) ] )
Since it's a system library wrapper you need to install the assimp library (>=5.0.0) either via
brew install assimp
apt-get install libassimp-dev
depending on you platform.
import Assimp let scene: AiScene = try AiScene(file: <path/to/model/file.obj>, flags: [.removeRedundantMaterials, .genSmoothNormals])) // get meshes let meshes: [AiMesh] = scene.meshes // get materials let matrials: [AiMaterial] = scene.materials // get the root node of the scene graph let rootNode: [AiNode] = scene.rootNode
See the unit tests for more examples.
This project is in an early stage and needs a lot of love. If you are interested in contributing, please feel free to do so!
Things that need to be done are, among others:
See also the list of contributors who participated in this project.
This project is licensed under the 3-Clause BSD License - see the LICENSE file for details.
Since Swift Assimp is merely a wrapper around assimp it obviously depends on it.
Support them if you can!
A library to import and export various 3d-model-formats including scene-post-processing to generate missing render data.
|Last commit: Yesterday|
Full Changelog: https://github.com/ctreffs/SwiftAssimp/compare/2.1.0...2.2.0