@vincentt-xr/sdk 2.0.0-alpha.7 → 2.0.0-alpha.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (639) hide show
  1. package/GROUNDING.md +5651 -82
  2. package/README.md +1 -0
  3. package/dist/CanonicalHeadFrame-BHcWyaiK.js +1506 -0
  4. package/dist/CanonicalHeadFrame-D-_T1OMU.cjs +1 -0
  5. package/dist/DebuggerUI-7ngnJsBe.js +275 -0
  6. package/dist/DebuggerUI-CoglgKdO.cjs +1 -0
  7. package/dist/FaceRetouch-CLoTfrcs.js +1071 -0
  8. package/dist/FaceRetouch-J1lC1WbS.cjs +134 -0
  9. package/dist/FaceSurface-CHAMEeG1.cjs +1 -0
  10. package/dist/FaceSurface-DmP9AEeC.js +27 -0
  11. package/dist/SegmentationOverlay-D_FWkcyP.cjs +35 -0
  12. package/dist/SegmentationOverlay-vn5x_knv.js +6237 -0
  13. package/dist/SkeletonUtils-C2r90MtN.js +21 -0
  14. package/dist/SkeletonUtils-CddIup1F.cjs +1 -0
  15. package/dist/TextLabel-XE0rQSDn.cjs +2 -0
  16. package/dist/TextLabel-c9BCucOI.js +961 -0
  17. package/dist/assets/cache.d.ts +99 -0
  18. package/dist/assets/estimate.d.ts +11 -0
  19. package/dist/assets/gltfLoader.d.ts +16 -0
  20. package/dist/assets/index.d.ts +7 -0
  21. package/dist/assets/loaders.d.ts +43 -0
  22. package/dist/assets/react.d.ts +33 -0
  23. package/dist/body-pose/index.d.ts +521 -0
  24. package/dist/body-trigger/__fixtures__/syntheticBody.d.ts +83 -0
  25. package/dist/body-trigger/frame.d.ts +88 -0
  26. package/dist/body-trigger/index.d.ts +6 -0
  27. package/dist/body-trigger/moves.d.ts +235 -0
  28. package/dist/body-trigger/trigger.d.ts +75 -0
  29. package/dist/calibration/calibration.d.ts +75 -0
  30. package/dist/calibration/index.d.ts +6 -0
  31. package/dist/calibration/storage.d.ts +13 -0
  32. package/dist/calibration/types.d.ts +53 -0
  33. package/dist/calibration/useXRCalibration.d.ts +46 -0
  34. package/dist/camera/CameraPermissionGate.d.ts +26 -0
  35. package/dist/camera/devices.d.ts +26 -0
  36. package/dist/camera/index.d.ts +8 -0
  37. package/dist/camera/permission.d.ts +86 -0
  38. package/dist/camera/useCameraPermission.d.ts +35 -0
  39. package/dist/canonicalFace-BHwyCx1c.js +9 -0
  40. package/dist/canonicalFace-C83I225R.cjs +1 -0
  41. package/dist/capabilities/detect.d.ts +45 -0
  42. package/dist/capabilities/index.d.ts +5 -0
  43. package/dist/capabilities/types.d.ts +120 -0
  44. package/dist/capabilities/useXRCapabilities.d.ts +18 -0
  45. package/dist/compat/environment.d.ts +5 -0
  46. package/dist/compat/index.d.ts +4 -0
  47. package/dist/compat/run.d.ts +18 -0
  48. package/dist/compat/scenarios.d.ts +10 -0
  49. package/dist/compat/types.d.ts +101 -0
  50. package/dist/components/BodyInstruction/BodyPoseHint.d.ts +63 -0
  51. package/dist/components/BodyInstruction/index.d.ts +69 -0
  52. package/dist/components/BodyInstruction/useBodyPose.d.ts +23 -0
  53. package/dist/components/BodyTracker/index.d.ts +17 -0
  54. package/dist/components/BodyTrigger/index.d.ts +49 -0
  55. package/dist/components/Debugger/DebuggerProvider.d.ts +14 -1
  56. package/dist/components/Debugger/DebuggerUI.d.ts +3 -1
  57. package/dist/components/FaceAtlas/FaceAtlasLayer.d.ts +114 -0
  58. package/dist/components/FaceAtlas/MadeUpCamera.d.ts +80 -0
  59. package/dist/components/FaceAtlas/constants.d.ts +8 -0
  60. package/dist/components/FaceAtlas/index.d.ts +7 -0
  61. package/dist/components/FaceAtlas/useFaceAtlasSurface.d.ts +84 -0
  62. package/dist/components/FaceAtlas/useFaceSkin.d.ts +84 -0
  63. package/dist/components/FaceCharacter/ExternalFaceMesh.d.ts +109 -0
  64. package/dist/components/FaceCharacter/FaceExpressionController.d.ts +53 -0
  65. package/dist/components/FaceCharacter/FaceMorph.d.ts +71 -0
  66. package/dist/components/FaceCharacter/FacePiercing.d.ts +65 -0
  67. package/dist/components/FaceCharacter/FaceReprojection.d.ts +85 -0
  68. package/dist/components/FaceCharacter/FaceRig.d.ts +38 -0
  69. package/dist/components/FaceCharacter/FaceSurface.d.ts +49 -0
  70. package/dist/components/FaceCharacter/FaceSurfaceOccluder.d.ts +39 -0
  71. package/dist/components/FaceCharacter/PinToFaceMesh.d.ts +68 -0
  72. package/dist/components/FaceCharacter/index.d.ts +18 -0
  73. package/dist/components/FaceCharacter/useFaceReprojector.d.ts +10 -0
  74. package/dist/components/FaceInset/FaceInset.d.ts +68 -0
  75. package/dist/components/FaceInset/frame.d.ts +94 -0
  76. package/dist/components/FaceInset/index.d.ts +6 -0
  77. package/dist/components/FaceInset/material.d.ts +40 -0
  78. package/dist/components/FaceInset/useFaceInsetTexture.d.ts +37 -0
  79. package/dist/components/FaceInstruction/FaceExpressionHint.d.ts +43 -0
  80. package/dist/components/FaceInstruction/index.d.ts +56 -0
  81. package/dist/components/FaceInstruction/useFaceExpression.d.ts +20 -0
  82. package/dist/components/FaceLiquify/FaceLiquify.d.ts +49 -0
  83. package/dist/components/FaceLiquify/debug.d.ts +37 -0
  84. package/dist/components/FaceLiquify/frame.d.ts +55 -0
  85. package/dist/components/FaceLiquify/index.d.ts +10 -0
  86. package/dist/components/FaceLiquify/material.d.ts +39 -0
  87. package/dist/components/FaceLiquify/pass.d.ts +49 -0
  88. package/dist/components/FaceLiquify/presence.d.ts +25 -0
  89. package/dist/components/FaceLiquify/presets.d.ts +82 -0
  90. package/dist/components/FaceLiquify/selfTest.d.ts +66 -0
  91. package/dist/components/FaceLiquify/target.d.ts +85 -0
  92. package/dist/components/FaceLiquify/warp.d.ts +72 -0
  93. package/dist/components/FaceMesh/canonical/CanonicalFaceMeshRenderer.d.ts +37 -5
  94. package/dist/components/FaceMesh/canonical/geometryGroups.d.ts +21 -0
  95. package/dist/components/FaceMesh/canonical/parseCanonicalFaceModel.d.ts +21 -0
  96. package/dist/components/FaceMesh/canonical/shaders.d.ts +1 -1
  97. package/dist/components/FaceMesh/index.d.ts +2 -2
  98. package/dist/components/FaceRetouch/Background.d.ts +3 -1
  99. package/dist/components/FaceRetouch/FaceRetouch.d.ts +5 -0
  100. package/dist/components/FaceRetouch/renderState.d.ts +19 -0
  101. package/dist/components/FaceSwap/FaceMirror.d.ts +46 -0
  102. package/dist/components/FaceSwap/FaceSwap.d.ts +58 -0
  103. package/dist/components/FaceSwap/FaceTextureLayer.d.ts +72 -0
  104. package/dist/components/FaceSwap/faceSwapPlan.d.ts +91 -0
  105. package/dist/components/FaceSwap/index.d.ts +13 -0
  106. package/dist/components/FaceSwap/settings.d.ts +300 -0
  107. package/dist/components/FaceSwap/useFaceTexture.d.ts +35 -0
  108. package/dist/components/FaceSwap/useLiveFace.d.ts +38 -0
  109. package/dist/components/FaceSwap/useLiveFaceTexture.d.ts +31 -0
  110. package/dist/components/FaceWarp3D/FaceWarp3D.d.ts +50 -0
  111. package/dist/components/FaceWarp3D/index.d.ts +2 -3
  112. package/dist/components/Faceless/Faceless.d.ts +51 -0
  113. package/dist/components/Faceless/index.d.ts +2 -0
  114. package/dist/components/GestureListener/index.d.ts +11 -0
  115. package/dist/components/HairLock/HairLock.d.ts +39 -0
  116. package/dist/components/HairLock/index.d.ts +2 -0
  117. package/dist/components/HairLock/lockGeometry.d.ts +15 -0
  118. package/dist/components/HandCutout/index.d.ts +35 -0
  119. package/dist/components/HandInstruction/HandGestureHint.d.ts +70 -0
  120. package/dist/components/HandInstruction/index.d.ts +74 -0
  121. package/dist/components/HandInstruction/useHandGesture.d.ts +22 -0
  122. package/dist/components/HandRig/ForearmOccluder.d.ts +29 -0
  123. package/dist/components/HandRig/HandAttachment.d.ts +34 -0
  124. package/dist/components/HandRig/HandOccluder.d.ts +55 -0
  125. package/dist/components/HandRig/HandTattoo.d.ts +61 -0
  126. package/dist/components/HandRig/WristAttachment.d.ts +34 -0
  127. package/dist/components/HandRig/index.d.ts +101 -0
  128. package/dist/components/HandRig/useArmMask.d.ts +29 -0
  129. package/dist/components/HandRig/wristSolve.d.ts +69 -0
  130. package/dist/components/HandTouch/HandTouch.d.ts +62 -0
  131. package/dist/components/HandTouch/Touchable.d.ts +36 -0
  132. package/dist/components/HandTouch/index.d.ts +2 -0
  133. package/dist/components/HandTracker/index.d.ts +10 -0
  134. package/dist/components/HeadBinding/index.d.ts +14 -0
  135. package/dist/components/HeadOccluder/CanonicalHeadFrame.d.ts +22 -0
  136. package/dist/components/HeadOccluder/Earrings.d.ts +55 -0
  137. package/dist/components/HeadOccluder/HeadAttachment.d.ts +38 -0
  138. package/dist/components/HeadOccluder/NeckOccluder.d.ts +64 -0
  139. package/dist/components/HeadOccluder/earringPlacement.d.ts +31 -0
  140. package/dist/components/HeadOccluder/headAttachmentPoints.d.ts +69 -0
  141. package/dist/components/HeadOccluder/index.d.ts +57 -3
  142. package/dist/components/HeadOccluder/useCanonicalHeadFit.d.ts +36 -0
  143. package/dist/components/HeadOccluder/useLandmarkPoseFit.d.ts +80 -0
  144. package/dist/components/HolisticTracker/index.d.ts +69 -0
  145. package/dist/components/HolisticTracker/settings.d.ts +58 -0
  146. package/dist/components/HolisticTracker/signals.d.ts +49 -0
  147. package/dist/components/Instruction/HintStage.d.ts +29 -0
  148. package/dist/components/Instruction/InstructionCue.d.ts +126 -0
  149. package/dist/components/Instruction/gestureHold.d.ts +20 -0
  150. package/dist/components/Instruction/ghost.d.ts +129 -0
  151. package/dist/components/Instruction/hintBlend.d.ts +19 -0
  152. package/dist/components/Instruction/hintLook.d.ts +81 -0
  153. package/dist/components/Instruction/hintLoop.d.ts +36 -0
  154. package/dist/components/Instruction/index.d.ts +41 -0
  155. package/dist/components/Instruction/useGhostModel.d.ts +33 -0
  156. package/dist/components/Instruction/useInstructionHold.d.ts +72 -0
  157. package/dist/components/IrisEffect/IrisMaterial.d.ts +73 -0
  158. package/dist/components/IrisEffect/index.d.ts +51 -0
  159. package/dist/components/IrisEffect/settings.d.ts +117 -0
  160. package/dist/components/LipEffect/LipEffect.d.ts +27 -1
  161. package/dist/components/LipEffect/LipEffectMaterial.d.ts +95 -7
  162. package/dist/components/LipEffect/LipEffects.d.ts +12 -0
  163. package/dist/components/LipEffect/defaults.d.ts +46 -4
  164. package/dist/components/LipEffect/index.d.ts +11 -3
  165. package/dist/components/LipEffect/lipShading.d.ts +73 -0
  166. package/dist/components/LipEffect/settings.d.ts +375 -0
  167. package/dist/components/LipEffect/shader.d.ts +39 -0
  168. package/dist/components/LipEffect/types.d.ts +128 -9
  169. package/dist/components/LipEffect/useLipDesignTextures.d.ts +17 -0
  170. package/dist/components/LipEffect/uvGuide.d.ts +74 -0
  171. package/dist/components/Makeup/Blush.d.ts +18 -0
  172. package/dist/components/Makeup/Brows.d.ts +20 -0
  173. package/dist/components/Makeup/Contour.d.ts +17 -0
  174. package/dist/components/Makeup/Eyeliner.d.ts +20 -0
  175. package/dist/components/Makeup/Eyeshadow.d.ts +20 -0
  176. package/dist/components/Makeup/Highlighter.d.ts +18 -0
  177. package/dist/components/Makeup/MakeupDesign.d.ts +37 -0
  178. package/dist/components/Makeup/MakeupRegion.d.ts +132 -0
  179. package/dist/components/Makeup/constants.d.ts +44 -0
  180. package/dist/components/Makeup/design.d.ts +106 -0
  181. package/dist/components/Makeup/designSamples.d.ts +42 -0
  182. package/dist/components/Makeup/eyes.d.ts +114 -0
  183. package/dist/components/Makeup/fields.d.ts +10 -0
  184. package/dist/components/Makeup/geometry.d.ts +106 -0
  185. package/dist/components/Makeup/index.d.ts +26 -0
  186. package/dist/components/Makeup/looks.d.ts +28 -0
  187. package/dist/components/Makeup/material.d.ts +239 -0
  188. package/dist/components/Makeup/settings.d.ts +54 -0
  189. package/dist/components/Makeup/shades.d.ts +143 -0
  190. package/dist/components/Makeup/shapes.d.ts +27 -0
  191. package/dist/components/Makeup/skinTone.d.ts +135 -0
  192. package/dist/components/Makeup/types.d.ts +110 -0
  193. package/dist/components/Makeup/useMakeupSkinTone.d.ts +40 -0
  194. package/dist/components/Necklace/Necklace.d.ts +44 -0
  195. package/dist/components/Necklace/index.d.ts +1 -0
  196. package/dist/components/ParticleEmitter/ParticleEmitter.d.ts +69 -0
  197. package/dist/components/ParticleEmitter/index.d.ts +1 -0
  198. package/dist/components/PersonCutout/index.d.ts +50 -0
  199. package/dist/components/PersonCutout/personCutout.d.ts +16 -0
  200. package/dist/components/ScreenImage/components/ScreenImageBody.d.ts +1 -1
  201. package/dist/components/ScreenImage/index.d.ts +3 -1
  202. package/dist/components/ScreenImage/materials/ScreenImageBlendMaterial.d.ts +1 -1
  203. package/dist/components/ScreenImage/materials/ScreenImageMaskMaterial.d.ts +11 -0
  204. package/dist/components/ScreenImage/source.d.ts +6 -0
  205. package/dist/components/ScreenImage/types.d.ts +18 -0
  206. package/dist/components/SegmentationOverlay/SegmentationOverlay.d.ts +37 -0
  207. package/dist/components/SegmentationOverlay/SegmentationOverlayMaterial.d.ts +31 -0
  208. package/dist/components/SegmentationOverlay/index.d.ts +9 -0
  209. package/dist/components/SegmentationOverlay/maskTexture.d.ts +23 -0
  210. package/dist/components/SegmentationOverlay/providers.d.ts +72 -0
  211. package/dist/components/SegmentationOverlay/settings.d.ts +65 -0
  212. package/dist/components/ShoulderOccluder/index.d.ts +43 -0
  213. package/dist/components/ShoulderOccluder/useCanonicalTorsoFit.d.ts +24 -0
  214. package/dist/components/SpringSwing/SpringSwing.d.ts +22 -0
  215. package/dist/components/SpringSwing/index.d.ts +1 -0
  216. package/dist/components/XRProvider/index.d.ts +16 -2
  217. package/dist/components/XRScene/renderOutputTarget.d.ts +12 -0
  218. package/dist/components/XRViewport/hooks/useViewportExternalFaces.d.ts +1 -1
  219. package/dist/components/XRViewport/hooks/useViewportMediaSource.d.ts +1 -1
  220. package/dist/components/XRViewport/hooks/useViewportPipeline.d.ts +1 -1
  221. package/dist/components/index.d.ts +11 -0
  222. package/dist/config/index.d.ts +0 -1
  223. package/dist/constants/index.d.ts +4 -1
  224. package/dist/context-DTxSQvp4.js +13 -0
  225. package/dist/context-hA0Rb2Xa.cjs +1 -0
  226. package/dist/contexts-BH7PdKFS.cjs +1 -0
  227. package/dist/contexts-jak8-tND.js +667 -0
  228. package/dist/coordinates/feed.d.ts +52 -0
  229. package/dist/coordinates/index.d.ts +7 -0
  230. package/dist/coordinates/side.d.ts +40 -0
  231. package/dist/coordinates/spaces.d.ts +49 -0
  232. package/dist/coordinates/viewport.d.ts +22 -0
  233. package/dist/coordinates/world.d.ts +15 -0
  234. package/dist/debug-ui/default-setting.cjs +2 -2
  235. package/dist/debug-ui/face-swap-settings/index.d.ts +22 -0
  236. package/dist/debug-ui/gesture-settings/index.d.ts +14 -0
  237. package/dist/debug-ui/hierarchy-panel/index.d.ts +3 -2
  238. package/dist/debug-ui/holistic-tracker-settings/index.d.ts +16 -0
  239. package/dist/debug-ui/index.d.ts +18 -3
  240. package/dist/debug-ui/iris-effect-settings/index.d.ts +12 -0
  241. package/dist/debug-ui/lip-effect-settings/index.d.ts +15 -0
  242. package/dist/debug-ui/media-source/index.d.ts +1 -1
  243. package/dist/debug-ui/media-source/session.d.ts +30 -2
  244. package/dist/debug-ui/media-source.cjs +1 -1
  245. package/dist/debug-ui/media-source.js +1 -1
  246. package/dist/debug-ui/object-inspector-panel/index.d.ts +3 -2
  247. package/dist/debug-ui/product-hotspots/index.d.ts +25 -0
  248. package/dist/debug-ui/scene-editor/hierarchy-panel.d.ts +3 -1
  249. package/dist/debug-ui/scene-editor/inspector-panel.d.ts +3 -1
  250. package/dist/debug-ui/screen-image-settings/index.d.ts +3 -1
  251. package/dist/debug-ui/screen-text-settings/ScreenTextSettingsPanel.d.ts +1 -1
  252. package/dist/debug-ui/screen-text-settings/types.d.ts +2 -0
  253. package/dist/debug-ui/segmentation-overlay-settings/index.d.ts +12 -0
  254. package/dist/debug-ui/settings-panel/index.d.ts +6 -1
  255. package/dist/debug-ui/shared/debugWindow.d.ts +51 -0
  256. package/dist/debug-ui/xr-diagnostics/index.d.ts +26 -0
  257. package/dist/debug-ui.cjs +3 -3
  258. package/dist/debug-ui.js +2695 -2547
  259. package/dist/detector-K8aej4MB.js +59 -0
  260. package/dist/detector-ijypGtse.cjs +1 -0
  261. package/dist/entries/all.d.ts +3 -1
  262. package/dist/entries/core.d.ts +20 -2
  263. package/dist/entries/face-effects.d.ts +123 -9
  264. package/dist/entries/instructions.d.ts +48 -0
  265. package/dist/entries/internal.d.ts +2 -1
  266. package/dist/entries/low-level.d.ts +49 -3
  267. package/dist/entries/particles.d.ts +11 -0
  268. package/dist/entries/product.d.ts +11 -0
  269. package/dist/entries/tracking.d.ts +60 -2
  270. package/dist/face-atlas/attributes.d.ts +30 -0
  271. package/dist/face-atlas/eyes.d.ts +272 -0
  272. package/dist/face-atlas/faceAtlas.generated.d.ts +46 -0
  273. package/dist/face-atlas/glsl/atlasVertex.d.ts +46 -0
  274. package/dist/face-atlas/glsl/common.d.ts +55 -0
  275. package/dist/face-atlas/glsl/design.d.ts +49 -0
  276. package/dist/face-atlas/glsl/eyes.d.ts +73 -0
  277. package/dist/face-atlas/glsl/finish.d.ts +24 -0
  278. package/dist/face-atlas/glsl/format.d.ts +4 -0
  279. package/dist/face-atlas/glsl/index.d.ts +59 -0
  280. package/dist/face-atlas/glsl/shading.d.ts +15 -0
  281. package/dist/face-atlas/glsl/shapes.d.ts +66 -0
  282. package/dist/face-atlas/glsl/sparkle.d.ts +19 -0
  283. package/dist/face-atlas/glsl/uniforms.d.ts +106 -0
  284. package/dist/face-atlas/guide.d.ts +51 -0
  285. package/dist/face-atlas/index.d.ts +25 -0
  286. package/dist/face-atlas/lead.d.ts +117 -0
  287. package/dist/face-atlas/madeUpCamera.d.ts +125 -0
  288. package/dist/face-atlas/masks.d.ts +53 -0
  289. package/dist/face-atlas/obj.d.ts +69 -0
  290. package/dist/face-atlas/polylines.d.ts +63 -0
  291. package/dist/face-atlas/probe/FaceSkinProbe.d.ts +208 -0
  292. package/dist/face-atlas/probe/__fixtures__/emulate.d.ts +9 -0
  293. package/dist/face-atlas/probe/__fixtures__/face.d.ts +24 -0
  294. package/dist/face-atlas/probe/constants.d.ts +137 -0
  295. package/dist/face-atlas/probe/glsl.d.ts +43 -0
  296. package/dist/face-atlas/probe/lightFit.d.ts +108 -0
  297. package/dist/face-atlas/probe/schedule.d.ts +44 -0
  298. package/dist/face-atlas/probe/selfTest.d.ts +87 -0
  299. package/dist/face-atlas/probe/stats.d.ts +143 -0
  300. package/dist/face-atlas/probe/targets.d.ts +70 -0
  301. package/dist/face-atlas/probe/unwrap.d.ts +76 -0
  302. package/dist/face-atlas/quality.d.ts +28 -0
  303. package/dist/face-atlas/regions.d.ts +31 -0
  304. package/dist/face-atlas/registry.d.ts +252 -0
  305. package/dist/face-atlas/renderState.d.ts +86 -0
  306. package/dist/face-atlas/selfOcclusion.d.ts +62 -0
  307. package/dist/face-atlas/shading.d.ts +406 -0
  308. package/dist/face-atlas/shapes.d.ts +86 -0
  309. package/dist/face-atlas/sides.d.ts +41 -0
  310. package/dist/face-atlas/skinMask.d.ts +35 -0
  311. package/dist/face-atlas/surface.d.ts +155 -0
  312. package/dist/face-atlas/topology.d.ts +44 -0
  313. package/dist/face-character/__fixtures__/faceImageDetections.d.ts +25 -0
  314. package/dist/face-character/__fixtures__/faceNode.d.ts +22 -0
  315. package/dist/face-character/bindFaceModel.d.ts +106 -0
  316. package/dist/face-character/canonicalFace.d.ts +17 -0
  317. package/dist/face-character/canonicalFaceGeometry.d.ts +11 -0
  318. package/dist/face-character/canonicalFacePositions.d.ts +7 -0
  319. package/dist/face-character/driveFaceModel.d.ts +57 -0
  320. package/dist/face-character/expressionOutputs.d.ts +45 -0
  321. package/dist/face-character/faceExpressions.d.ts +104 -0
  322. package/dist/face-character/faceImageLandmarker.d.ts +93 -0
  323. package/dist/face-character/faceMeshBinding.d.ts +62 -0
  324. package/dist/face-character/faceMorph.d.ts +77 -0
  325. package/dist/face-character/faceMorphs.d.ts +46 -0
  326. package/dist/face-character/facePhoto.d.ts +138 -0
  327. package/dist/face-character/facePiercings.d.ts +116 -0
  328. package/dist/face-character/facePin.d.ts +131 -0
  329. package/dist/face-character/faceReprojection.d.ts +273 -0
  330. package/dist/face-character/faceReprojector.d.ts +171 -0
  331. package/dist/face-character/faceRig.d.ts +176 -0
  332. package/dist/face-character/faceSwapPresence.d.ts +85 -0
  333. package/dist/face-character/faceTexture.d.ts +169 -0
  334. package/dist/face-character/faceTextureBaker.d.ts +86 -0
  335. package/dist/face-character/faceTextureGuide.d.ts +106 -0
  336. package/dist/face-character/faceTextureStats.d.ts +298 -0
  337. package/dist/face-character/faceTransfer.d.ts +396 -0
  338. package/dist/face-character/faceTransferGeometry.d.ts +109 -0
  339. package/dist/face-character/faceTransferSelfTest.d.ts +94 -0
  340. package/dist/face-character/faceWarp3D.d.ts +101 -0
  341. package/dist/face-character/faceless.d.ts +79 -0
  342. package/dist/face-character/featureWarp.d.ts +28 -0
  343. package/dist/face-character/liveFaceRegistry.d.ts +370 -0
  344. package/dist/face-character/liveValue.d.ts +12 -0
  345. package/dist/face-character/memo.d.ts +15 -0
  346. package/dist/face-effects.cjs +2324 -1
  347. package/dist/face-effects.js +14208 -2268
  348. package/dist/face-expression/index.d.ts +182 -0
  349. package/dist/face-info/landmarks.d.ts +17 -3
  350. package/dist/face-info/types.d.ts +20 -3
  351. package/dist/gestures/definitions.d.ts +98 -0
  352. package/dist/gestures/detector.d.ts +87 -0
  353. package/dist/gestures/index.d.ts +8 -0
  354. package/dist/gestures/measures.d.ts +114 -0
  355. package/dist/gestures/settings.d.ts +49 -0
  356. package/dist/getFaceInfo-B1otSDMX.cjs +1 -0
  357. package/dist/getFaceInfo-Cu4xDWiL.js +62 -0
  358. package/dist/hand/armFit.d.ts +46 -0
  359. package/dist/hand/armMask.d.ts +178 -0
  360. package/dist/hand/handCutout.d.ts +23 -0
  361. package/dist/hand/handCutoutRegistry.d.ts +7 -0
  362. package/dist/hand/handGestures.d.ts +524 -0
  363. package/dist/hand/handPose.d.ts +98 -0
  364. package/dist/hand/handRigSolver.d.ts +159 -0
  365. package/dist/hand/handTattoo.d.ts +81 -0
  366. package/dist/hand/handTouch.d.ts +240 -0
  367. package/dist/hand/wrist.d.ts +44 -0
  368. package/dist/hand/wristFilter.d.ts +44 -0
  369. package/dist/hooks/selectors.d.ts +76 -1
  370. package/dist/hooks/useCalibrationFaceTracker.d.ts +1 -1
  371. package/dist/hooks/useFaceInfo.d.ts +13 -1
  372. package/dist/hooks/useFaceInfos.d.ts +1 -1
  373. package/dist/hooks/useFaceModelAcquisition.d.ts +38 -0
  374. package/dist/hooks/useGesture.d.ts +32 -0
  375. package/dist/hooks/useIrisTracking.d.ts +45 -0
  376. package/dist/hooks/useTrackerContext.d.ts +6 -0
  377. package/dist/hooks/useXRDiagnostics.d.ts +81 -0
  378. package/dist/hooks/useXRModel.d.ts +7 -0
  379. package/dist/hooks/useXRSession/facade.d.ts +42 -2
  380. package/dist/hooks/useXRSession/index.d.ts +2 -2
  381. package/dist/hooks/useXRSession/reason.d.ts +3 -1
  382. package/dist/hooks/useXRSession/registry.d.ts +14 -0
  383. package/dist/hooks/useXRSession/store.d.ts +52 -3
  384. package/dist/index-B1_TzJaI.js +1104 -0
  385. package/dist/index-BavF06C6.js +190 -0
  386. package/dist/index-BfFmpddl.cjs +21 -0
  387. package/dist/index-BuBzneeW.cjs +46 -0
  388. package/dist/index-CGsQWodV.cjs +1 -0
  389. package/dist/index-CIe7eCMH.js +3200 -0
  390. package/dist/index-CfSF8LXa.cjs +1 -0
  391. package/dist/index-D5GTzOzD.cjs +1 -0
  392. package/dist/index-DBhQzvVa.js +314 -0
  393. package/dist/index-DE17y0ZI.cjs +1 -0
  394. package/dist/index-JII7huPk.js +442 -0
  395. package/dist/index-tpCr9CLj.cjs +1 -0
  396. package/dist/index-w1S7fI2B.js +1432 -0
  397. package/dist/index-zGaqrz_K.js +188 -0
  398. package/dist/instructions.cjs +30 -0
  399. package/dist/instructions.js +1507 -0
  400. package/dist/{internal-Dmk1cTXq.js → internal-B90P-clC.js} +138 -119
  401. package/dist/internal-Cjinca64.cjs +1 -0
  402. package/dist/internal.cjs +1 -1
  403. package/dist/internal.js +15 -10
  404. package/dist/iris/compute.d.ts +27 -0
  405. package/dist/iris/index.d.ts +4 -0
  406. package/dist/iris/lead.d.ts +19 -0
  407. package/dist/iris/types.d.ts +89 -0
  408. package/dist/landmarkMask-BFDyBnKM.js +224 -0
  409. package/dist/landmarkMask-u7es2k4X.cjs +1 -0
  410. package/dist/landmarks-BlUqf5MZ.cjs +1 -0
  411. package/dist/landmarks-bftdwq6Z.js +76 -0
  412. package/dist/loaders-BGAUACsd.js +363 -0
  413. package/dist/loaders-BJ1_QCHt.cjs +1 -0
  414. package/dist/low-level.cjs +1 -1
  415. package/dist/low-level.js +1190 -675
  416. package/dist/main.cjs +1 -1
  417. package/dist/main.js +1190 -452
  418. package/dist/models/Base/index.d.ts +49 -0
  419. package/dist/models/Body/index.d.ts +3 -1
  420. package/dist/models/Face/constants.d.ts +8 -0
  421. package/dist/models/Face/index.d.ts +4 -12
  422. package/dist/models/Face/rotation.d.ts +18 -3
  423. package/dist/models/Hand/GestureTracking.d.ts +1 -1
  424. package/dist/models/Hand/HandTracking.d.ts +17 -1
  425. package/dist/models/Holistic/index.d.ts +49 -0
  426. package/dist/models/Holistic/result.d.ts +68 -0
  427. package/dist/models/Segmentation/index.d.ts +2 -0
  428. package/dist/models/SemanticSegmentation/index.d.ts +31 -0
  429. package/dist/models/SemanticSegmentation/presets.d.ts +28 -0
  430. package/dist/models/index.d.ts +2 -0
  431. package/dist/models/nodeSource.d.ts +9 -0
  432. package/dist/particles/emission.d.ts +24 -0
  433. package/dist/particles/eyes.d.ts +24 -0
  434. package/dist/particles/glsl.d.ts +14 -0
  435. package/dist/particles/index.d.ts +10 -0
  436. package/dist/particles/motion.d.ts +42 -0
  437. package/dist/particles/presets.d.ts +12 -0
  438. package/dist/particles/ring.d.ts +58 -0
  439. package/dist/particles/selfTest.d.ts +53 -0
  440. package/dist/particles/settings.d.ts +127 -0
  441. package/dist/particles/shapes.d.ts +29 -0
  442. package/dist/particles/spawner.d.ts +60 -0
  443. package/dist/particles/system.d.ts +64 -0
  444. package/dist/particles.cjs +122 -0
  445. package/dist/particles.js +774 -0
  446. package/dist/product/ProductDimensions.d.ts +16 -0
  447. package/dist/product/ProductHotspot.d.ts +16 -0
  448. package/dist/product/ProductViewer.d.ts +9 -0
  449. package/dist/product/details.d.ts +53 -0
  450. package/dist/product/index.d.ts +14 -0
  451. package/dist/product/loadModelViewer.d.ts +4 -0
  452. package/dist/product/types.d.ts +71 -0
  453. package/dist/product/useProductAr.d.ts +37 -0
  454. package/dist/product/useProductDetails.d.ts +60 -0
  455. package/dist/product.cjs +1 -0
  456. package/dist/product.js +414 -0
  457. package/dist/providers-C8rE26Uf.js +366 -0
  458. package/dist/providers-DHsrhDI2.cjs +62 -0
  459. package/dist/quality/XRQualityController.d.ts +25 -0
  460. package/dist/quality/controller.d.ts +33 -0
  461. package/dist/quality/index.d.ts +6 -0
  462. package/dist/quality/types.d.ts +100 -0
  463. package/dist/quality/useXRQuality.d.ts +28 -0
  464. package/dist/render/renderPasses.d.ts +8 -0
  465. package/dist/render/sceneBeforeRender.d.ts +12 -0
  466. package/dist/{renderGroups-KZk6eRiY.js → renderGroups-B38pUaX2.js} +1 -1
  467. package/dist/{renderGroups-80H3DpTl.cjs → renderGroups-Cb_4Ar1Q.cjs} +1 -1
  468. package/dist/renderPasses-B6l8IpJv.js +1290 -0
  469. package/dist/renderPasses-dqmkft4P.cjs +158 -0
  470. package/dist/renderState-CJNmj5jz.js +39 -0
  471. package/dist/renderState-apSfg4eR.cjs +1 -0
  472. package/dist/scene-object.cjs +1 -1
  473. package/dist/scene-object.js +2 -2
  474. package/dist/segmentation-Cb3ouK6Z.js +1758 -0
  475. package/dist/segmentation-D9pYO6aR.cjs +1 -0
  476. package/dist/segmentation2d/faceMemory.d.ts +28 -0
  477. package/dist/segmentation2d/faceRegions.d.ts +24 -0
  478. package/dist/segmentation2d/index.d.ts +9 -0
  479. package/dist/segmentation2d/maskUv.d.ts +23 -0
  480. package/dist/segmentation2d/rasterize.d.ts +14 -0
  481. package/dist/segmentation2d/types.d.ts +52 -0
  482. package/dist/select-Ck5LGz-J.cjs +1 -0
  483. package/dist/select-pYRo_win.js +233 -0
  484. package/dist/selectors-C4X71aoD.cjs +1 -0
  485. package/dist/selectors-DmNaKIwE.js +196 -0
  486. package/dist/session-BrH8G7iJ.cjs +31 -0
  487. package/dist/session-DgA_z6O1.js +418 -0
  488. package/dist/settings-BJ7FMBsO.js +111 -0
  489. package/dist/settings-C63FMBlF.cjs +1 -0
  490. package/dist/similarityFit-BFqHND2e.cjs +1 -0
  491. package/dist/similarityFit-Bbz-R8AY.js +91 -0
  492. package/dist/spring/index.d.ts +2 -0
  493. package/dist/spring/spring.d.ts +69 -0
  494. package/dist/spring/swing.d.ts +54 -0
  495. package/dist/subjects/index.d.ts +2 -0
  496. package/dist/subjects/select.d.ts +62 -0
  497. package/dist/subjects/types.d.ts +55 -0
  498. package/dist/tracking-config/apply.d.ts +57 -0
  499. package/dist/tracking-config/index.d.ts +7 -0
  500. package/dist/tracking-config/resolve.d.ts +25 -0
  501. package/dist/tracking-config/storage.d.ts +8 -0
  502. package/dist/tracking-config/types.d.ts +106 -0
  503. package/dist/tracking-config/useXRTrackingConfig.d.ts +38 -0
  504. package/dist/tracking.cjs +10 -1
  505. package/dist/tracking.js +1326 -506
  506. package/dist/trigger-D0Pm9noT.cjs +49 -0
  507. package/dist/trigger-IQeys0oS.js +2128 -0
  508. package/dist/types/compositor.d.ts +21 -0
  509. package/dist/types/face.d.ts +20 -1
  510. package/dist/types/hand-tracking.d.ts +9 -0
  511. package/dist/types/holistic.d.ts +121 -0
  512. package/dist/types/index.d.ts +1 -0
  513. package/dist/types/model.d.ts +22 -2
  514. package/dist/types/nodes.d.ts +47 -3
  515. package/dist/types/segmentation.d.ts +24 -0
  516. package/dist/types/session.d.ts +41 -3
  517. package/dist/updateThrottle-BseecYag.js +4 -0
  518. package/dist/updateThrottle-Of5Y4SVa.cjs +1 -0
  519. package/dist/useFaceInfo-BHDNCvsJ.cjs +1 -0
  520. package/dist/useFaceInfo-J4x7LsqL.js +76 -0
  521. package/dist/useFaceResultReader-BvEo5REG.js +61 -0
  522. package/dist/useFaceResultReader-DuaL1KJG.cjs +1 -0
  523. package/dist/useInstructionHold-DOu-RpCM.js +53 -0
  524. package/dist/useInstructionHold-DwJY1Alr.cjs +1 -0
  525. package/dist/useLandmarkPoseFit-Bg-h9BPb.cjs +1 -0
  526. package/dist/useLandmarkPoseFit-Bmb3h6Mw.js +87 -0
  527. package/dist/useXRCapabilities-Cr3RzuAW.cjs +1 -0
  528. package/dist/useXRCapabilities-Cxmlmpbd.js +30 -0
  529. package/dist/utils/canonicalRigidLandmarks.d.ts +8 -0
  530. package/dist/utils/fns.d.ts +6 -3
  531. package/dist/utils/headOccluderFit.d.ts +42 -0
  532. package/dist/utils/integrity.d.ts +21 -1
  533. package/dist/utils/resolveNumFaces.d.ts +13 -0
  534. package/dist/utils/shoulderOccluderFit.d.ts +38 -0
  535. package/dist/utils/similarityFit.d.ts +23 -0
  536. package/dist/utils/updateThrottle.d.ts +2 -0
  537. package/dist/utils/useStableUniforms.d.ts +18 -0
  538. package/dist/uv-BMFt19bg.cjs +1 -0
  539. package/dist/{index-ByoNj0QP.js → uv-DJU_XfmN.js} +15 -247
  540. package/docs/SDK_DOCUMENTATION.md +1 -2
  541. package/docs/api/adaptive-quality.mdx +104 -0
  542. package/docs/api/asset-lifecycle.mdx +78 -0
  543. package/docs/api/body-instructions.mdx +285 -0
  544. package/docs/api/body-triggers.mdx +234 -0
  545. package/docs/api/camera-permission.mdx +142 -0
  546. package/docs/api/coordinate-spaces.mdx +168 -0
  547. package/docs/api/cross-camera.mdx +89 -0
  548. package/docs/api/debug-ui-scene-editor.mdx +23 -2
  549. package/docs/api/diagnostics-calibration.mdx +97 -0
  550. package/docs/api/external-face-mesh.mdx +231 -0
  551. package/docs/api/face-actions.mdx +20 -16
  552. package/docs/api/face-attribute-expression.mdx +1 -1
  553. package/docs/api/face-binding-anchors.mdx +4 -2
  554. package/docs/api/face-character.mdx +157 -0
  555. package/docs/api/face-effects.mdx +9 -0
  556. package/docs/api/face-expression-controller.mdx +153 -0
  557. package/docs/api/face-info.mdx +17 -11
  558. package/docs/api/face-inset.mdx +204 -0
  559. package/docs/api/face-instructions.mdx +183 -0
  560. package/docs/api/face-liquify.mdx +196 -0
  561. package/docs/api/face-mesh.mdx +8 -9
  562. package/docs/api/face-morph.mdx +117 -0
  563. package/docs/api/face-painting.mdx +7 -0
  564. package/docs/api/face-reprojection.mdx +154 -0
  565. package/docs/api/face-retouching.mdx +18 -10
  566. package/docs/api/face-swap.mdx +350 -0
  567. package/docs/api/face-warp-3d.mdx +166 -0
  568. package/docs/api/faceless.mdx +143 -0
  569. package/docs/api/gestures.mdx +209 -0
  570. package/docs/api/hair.mdx +97 -0
  571. package/docs/api/hand-instructions.mdx +222 -0
  572. package/docs/api/hand-rig.mdx +535 -0
  573. package/docs/api/hand-touch.mdx +162 -0
  574. package/docs/api/head-occluder.mdx +563 -0
  575. package/docs/api/holistic-tracker.mdx +164 -0
  576. package/docs/api/instructions.mdx +323 -0
  577. package/docs/api/iris-tracking.mdx +247 -0
  578. package/docs/api/made-up-camera.mdx +131 -0
  579. package/docs/api/makeup-skin-tone.mdx +135 -0
  580. package/docs/api/makeup.mdx +353 -0
  581. package/docs/api/multi-subject.mdx +98 -0
  582. package/docs/api/particles.mdx +155 -0
  583. package/docs/api/person-cutout.mdx +136 -0
  584. package/docs/api/pin-to-face-mesh.mdx +274 -0
  585. package/docs/api/product-ar.mdx +114 -0
  586. package/docs/api/product-details.mdx +78 -0
  587. package/docs/api/screen-space-coordinates.mdx +4 -1
  588. package/docs/api/segmentation-overlay.mdx +301 -0
  589. package/docs/api/session-lifecycle.mdx +136 -0
  590. package/docs/api/trackers.mdx +5 -0
  591. package/docs/api/tracking-config.mdx +108 -0
  592. package/docs/docs.json +51 -1
  593. package/docs/examples/lip-shaders.mdx +273 -0
  594. package/docs/guides/face-atlas-template.svg +1 -0
  595. package/docs/guides/face-atlas-textures.mdx +186 -0
  596. package/docs/guides/face-texture-template.svg +1 -0
  597. package/docs/guides/harness-debug-ui.mdx +4 -4
  598. package/docs/guides/lip-effect-textures.mdx +368 -0
  599. package/docs/guides/lip-uv-template.png +0 -0
  600. package/docs/guides/lip-uv-template.svg +1 -0
  601. package/docs/guides/makeup-design-textures.mdx +109 -0
  602. package/docs/introduction.mdx +1 -2
  603. package/package.json +23 -1
  604. package/dist/DebuggerUI-B6bP6P9r.cjs +0 -1
  605. package/dist/DebuggerUI-BjOMr8q_.js +0 -269
  606. package/dist/FaceMeshRenderer-C5l6VLdO.cjs +0 -155
  607. package/dist/FaceMeshRenderer-wjAHrJzP.js +0 -1270
  608. package/dist/FaceRetouch-BkJzoA79.cjs +0 -134
  609. package/dist/FaceRetouch-DwbKQJAN.js +0 -551
  610. package/dist/components/FaceWarp3D/FaceWarp3DHead.d.ts +0 -15
  611. package/dist/components/FaceWarp3D/defaults.d.ts +0 -37
  612. package/dist/components/FaceWarp3D/warp.d.ts +0 -13
  613. package/dist/contexts-ByhzppYl.js +0 -663
  614. package/dist/contexts-Dr62It_K.cjs +0 -1
  615. package/dist/debug-ui/face-warp-3d/index.d.ts +0 -6
  616. package/dist/getFaceInfo-C4QpCQIY.js +0 -118
  617. package/dist/getFaceInfo-fA1bFBub.cjs +0 -1
  618. package/dist/index-9dlAQAhy.js +0 -1462
  619. package/dist/index-BjmTe9eM.cjs +0 -1
  620. package/dist/index-BpEf2BBb.cjs +0 -1
  621. package/dist/index-CyUUurQT.cjs +0 -1
  622. package/dist/index-DCiMbxC3.cjs +0 -1
  623. package/dist/index-DXT3WccE.js +0 -2089
  624. package/dist/index-DpI-qo5X.cjs +0 -17
  625. package/dist/index-DyVF4vEW.js +0 -111
  626. package/dist/index-VJ0SJwmG.js +0 -214
  627. package/dist/internal-Cq-TEQ5Y.cjs +0 -1
  628. package/dist/renderLayers-lDtL0_43.cjs +0 -1
  629. package/dist/renderLayers-zrK2pv5O.js +0 -13
  630. package/dist/renderPasses-BOoBSr8z.cjs +0 -21
  631. package/dist/renderPasses-BcquyVtu.js +0 -1500
  632. package/dist/selectors-B8H97CKA.js +0 -59
  633. package/dist/selectors-CZLKT2Iv.cjs +0 -1
  634. package/dist/session-CpkiK5YA.cjs +0 -31
  635. package/dist/session-DLFN_VII.js +0 -363
  636. package/dist/useFaceInfo-BJ8-_MOs.cjs +0 -1
  637. package/dist/useFaceInfo-Dk426LTu.js +0 -62
  638. package/dist/useFaceResults-CtetsO9M.js +0 -19
  639. package/dist/useFaceResults-wBJF3zyp.cjs +0 -1
