CocoaPods trunk is moving to be read-only. Read more on the blog, there are 19 months to go.

DDDKit 1.4.0

DDDKit 1.4.0

TestsTested
LangLanguage SwiftSwift
License MIT
ReleasedLast Release Apr 2018
SPMSupports SPM

Maintained by Guillaume Sabran.



DDDKit 1.4.0

  • By
  • Guillaume Sabran

DDDKit

Swift Version Version License Platform

An open source library to support 360 videos and pictures. It's designed as a generic 3D library that you can use for much more!

Example of use cases

  • 360 video player
  • 360 image display
  • generic 3D scene
  • photo / video filters within a 3D scene

Installation

See the wiki! or:

pod 'DDDKit'

Quickstart

import DDDKit
import AVFoundation

class ViewController: DDD360VideoViewController {

  override func viewDidLoad() {
    super.viewDidLoad()
    show(from: myVideoURL)
  }
}

Example

Image filter (easy to be creative!)

// B&W filter:
@IBAction func didPressBW(_ sender: Any) {
  let program = try! DDDShaderProgram(fragment: defaultShader, shaderModifiers: [
    .fragment: "gl_FragColor = vec4(vec3(gl_FragColor.x + gl_FragColor.y + gl_FragColor.z) / 3.0, 1.0);",
  ])
  videoNode.material.shaderProgram = program
}

360 cubic projection

node.geometry = DDDGeometry.Cube()
let videoTexture = DDDVideoTexture(player: player) // AVPlayer with 360 cubic video
node.material.set(
  property: videoTexture,
  for: "SamplerY",
  and: "SamplerUV"
)

Screenshots from the demo app:

output output

Documentation

See the wiki!

Features

  • easy to use syntax and logic
  • support of image and video textures
  • direct and easy access to shader's code, shaders modifiers -> easy to make image filters
  • focus on reliability on video support.
  • equirectangular and cubic 360 support
  • elements that can have any shape / position

Why not SceneKit?

  • SceneKit has bugs, such as memory leaks, failing video support (see SO)
  • no support of AVPlayerLayer / AVPlayer as video input
  • indirect video support (through SpriteKit)
  • openGL backed rendering failing on iOS 10
  • poor documentation
  • unresponsiveness from Apple on issues, and no timeline/transparency on fixes
  • no access to code to fix things yourself, since it's not open source.

Author

Guillaume Sabran, [email protected], CTO @Pie

License

DDDKit is available under the MIT license. See the LICENSE file for more info.