@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,74 @@
1
+ import { ParsedCanonicalMesh } from '../FaceMesh/canonical/parseCanonicalFaceModel';
2
+ /** Lip extent in the face atlas (`v` grows upward, as in the OBJ). */
3
+ export type LipUvBounds = {
4
+ minU: number;
5
+ maxU: number;
6
+ minV: number;
7
+ maxV: number;
8
+ /** `v` of the mouth line (mean of the inner ring); above it is the upper lip. */
9
+ mouthV: number;
10
+ };
11
+ /**
12
+ * Lip region of the face atlas, rounded. `getLipUvBounds()` gives the exact
13
+ * values from the bundled atlas data.
14
+ */
15
+ export declare const CANONICAL_LIP_UV_BOUNDS: LipUvBounds;
16
+ export type LipUvGuideOptions = {
17
+ /** Pixel size of the square texture canvas the guide represents. Default 1024. */
18
+ size?: number;
19
+ /** Frame the whole canvas (the design contract) or zoom onto the lip region. Default "canvas". */
20
+ region?: "canvas" | "lips";
21
+ /** Draw the lip triangle wireframe. Default true. */
22
+ wireframe?: boolean;
23
+ /** Draw orientation and region labels. Default true. */
24
+ labels?: boolean;
25
+ /** Fill the canvas with a colour. Omit for a transparent background. */
26
+ background?: string;
27
+ };
28
+ /** The guide's colours: the face atlas guide's `lips` and `mouth` colours, and its wireframe and text. */
29
+ export declare const LIP_UV_GUIDE_COLORS: {
30
+ outerRing: string;
31
+ innerRing: string;
32
+ wireframe: string;
33
+ text: string;
34
+ frame: string;
35
+ };
36
+ /**
37
+ * Convert a face-atlas UV to texture pixel space. `TextureLoader` textures are
38
+ * `flipY`, so `v = 1` is the top row of the image (`faceAtlasUvToPixel`).
39
+ */
40
+ export declare const lipUvToPixel: (u: number, v: number, size: number) => {
41
+ x: number;
42
+ y: number;
43
+ };
44
+ /**
45
+ * Bounding box of the outer lip ring in the face atlas, plus the mouth line.
46
+ * Without an argument it reads the bundled atlas (`FACE_ATLAS_UVS`), which
47
+ * is what `LipEffect` samples; with a parsed canonical mesh it reads that
48
+ * mesh's `uv` attribute (the same layout).
49
+ */
50
+ export declare const getLipUvBounds: (mesh?: ParsedCanonicalMesh) => LipUvBounds;
51
+ /**
52
+ * Render the creator-facing lip template as an SVG string. It is the face
53
+ * atlas guide (`createFaceAtlasGuideSvg`) for the `lips` and `mouth` regions,
54
+ * drawn from the bundled atlas data `LipEffect` samples, plus the lip
55
+ * triangle wireframe and lip labels: which side of the image is which side
56
+ * of the person (image-left = the person's right, on every feed), the upper
57
+ * and lower lip, and the lip region's extent. `region: "lips"` zooms onto
58
+ * the lips.
59
+ *
60
+ * `createLipUvGuideSvg(mesh, options)` (alpha.8) still works; the mesh is
61
+ * no longer read, since its UVs are the atlas.
62
+ */
63
+ export declare const createLipUvGuideSvg: (meshOrOptions?: ParsedCanonicalMesh | LipUvGuideOptions, maybeOptions?: LipUvGuideOptions) => string;
64
+ /**
65
+ * The guide as an `image/svg+xml` data URL, loadable with `THREE.TextureLoader`
66
+ * or an `<img>`. Takes `(options)` or alpha.8's `(mesh, options)`.
67
+ */
68
+ export declare const createLipUvGuideDataUrl: (meshOrOptions?: ParsedCanonicalMesh | LipUvGuideOptions, maybeOptions?: LipUvGuideOptions) => string;
69
+ /**
70
+ * Rasterize the guide to a PNG `Blob` in the browser (an `<img>` and a 2D
71
+ * canvas), for download or for use as a texture. Transparent unless
72
+ * `options.background` is set. Takes `(options)` or alpha.8's `(mesh, options)`.
73
+ */
74
+ export declare const createLipUvGuidePngBlob: (meshOrOptions?: ParsedCanonicalMesh | LipUvGuideOptions, maybeOptions?: LipUvGuideOptions) => Promise<Blob>;
@@ -0,0 +1,18 @@
1
+ import { MakeupRegionProps } from './MakeupRegion';
2
+ import { BlushSettings } from './types';
3
+ /** `<Blush>` props: any `BlushSettings` (resolved like `resolveMakeupSettings("blush", …)`) plus the region props. */
4
+ export type BlushProps = Partial<BlushSettings> & MakeupRegionProps<"blush">;
5
+ /**
6
+ * Blush on the cheeks of the live face: soft, Gaussian-like shapes placed
7
+ * by `shape` (`apples`, `lifted`, `draped`, `sunKissed`), `size` and `lift`
8
+ * (toward the temple), shaded relative to the person's own skin and light.
9
+ * Works alone (no `FaceTracker` or Suspense needed), inside a `FaceTracker`
10
+ * (that face), or nested in a `FaceRig` / `FaceWarp3D` / `FaceMorph` (it
11
+ * rides that face). `enabled={false}` draws and costs nothing.
12
+ *
13
+ * ```tsx
14
+ * <Blush shade="rose" />
15
+ * <Blush {...MAKEUP_LOOKS.glam.blush} shade="coral" />
16
+ * ```
17
+ */
18
+ export declare const Blush: ({ faceIndex, numFaces, mirrored, renderOrder, material, sharedMaterial, ...settings }: BlushProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,20 @@
1
+ import { MakeupRegionProps } from './MakeupRegion';
2
+ import { BrowsSettings } from './types';
3
+ /** `<Brows>` props: any `BrowsSettings` (resolved like `resolveMakeupSettings("brows", …)`) plus the region props. */
4
+ export type BrowsProps = Partial<BrowsSettings> & MakeupRegionProps<"brows">;
5
+ /**
6
+ * Brows on the live face, built on the person's own brow: `shape`
7
+ * (`natural`, `softArch`, `straight`, `highArch`, `bold`, `thin`) reshapes
8
+ * its centre line, `boldness` its width (0.5 = their own), `fill` mixes a
9
+ * tint of only the real hairs (0) toward a full powder shape (1), and
10
+ * `strokes` adds procedural hair strokes. Shaded relative to the person's
11
+ * own skin and light; `shade: "auto"` is their own brow-hair colour.
12
+ * Works alone, inside a `FaceTracker`, or nested in a `FaceRig` /
13
+ * `FaceWarp3D` / `FaceMorph`. `enabled={false}` draws and costs nothing.
14
+ *
15
+ * ```tsx
16
+ * <Brows shape="softArch" shade="softBrown" />
17
+ * <Brows shade="auto" fill={0} />
18
+ * ```
19
+ */
20
+ export declare const Brows: ({ faceIndex, numFaces, mirrored, renderOrder, material, sharedMaterial, ...settings }: BrowsProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,17 @@
1
+ import { MakeupRegionProps } from './MakeupRegion';
2
+ import { ContourSettings } from './types';
3
+ /** `<Contour>` props: any `ContourSettings` (resolved like `resolveMakeupSettings("contour", …)`) plus the region props. */
4
+ export type ContourProps = Partial<ContourSettings> & MakeupRegionProps<"contour">;
5
+ /**
6
+ * Contour on the live face: soft tapered lines in the cheek hollows, along
7
+ * the jaw, at the temples and down the sides of the nose, placed by `shape`
8
+ * (`soft`, `sculpted`, `bronzed`, `nose`) and `size`, shaded relative to the
9
+ * person's own skin and light (`shade: "auto"` darkens their own skin).
10
+ * Works alone, inside a `FaceTracker`, or nested in a `FaceRig` /
11
+ * `FaceWarp3D` / `FaceMorph`. `enabled={false}` draws and costs nothing.
12
+ *
13
+ * ```tsx
14
+ * <Contour shape="sculpted" shade="tan" />
15
+ * ```
16
+ */
17
+ export declare const Contour: ({ faceIndex, numFaces, mirrored, renderOrder, material, sharedMaterial, ...settings }: ContourProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,20 @@
1
+ import { MakeupRegionProps } from './MakeupRegion';
2
+ import { EyelinerSettings } from './types';
3
+ /** `<Eyeliner>` props: any `EyelinerSettings` (resolved like `resolveMakeupSettings("eyeliner", …)`) plus the region props. */
4
+ export type EyelinerProps = Partial<EyelinerSettings> & MakeupRegionProps<"eyeliner">;
5
+ /**
6
+ * Eyeliner on the live face: a line along the upper lashes (`thickness` mm
7
+ * at its outer part, tapering toward the inner corner), an optional `lower`
8
+ * line (it fades while blinking), a `wing` (mm) swept `wingAngle` degrees
9
+ * upward in the person's frame past the outer corner, and `smudge`, placed
10
+ * by `shape` (`tightline`, `classic`, `winged`, `catEye`, `smudged`, `kohl`)
11
+ * and shaded relative to the person's own skin and light. Never paints the
12
+ * eyeball. Works alone, inside a `FaceTracker`, or nested in a `FaceRig` /
13
+ * `FaceWarp3D` / `FaceMorph`. `enabled={false}` draws and costs nothing.
14
+ *
15
+ * ```tsx
16
+ * <Eyeliner shape="winged" />
17
+ * <Eyeliner shape="catEye" wingAngle={30} side="left" />
18
+ * ```
19
+ */
20
+ export declare const Eyeliner: ({ faceIndex, numFaces, mirrored, renderOrder, material, sharedMaterial, ...settings }: EyelinerProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,20 @@
1
+ import { MakeupRegionProps } from './MakeupRegion';
2
+ import { EyeshadowSettings } from './types';
3
+ /** `<Eyeshadow>` props: any `EyeshadowSettings` (resolved like `resolveMakeupSettings("eyeshadow", …)`) plus the region props. */
4
+ export type EyeshadowProps = Partial<EyeshadowSettings> & MakeupRegionProps<"eyeshadow">;
5
+ /**
6
+ * Eyeshadow on the live face's lids: the shade from the lash line up to
7
+ * `height` of the way to the brow, a `crease` band in `creaseShade` at its
8
+ * top edge, shadow along the `lower` lash line (it fades while blinking) and
9
+ * an `inner`-corner highlight in `innerShade`, placed by `shape` (`lid`,
10
+ * `crease`, `smoky`, `cutCrease`, `halo`, `winged`) and shaded relative to
11
+ * the person's own skin and light. Never paints the eyeball. Works alone,
12
+ * inside a `FaceTracker`, or nested in a `FaceRig` / `FaceWarp3D` /
13
+ * `FaceMorph`. `enabled={false}` draws and costs nothing.
14
+ *
15
+ * ```tsx
16
+ * <Eyeshadow shape="crease" shade="warmBrown" creaseShade="espresso" />
17
+ * <Eyeshadow {...MAKEUP_LOOKS.smokyEye.eyeshadow} />
18
+ * ```
19
+ */
20
+ export declare const Eyeshadow: ({ faceIndex, numFaces, mirrored, renderOrder, material, sharedMaterial, ...settings }: EyeshadowProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,18 @@
1
+ import { MakeupRegionProps } from './MakeupRegion';
2
+ import { HighlighterSettings } from './types';
3
+ /** `<Highlighter>` props: any `HighlighterSettings` (resolved like `resolveMakeupSettings("highlighter", …)`) plus the region props. */
4
+ export type HighlighterProps = Partial<HighlighterSettings> & MakeupRegionProps<"highlighter">;
5
+ /**
6
+ * Highlighter on the high points of the live face: soft blobs on the
7
+ * cheekbones, brow bone, nose bridge, cupid's bow and chin, placed by
8
+ * `shape` (`cheekbones`, `strobe`, `glow`, `nose`) and `size`. Defaults to a
9
+ * `shimmer` finish in `champagne`. Its own region, so a look can switch
10
+ * contour off and keep the glow. Works alone, inside a `FaceTracker`, or
11
+ * nested in a `FaceRig` / `FaceWarp3D` / `FaceMorph`. `enabled={false}`
12
+ * draws and costs nothing.
13
+ *
14
+ * ```tsx
15
+ * <Highlighter shape="strobe" finish="metallic" shade="gold" />
16
+ * ```
17
+ */
18
+ export declare const Highlighter: ({ faceIndex, numFaces, mirrored, renderOrder, material, sharedMaterial, ...settings }: HighlighterProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,37 @@
1
+ import { MakeupDesignSettings } from './design';
2
+ import { MakeupRegionProps } from './MakeupRegion';
3
+ import * as THREE from "three";
4
+ /** Art for `MakeupDesign`: a URL, a texture you own, or nothing. */
5
+ export type MakeupDesignTexture = string | THREE.Texture | null;
6
+ /** `<MakeupDesign>` props: any `MakeupDesignSettings`, the art and the region props. */
7
+ export type MakeupDesignProps = Partial<MakeupDesignSettings> & MakeupRegionProps<"design"> & {
8
+ /**
9
+ * The art, painted in the face atlas as on an unmirrored photo
10
+ * (image-left = the person's right; template `docs/guides/face-atlas-template.svg`):
11
+ * a URL (PNG, WebP or SVG with a size; loaded without Suspense, owned
12
+ * and disposed here) or a `THREE.Texture` you own (never changed;
13
+ * read as sRGB unless tagged `LinearSRGBColorSpace`). `null` / `""`
14
+ * draws nothing. With `sharedMaterial` the material's own art is used.
15
+ */
16
+ texture?: MakeupDesignTexture;
17
+ };
18
+ /**
19
+ * Creator art painted on the live face, in the face atlas (FACE-1):
20
+ * freckles, face gems, graphic liner, face paint. The art is shaded like
21
+ * makeup (relative to the person's own skin and light, with a `finish`),
22
+ * its alpha is the mask and its colours are the paint (`color` tints them).
23
+ * Each side of the art stays on the person's own side on every feed: on the
24
+ * mirrored webcam the art is sampled at `(1 − u, v)`.
25
+ *
26
+ * Works alone (no `FaceTracker` or Suspense), inside a `FaceTracker` (that
27
+ * face), or nested in a `FaceRig` / `FaceWarp3D` / `FaceMorph` (it rides that
28
+ * face). Draws at `MAKEUP_RENDER_ORDER.design` (-1.68): over the eye
29
+ * regions, under the lips. Nothing draws until the art has loaded (a custom
30
+ * `material` draws at once: a procedural design needs no art).
31
+ *
32
+ * ```tsx
33
+ * <MakeupDesign texture="/makeup/freckles.svg" region={["nose", "cheeks"]} coverage={0.4} opacity={0.7} />
34
+ * <MakeupDesign texture="/makeup/face-gems.svg" finish="gloss" />
35
+ * ```
36
+ */
37
+ export declare const MakeupDesign: ({ texture, faceIndex, numFaces, mirrored, renderOrder, material, sharedMaterial, ...settings }: MakeupDesignProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,132 @@
1
+ import { FaceAtlasMaterialContext, FaceAtlasMaterialResult } from '../FaceAtlas/FaceAtlasLayer';
2
+ import { FaceSkinReference } from '../FaceAtlas/useFaceSkin';
3
+ import { MakeupMaterialRegion, MakeupMaterialSettings, MakeupUniforms } from './material';
4
+ import type * as THREE from "three";
5
+ /**
6
+ * The makeup region core (FACE-1): what `Blush`, `Contour`, `Highlighter`,
7
+ * `Eyeshadow`, `Eyeliner`, `Brows` and `MakeupDesign` are built on. One region on one face is
8
+ * one `FaceAtlasLayer` mesh over the region's atlas triangles, drawn at the
9
+ * region's `MAKEUP_RENDER_ORDER`, shaded with `MAKEUP_GLSL` against the
10
+ * face's skin probe (`useFaceSkin`). It
11
+ *
12
+ * - draws nothing and holds nothing while `enabled` is false (no surface, no
13
+ * probe, no material);
14
+ * - writes the resolved settings into ONE uniforms object per region
15
+ * instance, which the built-in material and a custom material share
16
+ * (`ctx.uniforms`), so edits never recompile; inputs that are not
17
+ * settings (a design texture) come in as `uniforms` and join it;
18
+ * - binds the face's shared uniforms into it: the layer's camera feed,
19
+ * presence and `uPersonLeftSign` (#298 sides), and the skin probe's maps
20
+ * and stats;
21
+ * - routes the material: `sharedMaterial` as given, else `material` (a
22
+ * node, an instance, or a factory of `MakeupMaterialContext`, run once
23
+ * per factory), else the built-in `createMakeupMaterial(region)`, owned
24
+ * here and disposed once its warm-up compile has settled; a material
25
+ * from `createMakeupMaterial`, through either prop, keeps its own
26
+ * settings and is drawn through a per-face copy
27
+ * (`createMakeupFaceCopy`) that holds this face's bindings, so the
28
+ * source is never changed and can serve several faces;
29
+ * - warms the built-in program up with `renderer.compileAsync` and shows
30
+ * the region once it is ready (blush, contour and highlighter share one
31
+ * program, so only the first one waits).
32
+ *
33
+ * A region plugs in through its `MAKEUP_REGION_PROGRAMS` entry
34
+ * (`MakeupRegionProgram`): fragment shader, own uniforms, `resolve` /
35
+ * `patch` of its settings, settings → uniforms, triangles, auto shade,
36
+ * order and an optional per-frame hook.
37
+ */
38
+ /**
39
+ * What a custom makeup material factory receives (`material={(ctx) => …}`).
40
+ * The factory runs once per region instance (again only for a new factory
41
+ * or region): not on edits, a new camera, a mirroring change, a new
42
+ * triangle set or the skin probe becoming ready. Read live values from
43
+ * `uniforms` and `skin`; the other fields are those of when it ran.
44
+ */
45
+ export type MakeupMaterialContext<R extends MakeupMaterialRegion = MakeupMaterialRegion> = Omit<FaceAtlasMaterialContext, "uniforms"> & {
46
+ /**
47
+ * Every uniform `MAKEUP_GLSL` reads, kept current from the settings
48
+ * (`uColor`, `uOpacity`, `uCoverage`, `uFinish`, `uShine`, the sparkle
49
+ * fields, `uSide`, the shape uniforms…) and bound to the face (`uCameraMap`,
50
+ * `uPresence`, `uPersonLeftSign`, the skin probe's `uSkin*`). Pass it as
51
+ * `uniforms={ctx.uniforms}` (or spread it and add your own): the objects
52
+ * are stable, so the material never needs rebuilding on an edit.
53
+ */
54
+ uniforms: MakeupUniforms;
55
+ /** The region. */
56
+ region: R;
57
+ /** The resolved settings when the material was made (`uniforms` follow later edits). */
58
+ settings: MakeupMaterialSettings[R];
59
+ /** The face's skin probe (`useFaceSkin`): maps, stats, `ready`, always the current ones. */
60
+ skin: FaceSkinReference;
61
+ /** `MAKEUP_GLSL.atlasVertex`, the vertex shader to pair with these uniforms. */
62
+ vertexShader: string;
63
+ /** The built-in material's fragment shader, to start from. */
64
+ fragmentShader: string;
65
+ };
66
+ /** A region's material: an instance, a node, or a factory of either from the context. */
67
+ export type MakeupMaterialSpec<R extends MakeupMaterialRegion = MakeupMaterialRegion> = FaceAtlasMaterialResult | ((context: MakeupMaterialContext<R>) => FaceAtlasMaterialResult);
68
+ /** Props every makeup region component takes besides its settings. */
69
+ export type MakeupRegionProps<R extends MakeupMaterialRegion = MakeupMaterialRegion> = {
70
+ /**
71
+ * Which face. Default: the enclosing `FaceRig` / `FaceWarp3D` / `FaceMorph`'s
72
+ * (it rides that face), else the enclosing `FaceTracker`'s, else 0.
73
+ */
74
+ faceIndex?: number;
75
+ /**
76
+ * Faces to start the face model with when this region starts it (no
77
+ * `FaceTracker` above): at least `faceIndex + 1`. Pass the same value to
78
+ * every face component.
79
+ */
80
+ numFaces?: number;
81
+ /** Whether the feed is mirrored, for the person's own sides. Default: the session's. */
82
+ mirrored?: boolean;
83
+ /** Draw order in the face layer. Default `MAKEUP_RENDER_ORDER[region]`. */
84
+ renderOrder?: number;
85
+ /**
86
+ * A custom material: a node, an instance (you own it), or
87
+ * `(ctx: MakeupMaterialContext) => either`. Spread `MAKEUP_BLENDING`, set
88
+ * `depthWrite={false}` and pass `uniforms={ctx.uniforms}`. Prefer a
89
+ * factory that returns a node (the layer owns and disposes it). A
90
+ * factory runs once per factory, not on edits; a new factory (an inline
91
+ * arrow, each render) runs again, and an instance the previous one made
92
+ * is then disposed, so keep one that returns an instance stable (module
93
+ * scope or `useCallback`) and dispose the last one it made. A material
94
+ * from `createMakeupMaterial` is drawn as `sharedMaterial` is (its own
95
+ * settings; pass it as `sharedMaterial`).
96
+ */
97
+ material?: MakeupMaterialSpec<R>;
98
+ /**
99
+ * Use this material instead of the built-in one and `material`; you own
100
+ * it and its settings (the region never writes settings into it). Any
101
+ * material is drawn as given and never changed, except one from
102
+ * `createMakeupMaterial`: it is drawn through a per-face copy that shares
103
+ * its program and its uniform objects and adds this face's camera,
104
+ * presence, sides and skin probe, so one such material can serve every
105
+ * face (`<FaceTracker numFaces={2}>`). Drive its look with
106
+ * `updateMakeupMaterial` (or its uniforms in `useFrame`). It is drawn
107
+ * over every triangle its own region can reach, at its own region's
108
+ * order: give it to that region's component (`<Blush>` for a blush
109
+ * material), one component per face.
110
+ */
111
+ sharedMaterial?: THREE.Material;
112
+ };
113
+ /** Internal props of the core: the region, its resolved settings, and optional triangles and uniforms. */
114
+ export type MakeupRegionLayerProps<R extends MakeupMaterialRegion> = MakeupRegionProps<R> & {
115
+ region: R;
116
+ /** Resolved settings (`MAKEUP_REGION_PROGRAMS[region].resolve(…)`). */
117
+ settings: MakeupMaterialSettings[R];
118
+ /** Atlas triangles to draw instead of the region's own (stable). */
119
+ triangles?: ArrayLike<number>;
120
+ /**
121
+ * Uniforms that are not settings (a design texture, a time): merged into
122
+ * the region's uniforms by name, replacing the program's neutral entries,
123
+ * before settings are written. Keep the `{ value }` objects stable and
124
+ * change their values.
125
+ */
126
+ uniforms?: Record<string, THREE.IUniform>;
127
+ };
128
+ /**
129
+ * The core every makeup region component renders: nothing while
130
+ * `settings.enabled` is false, else the region's layer (see the module doc).
131
+ */
132
+ export declare const MakeupRegionLayer: <R extends MakeupMaterialRegion>(props: MakeupRegionLayerProps<R>) => import("react/jsx-runtime").JSX.Element | null;
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Makeup vocabulary shared by every region and by `LipEffect`. Plain data with
3
+ * no imports, so the lip settings and the makeup tables can both build on it.
4
+ */
5
+ /** The seven makeup region keys: lips first, then the six face regions. Not the draw order. */
6
+ export declare const MAKEUP_REGIONS: readonly ["lips", "contour", "blush", "highlighter", "eyeshadow", "eyeliner", "brows"];
7
+ export type MakeupRegion = (typeof MAKEUP_REGIONS)[number];
8
+ /** The six regions drawn by the makeup region components (every region but lips). */
9
+ export type MakeupFaceRegion = Exclude<MakeupRegion, "lips">;
10
+ /**
11
+ * How the product reflects light. `matte` removes the skin's own shine,
12
+ * `satin` keeps a soft sheen, `gloss` adds a wet highlight, `shimmer` fine
13
+ * flakes, `metallic` a highlight tinted by the shade, `glitter` sparse large
14
+ * flakes.
15
+ */
16
+ export declare const MAKEUP_FINISHES: readonly ["matte", "satin", "gloss", "shimmer", "metallic", "glitter"];
17
+ export type MakeupFinish = (typeof MAKEUP_FINISHES)[number];
18
+ /** Which of the person's own sides a paired region paints, on every feed. */
19
+ export declare const MAKEUP_SIDES: readonly ["both", "left", "right"];
20
+ export type MakeupSide = (typeof MAKEUP_SIDES)[number];
21
+ /**
22
+ * Regions whose `shade` accepts `"auto"`: a colour taken from the person's
23
+ * own skin, lips or brows (lips: their lip colour deepened; blush: their skin
24
+ * hue moved toward rose; contour and highlighter: their skin darkened or
25
+ * lifted; brows: their brow-hair colour), measured on the GPU by the face's
26
+ * skin probe (`useFaceSkin`). `Blush`, `Contour`, `Highlighter`, `Brows`
27
+ * and `LipEffect` derive it there; `color` shows until it is measured.
28
+ */
29
+ export declare const MAKEUP_AUTO_SHADE_REGIONS: readonly ["lips", "blush", "contour", "highlighter", "brows"];
30
+ export type MakeupAutoShadeRegion = (typeof MAKEUP_AUTO_SHADE_REGIONS)[number];
31
+ /** The fields a finish sets. Choosing a finish re-applies them; explicit values win. */
32
+ export type MakeupFinishDefaults = {
33
+ /** Strength of the finish highlight, 0..1. */
34
+ shine: number;
35
+ /** Flake density, 0..1. Read by `shimmer` and `glitter` only. */
36
+ sparkleDensity: number;
37
+ /** Flake size in millimetres on the face, 0.1..1.5. */
38
+ sparkleSize: number;
39
+ };
40
+ export declare const MAKEUP_FINISH_DEFAULTS: Record<MakeupFinish, MakeupFinishDefaults>;
41
+ /** The keys a finish sets. */
42
+ export declare const MAKEUP_FINISH_KEYS: readonly ["shine", "sparkleDensity", "sparkleSize"];
43
+ /** Range of `sparkleSize` in millimetres (lips and every region). */
44
+ export declare const MAKEUP_SPARKLE_SIZE_RANGE: readonly [0.1, 1.5];
@@ -0,0 +1,106 @@
1
+ import { SettingsPanelField } from '../../debug-ui/settings-panel';
2
+ import { MakeupDesignUniforms } from '../../face-atlas/glsl/design';
3
+ import { FaceAtlasRegionSelection } from '../../face-atlas/regions';
4
+ import { MakeupFinish, MakeupSide } from './constants';
5
+ import * as THREE from "three";
6
+ /**
7
+ * `MakeupDesign` settings (FACE-1): creator art painted in the face atlas
8
+ * (freckles, face gems, graphic liner), shaded like the makeup regions. Flat
9
+ * and serializable; the art itself is the component's `texture` prop (or
10
+ * `setMakeupDesignTexture` on a material), not a setting.
11
+ */
12
+ export type MakeupDesignSettings = {
13
+ /** `false` draws nothing and costs nothing. */
14
+ enabled: boolean;
15
+ /**
16
+ * The atlas regions the art may paint (`FACE_ATLAS_REGIONS`; one name or
17
+ * several): art outside them is never drawn. Default `"face"` (everything
18
+ * but the eye and mouth openings and the nostrils); a smaller region draws
19
+ * fewer pixels (`["nose", "cheeks"]` for freckles, `"lids"` for liner).
20
+ * `"eyes"` / `"mouth"` paint over the openings.
21
+ */
22
+ region: FaceAtlasRegionSelection;
23
+ /** `""` keeps the art's own colours; a CSS colour multiplies (tints) them: paint white art to recolour it freely. */
24
+ color: string;
25
+ /** Linear amount, 0..1, times the art's alpha. */
26
+ opacity: number;
27
+ /** 0 = sheer (the art filters the person's own colour, never lightens), 1 = opaque (covers the skin). */
28
+ coverage: number;
29
+ /** How the art reflects light. Choosing a finish sets `shine` and the sparkle fields. */
30
+ finish: MakeupFinish;
31
+ /** Strength of the finish highlight, 0..1. */
32
+ shine: number;
33
+ /** Flake colour for `shimmer` / `glitter`; `""` derives it from the art. */
34
+ sparkleColor: string;
35
+ /** Flake density, 0..1 (`shimmer` and `glitter` only). */
36
+ sparkleDensity: number;
37
+ /** Flake size in millimetres, 0.1..1.5. */
38
+ sparkleSize: number;
39
+ /** The person's own side(s) of the art to paint, on every feed. */
40
+ side: MakeupSide;
41
+ };
42
+ /**
43
+ * Defaults: the art as painted (opaque, matte, its own colours) over the
44
+ * whole face, both sides.
45
+ */
46
+ export declare const DEFAULT_MAKEUP_DESIGN_SETTINGS: Readonly<MakeupDesignSettings>;
47
+ type Range = readonly [min: number, max: number];
48
+ /** Inclusive clamp range of every numeric `MakeupDesignSettings` field. */
49
+ export declare const MAKEUP_DESIGN_SETTINGS_RANGES: Readonly<Record<"opacity" | "coverage" | "shine" | "sparkleDensity" | "sparkleSize", Range>>;
50
+ /**
51
+ * Complete, clamped design settings from a partial. Order: defaults → the
52
+ * finish's `shine` and sparkle values → every explicit value. Invalid values
53
+ * fall back to that order's value; unknown keys are dropped.
54
+ */
55
+ export declare const resolveMakeupDesignSettings: (input?: Partial<MakeupDesignSettings>) => MakeupDesignSettings;
56
+ /**
57
+ * Apply an edit to resolved design settings, from a panel (the whole object)
58
+ * or from code (a sparse patch). A `finish` that differs re-applies its
59
+ * `shine` and sparkle values, except those the patch sets; the patch's other
60
+ * values win. A whole-object patch counts only the fields that differ from
61
+ * `current`.
62
+ */
63
+ export declare const patchMakeupDesignSettings: (current: MakeupDesignSettings, patch: Partial<MakeupDesignSettings>) => MakeupDesignSettings;
64
+ /**
65
+ * The atlas triangles a design draws for a region selection (cached per
66
+ * selection, so the same selection returns the same array). Without one:
67
+ * every region, the eye and mouth openings included (what any settings can
68
+ * paint).
69
+ */
70
+ export declare const getMakeupDesignTriangles: (selection?: FaceAtlasRegionSelection) => Uint16Array;
71
+ /**
72
+ * How `MAKEUP_GLSL.design` reads a texture: `srgb` when it holds sRGB bytes
73
+ * the shader decodes (any colour space but `SRGBColorSpace`, which the GPU
74
+ * decodes, and `LinearSRGBColorSpace`, read as linear: so an untagged
75
+ * `CanvasTexture` of art is read as the sRGB it is), `premultiplied` when it
76
+ * was uploaded premultiplied. A premultiplied texture must stay untagged (or
77
+ * linear): the GPU decodes `SRGBColorSpace` bytes before the shader divides
78
+ * the alpha out, which darkens soft edges (`setMakeupDesignTexture` warns).
79
+ */
80
+ export declare const makeupDesignTextureFlags: (texture: THREE.Texture | null) => {
81
+ srgb: boolean;
82
+ premultiplied: boolean;
83
+ };
84
+ /**
85
+ * Puts art on a design material's uniforms (`createMakeupMaterial("design").uniforms`,
86
+ * or a custom material's `ctx.uniforms`): the texture and how to read it
87
+ * (`makeupDesignTextureFlags`). `null` paints nothing. The texture is never
88
+ * changed; you own it.
89
+ */
90
+ export declare const setMakeupDesignTexture: (uniforms: MakeupDesignUniforms, texture: THREE.Texture | null) => void;
91
+ /**
92
+ * Where the shader samples the art for an atlas uv on a feed: `(1 − u, v)`
93
+ * on a mirrored feed, so each side of the art stays on the person's own
94
+ * side (the TypeScript mirror of `makeupDesignUv`).
95
+ */
96
+ export declare const makeupDesignUv: (u: number, v: number, mirrored: boolean) => {
97
+ u: number;
98
+ v: number;
99
+ };
100
+ /**
101
+ * Typed `SettingsPanel` fields for `MakeupDesignSettings`. The region select
102
+ * offers every single name and the unions the example art uses, each in the
103
+ * order `resolveMakeupDesignSettings` gives it (so the panel matches it).
104
+ */
105
+ export declare const MAKEUP_DESIGN_SETTINGS_FIELDS: SettingsPanelField<MakeupDesignSettings>[];
106
+ export {};
@@ -0,0 +1,42 @@
1
+ import { FaceAtlasRegionSelection } from '../../face-atlas/regions';
2
+ import { MakeupDesignSettings } from './design';
3
+ /**
4
+ * Example art for `MakeupDesign` (FACE-1), drawn directly in face-atlas
5
+ * coordinates from `FACE_ATLAS_UVS` and the atlas polylines, so it registers
6
+ * exactly. Internal: not exported from any entry point (the SDK ships no
7
+ * art). `scripts/generate-makeup-samples.ts` writes the SVGs to
8
+ * `example/public/makeup/`; sources and credits are in `assets-src/makeup/`.
9
+ * Our own work, CC0, credit Vincentt.
10
+ *
11
+ * Coordinates are atlas uv (v up), turned into image pixels with
12
+ * `faceAtlasUvToPixel` (image top = `v = 1`). Image-left (u < 0.5) is the
13
+ * person's right, as on an unmirrored photo.
14
+ */
15
+ export declare const MAKEUP_DESIGN_SAMPLE_NAMES: readonly ["freckles", "faceGems", "graphicLiner", "sideTest"];
16
+ export type MakeupDesignSampleName = (typeof MAKEUP_DESIGN_SAMPLE_NAMES)[number];
17
+ /** The file each sample is written to, under `example/public/makeup/` (served at `/makeup/…`). */
18
+ export declare const MAKEUP_DESIGN_SAMPLE_FILES: Readonly<Record<MakeupDesignSampleName, string>>;
19
+ /**
20
+ * Settings each sample is made for. `region` is the smallest union that
21
+ * holds all of the art (tested), so the layer draws as few pixels as it can.
22
+ */
23
+ export declare const MAKEUP_DESIGN_SAMPLE_SETTINGS: Readonly<Record<MakeupDesignSampleName, Partial<MakeupDesignSettings>>>;
24
+ type Uv = {
25
+ u: number;
26
+ v: number;
27
+ };
28
+ /** Whether an atlas uv lies on a triangle of a region selection. */
29
+ export declare const faceAtlasUvInRegion: (point: Uv, selection: FaceAtlasRegionSelection) => boolean;
30
+ /**
31
+ * A drawn sample: the SVG, the atlas points its marks are centred on, and
32
+ * points on the edge of every mark (circle rings, polygon vertices and edge
33
+ * midpoints): a mark is whole when its edge is inside the region (tests).
34
+ */
35
+ export type MakeupDesignSample = {
36
+ svg: string;
37
+ points: Uv[];
38
+ edges: Uv[];
39
+ };
40
+ /** Draws one sample at `size` px square (default 1024): the SVG and its mark centres. */
41
+ export declare const buildMakeupDesignSample: (name: MakeupDesignSampleName, size?: number) => MakeupDesignSample;
42
+ export {};