@@ -0,0 +1,114 @@
1
+ import { MakeupEyeParams } from '../../face-atlas/eyes';
2
+ import { MakeupEyeUniforms } from '../../face-atlas/glsl/eyes';
3
+ import { MakeupShape } from './shapes';
4
+ import { BrowsSettings, EyelinerSettings, EyeshadowSettings } from './types';
5
+ /**
6
+ * Where the eye regions paint (FACE-1): the geometry behind each `shape`
7
+ * preset of `Eyeshadow`, `Eyeliner` and `Brows` that the settings do not
8
+ * hold, the settings → `MAKEUP_GLSL.eyes` uniforms, the blink fades and
9
+ * the atlas triangles each region draws. Shapes are authored on the
10
+ * canonical −X half (frontal cm) and folded onto both eyes; `side` then
11
+ * picks the person's own side(s).
12
+ */
13
+ /** The eye regions. */
14
+ export declare const MAKEUP_EYE_REGIONS: readonly ["eyeshadow", "eyeliner", "brows"];
15
+ export type MakeupEyeRegion = (typeof MAKEUP_EYE_REGIONS)[number];
16
+ /** What an eyeshadow shape adds to its fields: each 0..1. */
17
+ export type MakeupEyeshadowGeometry = {
18
+ /** How much the crease leans to the outer corner (1: it fades to 30 % at the inner corner). */
19
+ readonly outer: number;
20
+ /** A wing swept up and out past the outer corner, in the lid colour toward the crease colour. */
21
+ readonly wing: number;
22
+ /** The inner-corner colour also lights the centre of the lid (a halo eye). */
23
+ readonly halo: number;
24
+ /**
25
+ * The crease band lifts off the lid colour's top edge by this much of its
26
+ * half-width (0: centred on the edge, blending into the lid), holding full
27
+ * from its centre down to the edge and stopping there.
28
+ */
29
+ readonly creaseLift: number;
30
+ /** The lid colour's top edge: 0 feathered by `softness`, 1 sharp (antialiased only). */
31
+ readonly lidSharpness: number;
32
+ };
33
+ /** Per eyeshadow shape (`"custom"`: `lid`'s). */
34
+ export declare const MAKEUP_EYESHADOW_GEOMETRY: Readonly<Record<MakeupShape<"eyeshadow">, MakeupEyeshadowGeometry>>;
35
+ /** What an eyeliner shape adds to its fields. */
36
+ export type MakeupEyelinerGeometry = {
37
+ /** The line's width at the inner corner, relative to its `thickness` at the outer part. */
38
+ readonly taper: number;
39
+ };
40
+ /** Per eyeliner shape (`"custom"`: `classic`'s). */
41
+ export declare const MAKEUP_EYELINER_GEOMETRY: Readonly<Record<MakeupShape<"eyeliner">, MakeupEyelinerGeometry>>;
42
+ /**
43
+ * What a brow shape does to the person's own brow, at its five control
44
+ * points from the tail to the head (`70/46`, `63/53`, `105/52`, `66/65`,
45
+ * `107/55`): `lift` raises the centre line (cm), `width` scales the
46
+ * half-width. `boldness` then scales the whole brow.
47
+ */
48
+ export type MakeupBrowGeometry = {
49
+ readonly lift: readonly number[];
50
+ readonly width: readonly number[];
51
+ };
52
+ /** Per brow shape (`"custom"`: `natural`'s). `bold` and `thin` differ by their `boldness`. */
53
+ export declare const MAKEUP_BROW_GEOMETRY: Readonly<Record<MakeupShape<"brows">, MakeupBrowGeometry>>;
54
+ /** The brow's width scale for a `boldness`: 0.6 at 0, 1 (the person's own) at 0.5, 1.45 at 1. */
55
+ export declare const makeupBrowWidthScale: (boldness: number) => number;
56
+ /** The brow's shaped control points, tail → head: `[x, y, halfWidth]` (cm, −X half). */
57
+ export declare const resolveMakeupBrowPoints: (settings: Pick<BrowsSettings, "shape" | "boldness">) => [number, number, number][];
58
+ /** The eyeliner's width at its outer part, cm (`thickness` is in mm). */
59
+ export declare const makeupEyelinerWidthCm: (settings: Pick<EyelinerSettings, "thickness">) => number;
60
+ /** An eyeliner wing: `[x, y, radius]` (cm, −X half) at its start and its tip. */
61
+ export type MakeupEyelinerWing = {
62
+ start: [number, number, number];
63
+ end: [number, number, number];
64
+ };
65
+ /**
66
+ * The eyeliner wing: from the outer corner (landmark 33), `wing` mm long,
67
+ * `wingAngle` degrees upward from the eye's corner-to-corner axis (up for
68
+ * the person: +Y of the head frame, on both eyes after the fold), as
69
+ * `[x, y, radius]` at its start (the line's width there, smudge included)
70
+ * and its pointed tip; `null` without a wing.
71
+ */
72
+ export declare const resolveMakeupEyelinerWing: (settings: Pick<EyelinerSettings, "thickness" | "wing" | "wingAngle" | "smudge">) => MakeupEyelinerWing | null;
73
+ /** Writes `Eyeshadow` settings into the `MAKEUP_GLSL.eyes` uniforms. */
74
+ export declare const writeEyeshadowUniforms: (uniforms: MakeupEyeUniforms, settings: EyeshadowSettings) => void;
75
+ /** Writes `Eyeliner` settings into the `MAKEUP_GLSL.eyes` uniforms. */
76
+ export declare const writeEyelinerUniforms: (uniforms: MakeupEyeUniforms, settings: EyelinerSettings) => void;
77
+ /** Writes `Brows` settings into the `MAKEUP_GLSL.eyes` uniforms. */
78
+ export declare const writeBrowsUniforms: (uniforms: MakeupEyeUniforms, settings: BrowsSettings) => void;
79
+ /**
80
+ * Writes the face's blinks into `uBlink` from its rig's morphs
81
+ * (`FACE_MORPH_NAMES` order, the person's resting values removed): `x` the
82
+ * canonical −X eye (`eyeBlinkRight`), `y` the +X eye (`eyeBlinkLeft`), on
83
+ * every feed (MediaPipe names blendshapes by the image, so blinks stay on
84
+ * mesh sides). No allocation.
85
+ */
86
+ export declare const writeMakeupBlink: (uniforms: Pick<MakeupEyeUniforms, "uBlink">, morphs: ArrayLike<number>) => void;
87
+ /** The eye uniforms as the TypeScript mirror reads them (`lib/face-atlas/eyes.ts`). */
88
+ export declare const makeupEyeParams: (uniforms: MakeupEyeUniforms & {
89
+ uSoftness: {
90
+ value: number;
91
+ };
92
+ }) => MakeupEyeParams;
93
+ /**
94
+ * Added to every support's reach (cm) when picking triangles: a point inside
95
+ * a triangle near the eyes is within this of one of the triangle's seven
96
+ * sample points (corners, edge midpoints, centroid). `eyes.test.ts` checks
97
+ * it by sampling inside every dropped triangle.
98
+ */
99
+ export declare const MAKEUP_EYE_TRIANGLE_MARGIN_CM = 0.2;
100
+ /**
101
+ * The atlas triangles an eye region draws (indices into
102
+ * `FACE_ATLAS_TRIANGLES`, sorted, cached; never the eye openings, so
103
+ * nothing paints the eyeball): those with a point within reach of what
104
+ * the region's settings can paint, plus `MAKEUP_EYE_TRIANGLE_MARGIN_CM`.
105
+ * Eyeshadow uses one set for every setting; eyeliner follows its width
106
+ * (0.5 mm steps), lower line and wing (1 mm, 5° steps); brows their shape
107
+ * and boldness (0.1 steps). Without settings: everything any settings can
108
+ * paint (for a `sharedMaterial`).
109
+ */
110
+ export declare const getMakeupEyeTriangles: <R extends MakeupEyeRegion>(region: R, settings?: {
111
+ eyeshadow: EyeshadowSettings;
112
+ eyeliner: EyelinerSettings;
113
+ brows: BrowsSettings;
114
+ }[R]) => Uint16Array;
@@ -0,0 +1,10 @@
1
+ import { SettingsPanelField } from '../../debug-ui/settings-panel';
2
+ import { MakeupRegion } from './constants';
3
+ import { MakeupSettings } from './types';
4
+ /**
5
+ * Typed `SettingsPanel` fields per region, covering every settings key.
6
+ * Lips are `LIP_EFFECT_SETTINGS_FIELDS`.
7
+ */
8
+ export declare const MAKEUP_SETTINGS_FIELDS: {
9
+ readonly [R in MakeupRegion]: SettingsPanelField<MakeupSettings[R]>[];
10
+ };
@@ -0,0 +1,106 @@
1
+ import { MakeupShapeUniforms } from '../../face-atlas/glsl/shapes';
2
+ import { MakeupCapsule } from '../../face-atlas/shapes';
3
+ import { MakeupShape } from './shapes';
4
+ import { BlushSettings, ContourSettings, HighlighterSettings } from './types';
5
+ /**
6
+ * Where the face regions (blush, contour, highlighter) paint: each shape
7
+ * preset as soft tapered capsules on the canonical −X half (frontal `x, y`
8
+ * in cm; the ends are dropped onto the face surface along Z), placed by
9
+ * anatomy on the canonical face. `size` scales each capsule about its own
10
+ * middle (length and radius), `lift` moves blush along the cheek toward the
11
+ * temple. The shader folds the face onto this half, so both sides match;
12
+ * `side` then picks the person's own side(s).
13
+ */
14
+ /** The regions drawn as capsule shapes. */
15
+ export declare const MAKEUP_CAPSULE_REGIONS: readonly ["contour", "blush", "highlighter"];
16
+ export type MakeupCapsuleRegion = (typeof MAKEUP_CAPSULE_REGIONS)[number];
17
+ /** A frontal point on the canonical −X half, cm. */
18
+ type ShapePoint = readonly [x: number, y: number];
19
+ /** One capsule of a shape: a blob when `to` is left out; `radius` at `from` (and `to`), cm. */
20
+ export type MakeupCapsuleSpec = {
21
+ readonly from: ShapePoint;
22
+ readonly to?: ShapePoint;
23
+ readonly radius: number | readonly [from: number, to: number];
24
+ /** Strength in the union, 0..1. Default 1. */
25
+ readonly weight?: number;
26
+ };
27
+ type Geometry<R extends MakeupCapsuleRegion> = Readonly<Record<MakeupShape<R>, readonly MakeupCapsuleSpec[]>>;
28
+ /**
29
+ * The capsules of every shape preset, at `size` 1 and `lift` 0. A preset's
30
+ * own `lift` (`MAKEUP_SHAPES`) then moves blush from here.
31
+ */
32
+ export declare const MAKEUP_SHAPE_GEOMETRY: {
33
+ readonly contour: Geometry<"contour">;
34
+ readonly blush: Geometry<"blush">;
35
+ readonly highlighter: Geometry<"highlighter">;
36
+ };
37
+ /**
38
+ * Per region: the eye guard (`eyeRing` hops where the shape starts and is
39
+ * full: off the lash line and lids), the lip guard (the `lipEdge` where the
40
+ * shape is full: it fades to 0 on the outer lip line, over that part of the
41
+ * triangle row around the lips, 0.7 to 1.2 cm wide) and, for blush, the
42
+ * `lift` direction (frontal, unit: from the cheek apple toward the temple)
43
+ * and its reach in cm per unit of `lift`. The highlighter's lip guard is
44
+ * the narrowest, so the cupid's-bow blob of `strobe` keeps its peak.
45
+ */
46
+ export declare const MAKEUP_SHAPE_RULES: {
47
+ readonly [R in MakeupCapsuleRegion]: {
48
+ readonly eyeGuard: readonly [start: number, full: number];
49
+ readonly lipGuard: number;
50
+ readonly lift?: {
51
+ readonly direction: readonly [x: number, y: number];
52
+ readonly cm: number;
53
+ };
54
+ };
55
+ };
56
+ /** The settings fields a capsule shape reads. */
57
+ type ShapeInput<R extends MakeupCapsuleRegion> = Pick<{
58
+ contour: ContourSettings;
59
+ blush: BlushSettings;
60
+ highlighter: HighlighterSettings;
61
+ }[R], "shape" | "size"> & {
62
+ lift?: number;
63
+ };
64
+ /**
65
+ * The capsules a region's settings place on the face (canonical −X half,
66
+ * cm): the shape preset (`"custom"`: the region's default shape), each capsule
67
+ * scaled by `size` about its middle, blush moved by `lift`, the ends on the
68
+ * face surface.
69
+ */
70
+ export declare const resolveMakeupShapeCapsules: <R extends MakeupCapsuleRegion>(region: R, settings: ShapeInput<R>) => MakeupCapsule[];
71
+ /**
72
+ * Writes a region's shape into its uniforms (`MAKEUP_GLSL.shapes`): the
73
+ * capsules (placed again only when `shape`, `size` or `lift` changed), the
74
+ * eye guard and the lip guard. `uSoftness` is a shared layer uniform
75
+ * (`writeMakeupLayerUniforms`).
76
+ */
77
+ export declare const writeMakeupShapeUniforms: <R extends MakeupCapsuleRegion>(uniforms: MakeupShapeUniforms, region: R, settings: ShapeInput<R>) => void;
78
+ /**
79
+ * Added to every capsule's reach (cm) when picking triangles, so a shape
80
+ * that crosses a triangle between its corners still keeps it. It is not a
81
+ * geometric bound: a point inside a face triangle can lie up to about
82
+ * 1.4 cm from its nearest corner (1.2 to 1.3 cm on the cheeks). It holds
83
+ * for the face-region shapes at the sizes they allow (geometry.test.ts
84
+ * samples points inside every dropped triangle); a region with smaller
85
+ * shapes (eyeliner, a wing) needs the same sampled check, or a larger
86
+ * margin.
87
+ */
88
+ export declare const MAKEUP_SHAPE_TRIANGLE_MARGIN_CM = 0.75;
89
+ /** The settings fields the triangle set follows. */
90
+ type TriangleInput<R extends MakeupCapsuleRegion> = ShapeInput<R> & {
91
+ softness: number;
92
+ };
93
+ /**
94
+ * The atlas triangles a capsule region draws (indices into
95
+ * `FACE_ATLAS_TRIANGLES`, sorted, cached): the `"face"` triangles outside the
96
+ * lips with a corner within reach of the shape (`(1 + softness) · radius`
97
+ * plus `MAKEUP_SHAPE_TRIANGLE_MARGIN_CM`), less those entirely inside the
98
+ * eye guard. With `settings`, for that shape at its `size` and `softness`
99
+ * rounded up to quarter steps (blush: both quarter steps around its `lift`),
100
+ * so editing within a step keeps the same array; without, for every shape at
101
+ * the largest size, the softest edge and every lift. Shapes have compact
102
+ * support, so nothing they paint is left out and the rest of the face costs
103
+ * no fragments.
104
+ */
105
+ export declare const getMakeupRegionTriangles: <R extends MakeupCapsuleRegion>(region: R, settings?: TriangleInput<R>) => Uint16Array;
106
+ export {};
@@ -0,0 +1,26 @@
1
+ export { MAKEUP_AUTO_SHADE_REGIONS, MAKEUP_FINISHES, MAKEUP_FINISH_DEFAULTS, MAKEUP_REGIONS, MAKEUP_SIDES, } from './constants';
2
+ export type { MakeupAutoShadeRegion, MakeupFaceRegion, MakeupFinish, MakeupFinishDefaults, MakeupRegion, MakeupSide, } from './constants';
3
+ export { MAKEUP_SHADES, MAKEUP_SHADE_NAMES, isMakeupShadeName, resolveMakeupShade, supportsAutoMakeupShade, } from './shades';
4
+ export type { MakeupShadeName, MakeupShadeSetting } from './shades';
5
+ export { MAKEUP_SHAPES, MAKEUP_SHAPE_NAMES, isMakeupShape } from './shapes';
6
+ export type { MakeupShape } from './shapes';
7
+ export { DEFAULT_MAKEUP_SETTINGS, patchMakeupSettings, resolveMakeupSettings } from './settings';
8
+ export { MAKEUP_SETTINGS_FIELDS } from './fields';
9
+ export { MAKEUP_LOOKS, MAKEUP_LOOK_NAMES, isMakeupLookName, resolveMakeupLook } from './looks';
10
+ export type { MakeupLook, MakeupLookName } from './looks';
11
+ export type { BlushSettings, BrowsSettings, ContourSettings, EyelinerSettings, EyeshadowSettings, HighlighterSettings, MakeupRegionSettings, MakeupSettings, MakeupSettingsInput, } from './types';
12
+ export { Blush, type BlushProps } from './Blush';
13
+ export { Contour, type ContourProps } from './Contour';
14
+ export { Highlighter, type HighlighterProps } from './Highlighter';
15
+ export { Eyeshadow, type EyeshadowProps } from './Eyeshadow';
16
+ export { Eyeliner, type EyelinerProps } from './Eyeliner';
17
+ export { Brows, type BrowsProps } from './Brows';
18
+ export { MakeupDesign, type MakeupDesignProps, type MakeupDesignTexture } from './MakeupDesign';
19
+ export { DEFAULT_MAKEUP_DESIGN_SETTINGS, MAKEUP_DESIGN_SETTINGS_FIELDS, patchMakeupDesignSettings, resolveMakeupDesignSettings, setMakeupDesignTexture, } from './design';
20
+ export type { MakeupDesignSettings } from './design';
21
+ export type { MakeupMaterialContext, MakeupMaterialSpec, MakeupRegionProps } from './MakeupRegion';
22
+ export { createMakeupMaterial, updateMakeupMaterial } from './material';
23
+ export { MAKEUP_SKIN_DEPTHS, MAKEUP_SKIN_READY, MAKEUP_SKIN_TONE, MAKEUP_UNDERTONES, classifyMakeupSkinDepth, classifyMakeupUndertone, computeMakeupSkinTone, nearestMakeupShades, } from './skinTone';
24
+ export type { ComputeMakeupSkinToneOptions, MakeupShadeRecommendations, MakeupSkinDepth, MakeupSkinTone, MakeupSkinToneInput, MakeupUndertone, } from './skinTone';
25
+ export { useMakeupSkinTone, type UseMakeupSkinToneOptions } from './useMakeupSkinTone';
26
+ export type { MakeupMaterial, MakeupMaterialInputs, MakeupMaterialRegion, MakeupMaterialSettings, MakeupUniforms, } from './material';
@@ -0,0 +1,28 @@
1
+ import { MakeupRegion } from './constants';
2
+ import { MakeupSettings, MakeupSettingsInput } from './types';
3
+ export declare const MAKEUP_LOOK_NAMES: readonly ["natural", "softGlam", "sunKissed", "glam", "smokyEye", "boldLip", "editorial", "glitter"];
4
+ export type MakeupLookName = (typeof MAKEUP_LOOK_NAMES)[number];
5
+ /**
6
+ * A complete look: partial settings for all seven regions. Every region a
7
+ * look uses sets `enabled`, `shape` (lips: `preset`), `shade`, `opacity` and
8
+ * `finish`; a region it leaves bare is `{ enabled: false }`. Spread each
9
+ * region into its component and override after the spread. That works
10
+ * because a look region is partial; to change resolved settings (from
11
+ * `resolveMakeupLook` or `resolveMakeupSettings`), use `patchMakeupSettings`.
12
+ */
13
+ export type MakeupLook = {
14
+ label: string;
15
+ description: string;
16
+ } & {
17
+ [R in MakeupRegion]: Partial<MakeupSettings[R]>;
18
+ };
19
+ /** Eight named looks. `"auto"` shades appear only in `natural`. */
20
+ export declare const MAKEUP_LOOKS: Record<MakeupLookName, MakeupLook>;
21
+ export declare const isMakeupLookName: (value: unknown) => value is MakeupLookName;
22
+ /**
23
+ * A look (by name, or your own `MakeupLook`) with every region fully
24
+ * resolved, ready for panels and stores. `overrides` merge per region over
25
+ * the look, e.g. `{ blush: { shade: "coral" } }`. An unknown name resolves
26
+ * `natural`.
27
+ */
28
+ export declare const resolveMakeupLook: (look: MakeupLookName | MakeupLook, overrides?: MakeupSettingsInput) => MakeupSettings;
@@ -0,0 +1,239 @@
1
+ import { MakeupShadingUniforms, MakeupShapeUniforms } from '../../face-atlas/glsl';
2
+ import { FaceAtlasQualityKey } from '../../face-atlas/quality';
3
+ import { FaceAtlasSurfaceHandle } from '../FaceAtlas/useFaceAtlasSurface';
4
+ import { MakeupFinish, MakeupSide } from './constants';
5
+ import { MakeupDesignSettings } from './design';
6
+ import { MakeupSettings } from './types';
7
+ import * as THREE from "three";
8
+ /**
9
+ * Makeup materials (FACE-1): one `ShaderMaterial` per region instance, built
10
+ * from `MAKEUP_GLSL` (the atlas vertex shader; common → shading → sparkle →
11
+ * finish → shapes, then the region's `main()`), drawn with `MAKEUP_BLENDING`.
12
+ * Every look, shade, shape, finish, side and tier change is a uniform, so
13
+ * nothing recompiles after the first draw, and regions with the same shader
14
+ * source (blush, contour and highlighter) share one GPU program. A design
15
+ * (`MakeupDesign`) adds `design` after `shapes` and reads its art instead
16
+ * of a shape. The eye regions (eyeshadow, eyeliner, brows) add `eyes` after
17
+ * `shapes`, each with its own `main()`.
18
+ */
19
+ /**
20
+ * The regions with a material here: the six makeup face regions and
21
+ * `"design"`, `MakeupDesign`'s creator art in the face atlas (with
22
+ * `MakeupDesignSettings`).
23
+ */
24
+ export declare const MAKEUP_MATERIAL_REGIONS: readonly ["contour", "blush", "highlighter", "eyeshadow", "eyeliner", "brows", "design"];
25
+ export type MakeupMaterialRegion = (typeof MAKEUP_MATERIAL_REGIONS)[number];
26
+ /**
27
+ * The settings each material region reads: `MakeupSettings[region]` for the
28
+ * makeup regions, `MakeupDesignSettings` for `"design"`. The core resolves
29
+ * and merges settings through the program (`resolve`, `patch`), never
30
+ * through `MakeupSettings` directly.
31
+ */
32
+ export type MakeupMaterialSettings = Pick<MakeupSettings, Exclude<MakeupMaterialRegion, "design">> & {
33
+ design: MakeupDesignSettings;
34
+ };
35
+ /**
36
+ * The fields every drawn layer turns into the shared shading uniforms
37
+ * (`MakeupRegionSettings` has them all; `MakeupDesignSettings` has no
38
+ * `shade` or `softness`).
39
+ */
40
+ export type MakeupLayerSettings = {
41
+ enabled: boolean;
42
+ shade?: string;
43
+ color: string;
44
+ opacity: number;
45
+ coverage: number;
46
+ finish: MakeupFinish;
47
+ shine: number;
48
+ sparkleColor: string;
49
+ sparkleDensity: number;
50
+ sparkleSize: number;
51
+ softness?: number;
52
+ side: MakeupSide;
53
+ };
54
+ /**
55
+ * A makeup material's uniforms: every uniform `MAKEUP_GLSL` declares (the
56
+ * atlas vertex shader, the shading chunks and the shapes) plus the region's
57
+ * own. Values are linear colours, canonical cm and 0..1 amounts.
58
+ */
59
+ export type MakeupUniforms = MakeupShadingUniforms & MakeupShapeUniforms & {
60
+ [name: string]: THREE.IUniform;
61
+ };
62
+ /**
63
+ * What a region plugs into the makeup core (`MakeupRegionLayer`) and the
64
+ * material API. The face regions use capsule shapes; eye regions and
65
+ * designs add their own entries with their own `main()`, settings type,
66
+ * `resolve` / `patch` and uniforms.
67
+ */
68
+ export type MakeupRegionProgram<S extends MakeupLayerSettings> = {
69
+ /** The complete fragment shader (built on first use, then cached). */
70
+ fragmentShader: () => string;
71
+ /**
72
+ * The region's own uniforms, beyond `MAKEUP_GLSL`'s, with neutral values.
73
+ * Inputs that are not settings (a design texture) reach the core as its
74
+ * `uniforms` prop, whose entries replace these.
75
+ */
76
+ createUniforms: () => Record<string, THREE.IUniform>;
77
+ /** Complete, clamped settings from a partial (`resolveMakeupSettings(region, …)` for the regions). */
78
+ resolve: (input?: Partial<S>) => S;
79
+ /**
80
+ * An edit applied to resolved settings (`patchMakeupSettings(region, …)`
81
+ * for the regions): a sparse edit keeps every other value.
82
+ */
83
+ patch: (current: S, edit: Partial<S>) => S;
84
+ /** Region uniforms from resolved settings (shape, extra colours). Called on every settings change. */
85
+ updateUniforms: (uniforms: MakeupUniforms, settings: S) => void;
86
+ /**
87
+ * The atlas triangles the region draws for these settings; without
88
+ * settings, every triangle any settings can paint (for a material whose
89
+ * settings the core does not know: `sharedMaterial`). Return a cached
90
+ * array (the same one while the shape's reach is the same): a new array
91
+ * rebuilds the layer's index buffer.
92
+ */
93
+ triangles: (settings?: S) => ArrayLike<number>;
94
+ /** `MAKEUP_AUTO_SHADE_ID` used when `shade` is `"auto"` (0: no auto shade). */
95
+ autoShade: number;
96
+ /** Default draw order (`MAKEUP_RENDER_ORDER`). */
97
+ renderOrder: number;
98
+ /** Per-frame updates from the face (e.g. blink fades from `handle.rig.current.morphs`). */
99
+ onFrame?: (uniforms: MakeupUniforms, handle: FaceAtlasSurfaceHandle) => void;
100
+ };
101
+ /** The program of every material region. */
102
+ export declare const MAKEUP_REGION_PROGRAMS: {
103
+ readonly [R in MakeupMaterialRegion]: MakeupRegionProgram<MakeupMaterialSettings[R]>;
104
+ };
105
+ /** A fresh uniforms object for a region's material (neutral until settings are written). */
106
+ export declare const createMakeupUniforms: (region: MakeupMaterialRegion) => MakeupUniforms;
107
+ /** Options for writing settings into makeup uniforms (each written only when given). */
108
+ export type MakeupUniformOptions = {
109
+ /**
110
+ * The quality tier: `"low"` turns shimmer into a smooth sheen and halves
111
+ * glitter density (`uSparkleQuality` 0). Uniforms start at `"high"`.
112
+ */
113
+ quality?: FaceAtlasQualityKey;
114
+ /**
115
+ * Whether the feed is mirrored, for `uPersonLeftSign` (#298). Leave it out
116
+ * when a `FaceAtlasLayer` owns that uniform (the region components do).
117
+ */
118
+ mirrored?: boolean;
119
+ };
120
+ /**
121
+ * Writes the shared shading uniforms from a layer's resolved settings: the
122
+ * shade (`uColor`, linear; `uAutoShade` for `"auto"`), opacity, coverage,
123
+ * finish, shine, sparkle, softness and the person's sides (`uSide`); then
124
+ * `uSparkleQuality` and `uPersonLeftSign` when `quality` / `mirrored` are
125
+ * given.
126
+ */
127
+ export declare const writeMakeupLayerUniforms: (uniforms: MakeupUniforms, settings: MakeupLayerSettings, autoShade: number, options?: MakeupUniformOptions) => void;
128
+ /** Writes a region's resolved settings into its uniforms: the shared ones, then the region's own. */
129
+ export declare const writeMakeupUniforms: <R extends MakeupMaterialRegion>(uniforms: MakeupUniforms, region: R, settings: MakeupMaterialSettings[R], options?: MakeupUniformOptions) => void;
130
+ /** The render state of every makeup material. */
131
+ export declare const MAKEUP_MATERIAL_STATE: Readonly<{
132
+ readonly depthWrite: false;
133
+ readonly depthTest: true;
134
+ readonly depthFunc: 3;
135
+ readonly side: 0;
136
+ readonly toneMapped: false;
137
+ readonly glslVersion: "300 es";
138
+ readonly blending: 5;
139
+ readonly blendEquation: 100;
140
+ readonly blendSrc: 201;
141
+ readonly blendDst: 205;
142
+ readonly blendSrcAlpha: 201;
143
+ readonly blendDstAlpha: 205;
144
+ readonly transparent: false;
145
+ }>;
146
+ /** A makeup region's material (`createMakeupMaterial`). */
147
+ export type MakeupMaterial<R extends MakeupMaterialRegion = MakeupMaterialRegion> = THREE.ShaderMaterial & {
148
+ uniforms: MakeupUniforms;
149
+ userData: {
150
+ makeupRegion: R;
151
+ /** The resolved settings `updateMakeupMaterial` last wrote; unset before the first. */
152
+ makeupSettings?: MakeupMaterialSettings[R];
153
+ };
154
+ };
155
+ /**
156
+ * A region's built-in material: `MAKEUP_GLSL.atlasVertex`, the region's
157
+ * fragment shader, `MAKEUP_BLENDING` in the opaque pass, depth-tested
158
+ * (`LessEqual`, no depth writes). Its uniforms start neutral: write
159
+ * settings with `updateMakeupMaterial`. Draw it on a `FaceAtlasLayer`
160
+ * (spread the layer's `ctx.uniforms` entries in for the camera and
161
+ * presence) or let a region component own it. You dispose it.
162
+ */
163
+ export declare const createMakeupMaterial: <R extends MakeupMaterialRegion>(region: R, uniforms?: MakeupUniforms) => MakeupMaterial<R>;
164
+ /** Whether a material came from `createMakeupMaterial`. */
165
+ export declare const isMakeupMaterial: (material: THREE.Material) => material is MakeupMaterial;
166
+ /** What `updateMakeupMaterial` writes: every field is optional, and only what is given changes. */
167
+ export type MakeupMaterialInputs<R extends MakeupMaterialRegion = MakeupMaterialRegion> = MakeupUniformOptions & {
168
+ /**
169
+ * An edit, merged into the material's current settings as the
170
+ * components merge edits (`patchMakeupSettings`): `{ opacity: 0.5 }`
171
+ * keeps the shade, finish and shape; a new `shape` or `finish` brings
172
+ * its own values. The first edit starts from the region's defaults.
173
+ */
174
+ settings?: Partial<MakeupMaterialSettings[R]>;
175
+ };
176
+ /**
177
+ * Merges an edit into a material from `createMakeupMaterial` (uniforms
178
+ * only: it never recompiles). `settings` is merged into the settings it
179
+ * last wrote (kept resolved in `material.userData.makeupSettings`);
180
+ * `quality` and `mirrored` are written only when given. A call with one
181
+ * field changes only that field.
182
+ */
183
+ export declare const updateMakeupMaterial: <R extends MakeupMaterialRegion>(material: MakeupMaterial<R>, { settings, quality, mirrored }?: MakeupMaterialInputs<R>) => MakeupMaterial<R>;
184
+ /**
185
+ * Points a makeup material's skin uniforms at a probe's (`useFaceSkin().uniforms`
186
+ * or `FaceSkinProbe.uniforms`): the same `{ value }` objects, so they follow
187
+ * the probe with no copying.
188
+ */
189
+ export declare const bindMakeupSkinUniforms: (uniforms: MakeupUniforms, skin: {
190
+ uSkinMap: THREE.IUniform;
191
+ uSkinLod: THREE.IUniform;
192
+ uSkinSqrt: THREE.IUniform;
193
+ uSkinStats: THREE.IUniform;
194
+ uSkinStatsPacked: THREE.IUniform;
195
+ }) => void;
196
+ /**
197
+ * Points a makeup material's per-layer uniforms at a `FaceAtlasLayer`'s
198
+ * (`ctx.uniforms`): the camera feed, the presence fade and the layer's
199
+ * `uPersonLeftSign`.
200
+ */
201
+ export declare const bindMakeupLayerUniforms: (uniforms: MakeupUniforms, layer: {
202
+ uCameraMap: THREE.IUniform;
203
+ uPresence: THREE.IUniform;
204
+ uPersonLeftSign: THREE.IUniform;
205
+ }) => void;
206
+ /**
207
+ * A draw copy of a makeup material for one face: the same shaders (so the
208
+ * same compiled program), the same render state, and the source's own
209
+ * uniform objects (its settings, written by `updateMakeupMaterial` or in
210
+ * `useFrame`, reach it at once), except the per-face ones (camera,
211
+ * presence, sides, skin probe), which the core binds into the copy only.
212
+ * The source is never changed, so one material can be shared across faces.
213
+ * Keep it current with `syncMakeupFaceCopy`; dispose it when done (the
214
+ * program stays while the source or another copy uses it).
215
+ */
216
+ export declare const createMakeupFaceCopy: <R extends MakeupMaterialRegion>(source: MakeupMaterial<R>) => MakeupMaterial<R>;
217
+ /**
218
+ * Follows a source's uniform objects that were replaced or added since the
219
+ * copy was made (not the per-face ones), and its shaders. No allocation.
220
+ */
221
+ export declare const syncMakeupFaceCopy: (copy: MakeupMaterial, source: MakeupMaterial) => void;
222
+ /** Longest wait for a program warm-up before the region shows anyway (ms). */
223
+ export declare const MAKEUP_WARM_UP_TIMEOUT_MS = 2000;
224
+ /**
225
+ * Disposes a makeup material once no `warmUpMakeupMaterial` compile of it
226
+ * is in flight (at once when none is). A later warm-up of the same material
227
+ * (it is in use again, e.g. on React StrictMode's second mount) cancels the
228
+ * wait.
229
+ */
230
+ export declare const disposeMakeupMaterial: (material: THREE.Material) => void;
231
+ /**
232
+ * Compiles a makeup material's program off the main thread where the GPU
233
+ * allows (`renderer.compileAsync`, KHR_parallel_shader_compile), so its
234
+ * first draw does not stall a frame. Resolves when the program is ready,
235
+ * after `MAKEUP_WARM_UP_TIMEOUT_MS` at most, or at once on a renderer
236
+ * without `compileAsync`. Never rejects. Dispose the material with
237
+ * `disposeMakeupMaterial`, which waits for the compile to settle.
238
+ */
239
+ export declare const warmUpMakeupMaterial: (renderer: THREE.WebGLRenderer, material: THREE.Material, camera: THREE.Camera, scene: THREE.Scene) => Promise<void>;
@@ -0,0 +1,54 @@
1
+ import { MakeupFaceRegion, MakeupRegion } from './constants';
2
+ import { MakeupSettings } from './types';
3
+ /**
4
+ * Complete defaults per region. Every region draws (`enabled: true`) with its
5
+ * first-listed character: blush `apples` in `rose`, contour `soft` in
6
+ * `medium`, highlighter `cheekbones` in shimmering `champagne`, eyeshadow
7
+ * `lid` in `taupe`, eyeliner `classic` in `black`, brows `natural` in
8
+ * `mediumBrown`. Lips are `DEFAULT_LIP_EFFECT_SETTINGS`.
9
+ */
10
+ export declare const DEFAULT_MAKEUP_SETTINGS: {
11
+ readonly [R in MakeupRegion]: MakeupSettings[R];
12
+ };
13
+ type Range = readonly [min: number, max: number];
14
+ /** Inclusive clamp range of every numeric field of the six face regions. */
15
+ export declare const MAKEUP_SETTINGS_RANGES: {
16
+ readonly [R in MakeupFaceRegion]: Readonly<Partial<Record<keyof MakeupSettings[R], Range>>>;
17
+ };
18
+ /**
19
+ * Resolve partial settings for one region to a complete, clamped set. Order:
20
+ * defaults → shape → the finish's `shine` and sparkle values → the shade's
21
+ * colour → every explicit value. Invalid values fall back to that order's
22
+ * value. `"lips"` delegates to `resolveLipEffectSettings` (its `preset` plays
23
+ * the part of `shape`).
24
+ *
25
+ * Every value of the input counts as explicit. Spreading a look region (a
26
+ * partial) and overriding after it works. A resolved object instead carries
27
+ * the values its shape and finish produced (`size`, `coverage`, `shine`,
28
+ * sparkle…), so a `shape` or `finish` spread after it changes nothing else:
29
+ * edit resolved settings with `patchMakeupSettings`. A named shade spread
30
+ * after a resolved object still replaces a colour that a shade produced, not
31
+ * a custom one (see `resolveMakeupShadePair`).
32
+ */
33
+ export declare function resolveMakeupSettings<R extends MakeupRegion>(region: R, input?: Partial<MakeupSettings[R]>): MakeupSettings[R];
34
+ /**
35
+ * Apply an edit to one region, from a panel (the whole object) or from code
36
+ * (a sparse patch):
37
+ *
38
+ * - a `shape` that differs from the current one re-applies that shape;
39
+ * - a `finish` that differs re-applies its `shine` and sparkle values;
40
+ * - a named or `"auto"` shade keeps setting its colour, and a colour that
41
+ * differs from the current one makes its shade `"custom"`;
42
+ * - the patch's other values win over the shape's and finish's values.
43
+ *
44
+ * A whole-object patch counts only the fields that differ from `current`, so
45
+ * its unchanged fields never pin the old shape's or finish's values. A sparse
46
+ * patch (one that leaves out fields of `current`) keeps every value it sets,
47
+ * also one equal to the current value: `{ finish: "gloss", shine: 0.3 }`
48
+ * keeps `shine` 0.3.
49
+ *
50
+ * `"lips"` delegates to `patchLipEffectSettings` (a different `preset`
51
+ * re-applies that preset).
52
+ */
53
+ export declare function patchMakeupSettings<R extends MakeupRegion>(region: R, current: MakeupSettings[R], patch: Partial<MakeupSettings[R]>): MakeupSettings[R];
54
+ export {};