{"id":1574,"url":"https://github.com/gsabran/DDDKit","last_synced_at":"2025-08-02T04:31:58.960Z","repository":{"id":56907214,"uuid":"69835308","full_name":"gsabran/DDDKit","owner":"gsabran","description":"360 video player for iOS written in swift - a subset of SceneKit that works","archived":false,"fork":false,"pushed_at":"2019-01-10T11:23:30.000Z","size":89705,"stargazers_count":135,"open_issues_count":3,"forks_count":16,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-07-02T19:09:13.453Z","etag":null,"topics":["360-video","3d-rendering","cocoapods","ios","scenekit","swift"],"latest_commit_sha":null,"homepage":"","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gsabran.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-10-03T02:28:45.000Z","updated_at":"2025-05-25T14:29:38.000Z","dependencies_parsed_at":"2022-08-21T03:50:14.635Z","dependency_job_id":null,"html_url":"https://github.com/gsabran/DDDKit","commit_stats":null,"previous_names":[],"tags_count":49,"template":false,"template_full_name":null,"purl":"pkg:github/gsabran/DDDKit","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gsabran%2FDDDKit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gsabran%2FDDDKit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gsabran%2FDDDKit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gsabran%2FDDDKit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gsabran","download_url":"https://codeload.github.com/gsabran/DDDKit/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gsabran%2FDDDKit/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":268334614,"owners_count":24233793,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-02T02:00:12.353Z","response_time":74,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["360-video","3d-rendering","cocoapods","ios","scenekit","swift"],"created_at":"2024-01-05T20:15:50.214Z","updated_at":"2025-08-02T04:31:57.083Z","avatar_url":"https://github.com/gsabran.png","language":"Swift","funding_links":[],"categories":["Media"],"sub_categories":["Video","Other free courses"],"readme":"# DDDKit\n\n[![Swift Version](https://img.shields.io/badge/Swift-3.0-orange.svg?style=flat)](https://swift.org)\n[![Version](https://img.shields.io/cocoapods/v/DDDKit.svg?style=flat)](http://cocoapods.org/pods/DDDKit)\n[![License](https://img.shields.io/badge/License-MIT-blue.svg?style=flat)](http://cocoapods.org/pods/DDDKit)\n[![Platform](https://img.shields.io/cocoapods/p/DDDKit.svg?style=flat)](http://cocoapods.org/pods/DDDKit)\n\nAn open source library to support 360 videos and pictures. It's designed as a generic 3D library that you can use for much more!\n\n## Example of use cases\n- 360 video player\n- 360 image display\n- generic 3D scene\n- photo / video filters within a 3D scene\n\n## Installation\nSee the [wiki](https://github.com/team-pie/DDDKit/wiki/Installation)! or:\n```\npod 'DDDKit'\n```\n\n\n### Quickstart\n```swift\nimport DDDKit\nimport AVFoundation\n\nclass ViewController: DDD360VideoViewController {\n\n  override func viewDidLoad() {\n    super.viewDidLoad()\n    show(from: myVideoURL)\n  }\n}\n\n```\n\n## Example\n### Image filter (easy to be creative!)\n```swift\n// B\u0026W filter:\n@IBAction func didPressBW(_ sender: Any) {\n  let program = try! DDDShaderProgram(fragment: defaultShader, shaderModifiers: [\n    .fragment: \"gl_FragColor = vec4(vec3(gl_FragColor.x + gl_FragColor.y + gl_FragColor.z) / 3.0, 1.0);\",\n  ])\n  videoNode.material.shaderProgram = program\n}\n```\n\n### 360 [cubic](https://github.com/facebook/transform360) projection\n```swift\nnode.geometry = DDDGeometry.Cube()\nlet videoTexture = DDDVideoTexture(player: player) // AVPlayer with 360 cubic video\nnode.material.set(\n  property: videoTexture,\n  for: \"SamplerY\",\n  and: \"SamplerUV\"\n)\n```\n\n### Screenshots from the demo app:\n![output](https://cloud.githubusercontent.com/assets/12446975/21338384/c63da03c-c62a-11e6-97ae-6f6f06648f27.gif)\n![output](https://cloud.githubusercontent.com/assets/12446975/21338658/fec8b854-c62c-11e6-8750-cd52c2924051.gif)\n\n## Documentation\nSee the [wiki](https://github.com/team-pie/DDDKit/wiki)!\n\n\n## Features\n- easy to use syntax and logic\n- support of image and video textures\n- direct and easy access to shader's code, shaders modifiers -\u003e easy to make image filters\n- focus on reliability on video support.\n- equirectangular and cubic 360 support\n- elements that can have any shape / position\n\n## Why not SceneKit?\n\n- SceneKit has bugs, such as memory leaks, failing video support (see [SO](http://stackoverflow.com/questions/39542205/ios10-scenekit-render-a-video-with-custom-shader))\n- no support of AVPlayerLayer / AVPlayer as video input\n- indirect video support (through SpriteKit)\n- openGL backed rendering failing on iOS 10\n- poor documentation\n- unresponsiveness from Apple on issues, and no timeline/transparency on fixes\n- no access to code to fix things yourself, since it's not open source.\n\n## Author\n\nGuillaume Sabran, sabranguillaume@gmail.com, CTO @Pie\n\n## License\n\nDDDKit is available under the MIT license. See the LICENSE file for more info.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgsabran%2FDDDKit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgsabran%2FDDDKit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgsabran%2FDDDKit/lists"}