{"id":19604406,"url":"https://github.com/noboomu/arfacekit","last_synced_at":"2025-04-27T19:32:38.415Z","repository":{"id":93396437,"uuid":"197318315","full_name":"noboomu/ARFaceKit","owner":"noboomu","description":"Full featured AR face magic for iOS. ","archived":false,"fork":false,"pushed_at":"2019-07-17T05:30:43.000Z","size":10159,"stargazers_count":10,"open_issues_count":0,"forks_count":4,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-22T14:54:44.527Z","etag":null,"topics":["arkit","augmented-reality","face-detection","face-tracking","ios"],"latest_commit_sha":null,"homepage":null,"language":"C++","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/noboomu.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-07-17T05:00:59.000Z","updated_at":"2025-03-31T01:48:39.000Z","dependencies_parsed_at":"2023-03-30T12:50:46.830Z","dependency_job_id":null,"html_url":"https://github.com/noboomu/ARFaceKit","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/noboomu%2FARFaceKit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/noboomu%2FARFaceKit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/noboomu%2FARFaceKit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/noboomu%2FARFaceKit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/noboomu","download_url":"https://codeload.github.com/noboomu/ARFaceKit/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251196023,"owners_count":21550888,"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","face-detection","face-tracking","ios"],"created_at":"2024-11-11T09:36:42.531Z","updated_at":"2025-04-27T19:32:38.409Z","avatar_url":"https://github.com/noboomu.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"### ARFaceGeometry\n\n- we add an additional texureCoordinate element to the geometry\n- this enables us to support geometry warping without having to override SceneKit’s rendering system\n - the second textureCoordinate element is designed to work with Daz3D face textures\n\n### SCNScene Info\n\n#### face\n- special node names\n    - lut\n        - if this node's material has a diffuse texture, that texture will be used to color the face node \n    - eyeLeft\n        - eye tracking will be enabled if this node is present\n        - the first material of this node will be used as the left eye's material\n    - eyeRight\n        - eye tracking will be enabled if this node is present\n        - the first material of this node will be used as the right eye's material\n    - geometry\n        - this node's materials are applied to the ARFaceGeometry\n        - custom modifiers are applied to the ARFaceGeometry \n\n#### world\n- child nodes are placed into the scene and are fixed relative to the camera\n- special node names\n    - lut\n        - if this node's material has a diffuse texture, that texture will be used to color all nodes in the scene \n    - overlay\n        - if this node has a material name with `*.sks` or `*.plist` than an SpriteKit scene will be created and the scene's `overlaySKScene` property will be set to this SpriteKit scene\n\n- lights\n    - constraints are preserved (i.e. lookAt)\n\n#### overlay \n\u003e \u003csmall\u003e*this name should be changed to mask* to avoid confusion\u003c/small\u003e\n- all child nodes will be attached to the face geometry\n- special node names\n    - lut\n        - if this node's material has a diffuse texture, that texture will be used to color the mask node \n\n\n#### camera\n- if a camera is present, use the color grading values for saturation and contrast, these are used by the colorProcessing pipeline\n\n\u003e *All lut textures are assumed to be 256x16 RGB images\n\n### Special Material Names\n\n- *.mp4\n    - if a material has this name, an `AVPlayer` will be created and the media file with the material's name will be loaded into it\n    - playback will be looped\n    - the node will use the `AVPlayer` as it's diffuse material property\n\n- *.sks\n    - if a material has this name, a `SKScene` will be loaded using the material's name as the file name\n    - the node will use the `SKScene` as it's diffuse material property\n\n- *.plist\n    - if a material has this name, an `AnimatedSpriteNode` will be created using the material's name as the file name\n    - it is assumed the format of this file matches that of that exported by the `TexturePacker` application when using `plist` mode\n    - the node will use the `AnimatedSpriteNode` as it's diffuse material property\n    - `AnimatedSpriteNode` inherits from `SKSpriteNode` but is extended to support `TexturePacker`'s capabiltities\n\n \n### Custom Material Properties\n\n- cameraTexture\n    - If this custom property is present, the renderer will set this texture with the output of the camera every render pass\n\n- displacementMap\n    - When present:\n        - the contents of the materials's `SCNShaderModifierEntryPoint` is set to the contents of `displacementGeometryModifier.txt` file\n        - the `SCNGeometryModifierEntryPoint` modifier is set from the contents of the  `displacementShaderModifier.txt` file\n    - The texture must be an [OpenEXR](http://www.openexr.com/) image\n    - Values are interpreted as follows:\n        - R: x displacement\n        - G: y displacement\n        - B: z displacement\n        - values = 0.5 have 0 displacement\n        - values \u003c 0.5 have negative displacement \n        - values \u003e 0.5 have positive displacement\n\n- backgroundInfluence\n    - determines the amount if influence the camera texture has on the diffuse texture\n    - default is 1.2\n\n- backgroundAverage\n    - determines the average background luminance used when blending with the camera texture\n    - default is 0.5","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnoboomu%2Farfacekit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnoboomu%2Farfacekit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnoboomu%2Farfacekit/lists"}