{"id":23712263,"url":"https://github.com/powermobileweb/artetris---scenekit","last_synced_at":"2025-06-13T22:33:38.325Z","repository":{"id":269077687,"uuid":"174431979","full_name":"powermobileweb/ARTetris---SceneKit","owner":"powermobileweb","description":"Augmented Reality Tetris made with ARKit and SceneKit","archived":false,"fork":false,"pushed_at":"2019-03-07T22:50:58.000Z","size":16,"stargazers_count":5,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-04T19:22:26.839Z","etag":null,"topics":["arkit","augmented-reality","coreml","coreml-framework","coreml-models","ios","scenekit","swift","tetris-game","tetromino"],"latest_commit_sha":null,"homepage":null,"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/powermobileweb.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-03-07T22:47:30.000Z","updated_at":"2023-01-26T07:35:28.000Z","dependencies_parsed_at":"2024-12-20T18:54:21.395Z","dependency_job_id":"b14daf3d-fae3-4033-a587-62b84e75715b","html_url":"https://github.com/powermobileweb/ARTetris---SceneKit","commit_stats":null,"previous_names":["powermobileweb/artetris---scenekit"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/powermobileweb/ARTetris---SceneKit","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/powermobileweb%2FARTetris---SceneKit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/powermobileweb%2FARTetris---SceneKit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/powermobileweb%2FARTetris---SceneKit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/powermobileweb%2FARTetris---SceneKit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/powermobileweb","download_url":"https://codeload.github.com/powermobileweb/ARTetris---SceneKit/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/powermobileweb%2FARTetris---SceneKit/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259729675,"owners_count":22902658,"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","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":["arkit","augmented-reality","coreml","coreml-framework","coreml-models","ios","scenekit","swift","tetris-game","tetromino"],"created_at":"2024-12-30T19:58:09.591Z","updated_at":"2025-06-13T22:33:38.277Z","avatar_url":"https://github.com/powermobileweb.png","language":"Swift","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ARTetris\nAugmented Reality Tetris made with ARKit and SceneKit.\n\n# Demo\nClick on the image below and check out the app demo:\n\n\u003ca href=\"https://youtu.be/DzYkvbS1nDE\" target=\"_blank\"\u003e\u003cimg src=\"http://i.imgur.com/BXi949y.jpg\" width=\"600\"\u003e\u003c/a\u003e\n\n# FAQ\n\n\u003e App crashes when running on iPhone 6, iPhone 5s, iPad Air, etc.\n\nARKit only works on devices with A9 chip or greater. So you need at least iPhone 6S or iPad with such a chip.\n\n\u003e App runs, but nothing happens.\n\nTo play the game you need to find some horizontal surface: floor, table top, etc. Point you camera to a plane and move your device a little bit in different directions to force ARKit to find bounds of the plane. Once it will be found, you will see Tetris well on this plane.\n\n# Source Code Guide\n\n* [ViewController](/ARTetris/ViewController.swift)\n  * [Initialize](/ARTetris/ViewController.swift#L18) and [configure](/ARTetris/ViewController.swift#L32) ARKit\n  * [Detect](/ARTetris/ViewController.swift#L56) horizontal plane and [initialize](/ARTetris/ViewController.swift#L63) Tetris game engine on this plane\n  * Add [gesture recognizers](/ARTetris/ViewController.swift#L76) and [process](/ARTetris/ViewController.swift#L89) gestures\n* [Tetromino](/ARTetris/Tetromino.swift): describe all tetrominos and their rotations\n* [TetrisConfig](/ARTetris/TetrisConfig.swift): width and height of the well\n* [TetrisState](/ARTetris/TetrisState.swift): tetris game state - current tetromino and its position in the well\n* [TetrisWell](/ARTetris/TetrisWell.swift): well model describing filled cells\n* [TetrisEngine](/ARTetris/TetrisEngine.swift): tetris game engine\n  * [Start](/ARTetris/TetrisEngine.swift#L102) game loop\n  * [Handle](/ARTetris/TetrisEngine.swift#L32) gestures and change game state\n  * [Handle animation](/ARTetris/TetrisEngine.swift#L94): stop game loop, execute animation, start game loop\n* [TetrisScene](/ARTetris/TetrisScene.swift)\n  * [Create](/ARTetris/TetrisScene.swift#L163) well frame\n  * [Show](/ARTetris/TetrisScene.swift#L50) current tetromino\n  * [Split](/ARTetris/TetrisScene.swift#L60) current tetromino into blocks and add to well\n  * Animate [removal](/ARTetris/TetrisScene.swift#L74) of filled lines from scene\n  * [Drop down](/ARTetris/TetrisScene.swift#L108) current tetromino\n  * [Break up](/ARTetris/TetrisScene.swift#L117) blocks after game over using SceneKit physics\n\n## Author\n\nThis project is maintained by [exyte](http://exyte.com). We design and build mobile and VR/AR applications.\n\n## License\n\nARTetris 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%2Fpowermobileweb%2Fartetris---scenekit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpowermobileweb%2Fartetris---scenekit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpowermobileweb%2Fartetris---scenekit/lists"}