Skip to content

sakrist/glTFSceneKit

Repository files navigation

GLTF extension for SceneKit

General

  • Compilable for macOS and iOS
  • Objective-C support
  • swift package
  • GLTF swift extension with wrapper for JSONDecoder
  • Tests
  • Convert SceneKit to GLTF

Encodings

  • JSON
  • Binary (.glb)

Primitive Types

  • Points
  • Lines
  • Line Loop
  • Line Strip
  • Triangles
  • Triangle Strip
  • Triangle Fan

Animation

  • Transform animations
  • Linear interpolation
  • Morph animation
  • Skin and joint animation

Extensions

  • KHR_draco_mesh_compression - Draco (supported draft version, need rework. temporary disabled)
  • 3D4M_compressed_texture - Draft of unofficial extension.

Example:

import glTFSceneKit

let directory = "..." // path to folder where is gltf file located
let decoder = JSONDecoder()
let glTF = try? decoder.decode(GLTF.self, from: jsonData)
if let converter = GLTFConverter(glTF: glTF) {
    let scene = converter.convert(to: view.scene!, geometryCompletionHandler: { 
    // Geometries are loaded and textures are may still in loading process.
    }) { (error) in
       // Fully converted to SceneKit
       // TODO: handle error.
    }
}