{"id":17679432,"url":"https://github.com/florent37/google-arcore-playground","last_synced_at":"2025-05-05T21:17:21.111Z","repository":{"id":50471570,"uuid":"112738776","full_name":"florent37/Google-ARCore-Playground","owner":"florent37","description":"Exploring Augmented Reality with google's sdk ARCore","archived":false,"fork":false,"pushed_at":"2019-10-01T11:06:15.000Z","size":1833,"stargazers_count":72,"open_issues_count":3,"forks_count":16,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-05-05T21:17:15.922Z","etag":null,"topics":["3d","android","arcore","google","opengl","reality","shader"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/florent37.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-12-01T12:43:05.000Z","updated_at":"2023-06-08T03:36:29.000Z","dependencies_parsed_at":"2022-08-05T12:30:12.609Z","dependency_job_id":null,"html_url":"https://github.com/florent37/Google-ARCore-Playground","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/florent37%2FGoogle-ARCore-Playground","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/florent37%2FGoogle-ARCore-Playground/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/florent37%2FGoogle-ARCore-Playground/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/florent37%2FGoogle-ARCore-Playground/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/florent37","download_url":"https://codeload.github.com/florent37/Google-ARCore-Playground/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252577027,"owners_count":21770721,"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":["3d","android","arcore","google","opengl","reality","shader"],"created_at":"2024-10-24T08:41:57.843Z","updated_at":"2025-05-05T21:17:21.094Z","avatar_url":"https://github.com/florent37.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Google ARCore Playground\n\n\n\u003ca href=\"https://goo.gl/WXW8Dc\"\u003e\n  \u003cimg alt=\"Android app on Google Play\" src=\"https://developer.android.com/images/brand/en_app_rgb_wo_45.png\" /\u003e\n\u003c/a\u003e\n\n\n# Prequel\n\nhttps://developers.google.com/ar/develop/\n\n```\nARCore provides SDKs for many of the most popular development environments.\nThese SDKs provide native APIs for all of the essential AR features like motion tracking, environmental understanding, and light estimation. With these capabilities you can build entirely new AR experiences or enhance existing apps with AR features.\n```\n\n# Running on your device\n\n```\nGoogle's ARCore developer preview for Android is awesome.\nUnfortunately, Android phone like OnePlus is not on the supported list,\nand apps built with ARCore exit at start on my device.\n\nHowever, its hardware actually can run ARCore!\n```\n\nUsing https://github.com/tomthecarrot/arcore-for-all, arCore can run on unsuported devices (only for test purposes)\n\n# What the sample does\n\n[![planes](https://raw.githubusercontent.com/florent37/Google-ARCore-Playground/master/medias/plane.jpg)](https://github.com/florent37/Google-ARCore-Playground)\n\n[![lines](https://raw.githubusercontent.com/florent37/Google-ARCore-Playground/master/medias/with_lines.jpg)](https://github.com/florent37/Google-ARCore-Playground)\n\n# Understand ARCore\n\nARCore main goal is to understand his environment,\nto acomplish this, following camera's video it try to find landmarks in space,\nthen combine them with all device's hardware sensors to track motion and find our exactly position in this environment.\n\nARCore is capable of detecting planes (eg: ground / surface of a table), and attach anchor point on this environment.\nIt means if you add an object at an exact point of your environment, for example adding a bottle (by OpenGL) in the middle of you table,\nand you move your phone to make it become out of screen, if you get back to the table, you will be able to see again at the same place your bottle.\n\nARCore, by the `Session` singleton class, provides the description of the environment.\n\nAt each instant (eg: when we want to draw), we ask ARCore for a `Frame`\n\nA Frame is the explanation of the environment at the instant X\n\nA `Frame` contains :\n\n- The list of Points he detects on the camera `.getPointCloud()`\n- An estimation of the light intensity `.getLightEstimate()`\n- The current view matrix `.getViewMatrix(matrix, ...)`\n\nAnd the `Session` contains :\n- The list of detected Planes `.getAllPlanes()`\n- The list of all saved anchor points `.getAllAnchors()`\n- The current projection matrix `.getProjectionMatrix(matrix, ...)`\n\nThen, an `Anchor` offer\n- a position in space named `Pose`\n\n# Matrix, Reloaded\n\n## Projection\n\nAs developer, the principal main objects we will need is `Pose`\n\nBecause a Pose contains, for a plane, an object of even a point  :\n- The `translation` (tx, ty, tz) we need to apply on it\n- The `rotation` (rx, ry, rz) we need to apply on it\n\nTo move your object at the pose's exact position you just have to multiply your model's projection matrix by the Pose's matrix\n\n```\nOBJECT_3D.proj_matrix = OBJECT_3D.proj_matrix * OBJECT_3D.anchor.pose.proj_matrix\n```\n\nIn java we will use the method `anchor.getPose().toMatrix(float[]) to obtain the anchor projection matrix\n\n## Camera\n\nAnd, do not fo forget to update your camera matrix,\nto ensure your objects to be drawn \u0026 visible at the perfect pose in space\n\n`arcoreFrame.getViewMatrix(float[], 0);`\n\n\n\n\u003ca href=\"https://goo.gl/WXW8Dc\"\u003e\n  \u003cimg alt=\"Android app on Google Play\" src=\"https://developer.android.com/images/brand/en_app_rgb_wo_45.png\" /\u003e\n\u003c/a\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fflorent37%2Fgoogle-arcore-playground","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fflorent37%2Fgoogle-arcore-playground","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fflorent37%2Fgoogle-arcore-playground/lists"}