Latest 1.4.0
Homepage https://github.com/gsabran/DDDKit
License MIT
Platforms ios 8.0
Dependencies GLMatrix
Authors

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.

Latest podspec

{
    "name": "DDDKit",
    "version": "1.4.0",
    "summary": "DDDKit is an open source version of SCNKit",
    "description": "Scene Kit is very buggy, and since it's not open source and Apple is very secretive about what bugs it's fixing, we need an open source implementation.nCurrently, DDDKit focuses on implementing video related features, that are extremely buggy in SceneKit",
    "homepage": "https://github.com/gsabran/DDDKit",
    "license": {
        "type": "MIT",
        "file": "LICENSE"
    },
    "authors": {
        "Guillaume Sabran": "[email protected]"
    },
    "source": {
        "git": "https://github.com/gsabran/DDDKit.git",
        "tag": "1.4.0"
    },
    "platforms": {
        "ios": "8.0"
    },
    "source_files": "DDDKit/Classes/**/*",
    "dependencies": {
        "GLMatrix": [
            "0.1.5"
        ]
    }
}

Pin It on Pinterest

Share This