All Projects → gsabran → Dddkit

gsabran / Dddkit

Licence: mit
360 video player for iOS written in swift - a subset of SceneKit that works

Programming Languages

swift
15916 projects

Projects that are alternatives of or similar to Dddkit

Swifty360player
iOS 360-degree video player streaming from an AVPlayer.
Stars: ✭ 118 (+0%)
Mutual labels:  cocoapods, scenekit
Scenekit Bezier Animations
Create animations over Bezier curves of any number of points
Stars: ✭ 35 (-70.34%)
Mutual labels:  cocoapods, scenekit
Efautoscrolllabel
A label which can scroll when text length beyond the width of label.
Stars: ✭ 111 (-5.93%)
Mutual labels:  cocoapods
Swiftloader
A simple and beautiful activity indicator written in Swift
Stars: ✭ 116 (-1.69%)
Mutual labels:  cocoapods
Uilabel Copyable
A simple category to add copy functionality to UILabel.
Stars: ✭ 113 (-4.24%)
Mutual labels:  cocoapods
Randomkit
Random data generation in Swift
Stars: ✭ 1,458 (+1135.59%)
Mutual labels:  cocoapods
Lightweightobservable
📬 A lightweight implementation of an observable sequence that you can subscribe to.
Stars: ✭ 114 (-3.39%)
Mutual labels:  cocoapods
Tkkeyboardcontrol
TKKeyboardControl adds keyboard awareness and scrolling dismissal (like iMessages app) to any view with only 1 line of code for Swift.
Stars: ✭ 110 (-6.78%)
Mutual labels:  cocoapods
Towebviewcontroller
A view controller class for iOS that allows users to view web pages directly within an app.
Stars: ✭ 1,500 (+1171.19%)
Mutual labels:  cocoapods
Bottomsheet
Component which presents a dismissible view from the bottom of the screen.
Stars: ✭ 113 (-4.24%)
Mutual labels:  cocoapods
Rhythmbox
A Rhythm Box System for your iOS app written in Swift. 🎵
Stars: ✭ 116 (-1.69%)
Mutual labels:  cocoapods
Artetris
Augmented Reality Tetris made with ARKit and SceneKit
Stars: ✭ 1,483 (+1156.78%)
Mutual labels:  scenekit
Device
Light weight tool for detecting the current device and screen size written in swift.
Stars: ✭ 1,503 (+1173.73%)
Mutual labels:  cocoapods
Sharaku
(Not maintained)Image filtering UI library like Instagram.
Stars: ✭ 1,497 (+1168.64%)
Mutual labels:  cocoapods
Ios Rubik Solver
An iOS app that detects a 3x3 Rubik's cube, recognizes the color of all cubies, solves it and provides a 3D visualisation of the solving process.
Stars: ✭ 111 (-5.93%)
Mutual labels:  scenekit
Emspinnerbutton
UIButton sublcass with loading animation
Stars: ✭ 117 (-0.85%)
Mutual labels:  cocoapods
Szmentionsswift
Library to help handle mentions
Stars: ✭ 109 (-7.63%)
Mutual labels:  cocoapods
Fontawesome.swift
Use FontAwesome in your Swift projects
Stars: ✭ 1,513 (+1182.2%)
Mutual labels:  cocoapods
Microfeatures Example
📦📱 Example of iOS app built using the uFeatures architecture
Stars: ✭ 112 (-5.08%)
Mutual labels:  cocoapods
Arplayer
Playback videos using ARKit and AVFoundation.
Stars: ✭ 117 (-0.85%)
Mutual labels:  scenekit

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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].