From 4b0ce13adaa21272a3c2de59577aff96a48e4d53 Mon Sep 17 00:00:00 2001 From: regzo2 Date: Mon, 21 Aug 2023 07:53:54 -0400 Subject: [PATCH 01/12] Implemented FilterTable component and styles --- src/components/FilterTable.tsx | 117 +++++++++++++++++++++++++++++++++ src/css/custom.css | 17 +++-- src/css/filtertable.css | 40 +++++++++++ 3 files changed, 167 insertions(+), 7 deletions(-) create mode 100644 src/components/FilterTable.tsx create mode 100644 src/css/filtertable.css diff --git a/src/components/FilterTable.tsx b/src/components/FilterTable.tsx new file mode 100644 index 00000000..eb6aafd6 --- /dev/null +++ b/src/components/FilterTable.tsx @@ -0,0 +1,117 @@ +import React, { FC, useState } from 'react'; +import '../css/filtertable.css'; + +interface FilterData { + title: string; + omitHeaders: string[]; + disabledHeaders: string[]; + headers: string[]; + rows: any[][]; +} + +const FilterTable = ({ title, omitHeaders, disabledHeaders, headers, rows } : FilterData) => { + const [hiddenColumns, setHiddenColumns] = useState( + disabledHeaders?.map(header => headers.indexOf(header)) || [] + ); + const [filterText, setFilterText] = useState(''); + const [filterRegex, setFilterRegex] = useState(null); + const [hasError, setHasError] = useState(false); + + const toggleColumn = (index) => { + if (hiddenColumns.includes(index)) { + setHiddenColumns(hiddenColumns.filter((i) => i !== index)); + } else { + setHiddenColumns([...hiddenColumns, index]); + } + }; + + const filteredRows = rows.filter(row => + row.some((cell) => { + if (filterRegex) { + try { + return cell?.toString && filterRegex.test(cell.toString()); + } catch (error) { + return false; + } + } else { + return cell?.toString && cell?.toString().includes(filterText); + } + }) + ); + + const handleFilterChange = (value) => { + setFilterText(value); + setHasError(false); + + try { + if (value.trim() !== '') { + setFilterRegex(new RegExp(value, 'i')); + } else { + setFilterRegex(null); + } + } catch (error) { + setHasError(true); + setFilterRegex(null); + } + }; + + return ( +
+ handleFilterChange(e.target.value)} + className={`filter-input ${hasError ? 'invalid' : ''}`} + /> + {headers.map((header, index) => ( + omitHeaders?.includes(header) ? null : ( + + ) + ))} + + + + {headers.map((header, index) => ( + omitHeaders?.includes(header) ? ( + // If header is in omitHeaders, render a disabled header without onClick + + ) : ( + // If header is not in omitHeaders, apply normal header with onClick and toggleColumn + + ) + ))} + + + + {filteredRows.map((row, rowIndex) => ( + + {row.map((cell, cellIndex) => ( + + ))} + + ))} + +
{header} toggleColumn(index)} + className={hiddenColumns.includes(index) ? 'hidden' : ''} + > + {header} +
+ {cell} +
+
+ ); +}; + +export default FilterTable; \ No newline at end of file diff --git a/src/css/custom.css b/src/css/custom.css index 94d21a75..c65de69f 100644 --- a/src/css/custom.css +++ b/src/css/custom.css @@ -4,11 +4,14 @@ * work well for content-centric websites. */ +.hidden { + display: none; +} + .header-github-link:hover { opacity: 0.6; } - .header-github-link::before { content: ''; width: 24px; @@ -44,9 +47,9 @@ /* You can override the default Infima variables here. */ :root { --ifm-color-primary: #f29fa7; - --ifm-color-primary-dark: #b17181; - --ifm-color-primary-darker: #b17181; - --ifm-color-primary-darkest: #b17181; + --ifm-color-primary-dark: #9b9b9b; + --ifm-color-primary-darker: #cccccc; + --ifm-color-primary-darkest: #ececec; --ifm-color-primary-light: #b68f92; --ifm-color-primary-lighter: #b68f92; --ifm-color-primary-lightest: #b68f92; @@ -57,9 +60,9 @@ /* For readability concerns, you should choose a lighter palette in dark mode. */ [data-theme='dark'] { --ifm-color-primary: #90f223; - --ifm-color-primary-dark: #9c9c9c; - --ifm-color-primary-darker: #9c9c9c; - --ifm-color-primary-darkest: #808080; + --ifm-color-primary-dark: #707070; + --ifm-color-primary-darker: #4d4d4d; + --ifm-color-primary-darkest: #2e2e2e; --ifm-color-primary-light: #6db71f; --ifm-color-primary-lighter: #6db81a; --ifm-color-primary-lightest: #90f223; diff --git a/src/css/filtertable.css b/src/css/filtertable.css new file mode 100644 index 00000000..d2c3a111 --- /dev/null +++ b/src/css/filtertable.css @@ -0,0 +1,40 @@ +table { + table-layout: auto; + width: 100%; +} + +th, td { + width: 33.33vh; + text-align: center; +} + +button { + background: var(--ifm-color-primary-darkest); + border: none; + cursor: pointer; + margin-top: 0rem; + margin-bottom: 0.2rem; + margin-right: 0.2rem; + margin-left: 0rem; + padding: 0.5rem; + border-collapse: collapse; +} + +button.disable { + text-decoration: line-through; + color: var(--ifm-color-primary-dark); +} + +.filter-input { + background: var(--ifm-color-primary-darkest); + padding: 0.5rem; + border: none; + margin-top: 0rem; + margin-bottom: 0.2rem; + margin-right: 0.2rem; + margin-left: 0rem; +} + +.invalid { + color: red; +} \ No newline at end of file From 47c575c16d3bb47bda6f1ca46430ed67f4cfaf99 Mon Sep 17 00:00:00 2001 From: regzo2 Date: Mon, 21 Aug 2023 07:54:42 -0400 Subject: [PATCH 02/12] Updated Unified tables to use FilterTable --- .../_unified-blended-table.mdx | 638 ++++----- .../_unified-shape-table.mdx | 1239 +++++++---------- 2 files changed, 781 insertions(+), 1096 deletions(-) diff --git a/docs/tutorial-avatars/tutorial-avatars-extras/_unified-blended-table.mdx b/docs/tutorial-avatars/tutorial-avatars-extras/_unified-blended-table.mdx index 485d1b11..5deb514a 100644 --- a/docs/tutorial-avatars/tutorial-avatars-extras/_unified-blended-table.mdx +++ b/docs/tutorial-avatars/tutorial-avatars-extras/_unified-blended-table.mdx @@ -1,386 +1,264 @@ import ContextModal from '@site/src/components/ContextModal.tsx' import '@site/src/css/unified-tables.css' +import FilterTable from '@site/src/components/FilterTable.tsx' - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - {/* - - - - - */} - - - - - - - - - - - - - -
Blended Eye Expressions
ReferenceNameFunctionBasis
Reference ImageEyeClosedCloses both eye lids.EyeClosedRight
EyeClosedRight
Reference ImageEyeWideWidens both eye lids.EyeWidenRight
EyeWidenLeft
Reference ImageEyeSquintSquints both eye lids.EyeSquintRight
EyeSquintLeft
Reference ImageEyeDilationDilates both pupils.EyeDilationRight
EyeDilationLeft
Reference ImageEyeConstrictConstricts both pupils.EyeConstrictRight
EyeConstrictLeft
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Blended Brows
ReferenceNameFunctionBasis
Reference ImageBrowDownRightPulls the right eyebrow down and in.BrowLowererRight
BrowPinchRight
Reference ImageBrowDownLeftPulls the left eyebrow down and in.BrowLowererLeft
BrowPinchLeft
Reference ImageBrowDownPulls the left eyebrow down and in.BrowLowererRight
BrowLowererLeft
BrowPinchRight
BrowPinchLeft
Reference ImageBrowUpRightRight brow appears worried.BrowInnerUpRight
BrowOuterUpRight
Reference ImageBrowUpLeftLeft brow appears worried.BrowInnerUpLeft
BrowOuterUpLeft
Reference ImageBrowUpBrows appears worried.BrowInnerUpRight
BrowInnerUpLeft
BrowOuterUpRight
BrowOuterUpLeft
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Blended Nose
ReferenceNameFunctionBasis
Reference ImageNoseSneerEntire face sneers.NoseSneerRight
NoseSneerLeft
Reference ImageNasalDilationBoth nose canals dilate.NasalDilationRight
NasalDilationLeft
Reference ImageNasalConstrictBoth nose canals constrict.NasalConstrictRight
NasalConstrictLeft
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Blended Cheeks
ReferenceNameFunctionBasis
Reference ImageCheekPuffPuffs both cheeks.CheekPuffRight
CheekPuffLeft
Reference ImageCheekSuckSucks both cheeks.CheekSuckRight
CheekSuckLeft
Reference ImageCheekSquintRaises both cheeks.CheekSquintRight
CheekSquintLeft
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - {/* - - - - - */} - - - - - - - - - - - - - - - - - - - {/* - - - - - */} - - - - - - - - - - - - - - - - - - - -
Blended Lips
ReferenceNameFunctionBasis
Reference ImageLipSuckUpperTucks in the upper lips.LipSuckUpperRight
LipSuckUpperLeft
Reference ImageLipSuckLowerTucks in the lower lips.LipSuckLowerRight
LipSuckLowerLeft
Reference ImageLipSuckTucks in the upper and lower lips.LipSuckUpperRight
LipSuckUpperLeft
LipSuckLowerRight
LipSuckLowerLeft
Reference ImageLipFunnelUpperFunnels in the upper lips.LipFunnelUpperRight
LipFunnelUpperLeft
Reference ImageLipFunnelLowerFunnels in the lower lips.LipFunnelLowerRight
LipFunnelLowerLeft
Reference ImageLipFunnelFunnels in the upper and lower lips.LipFunnelUpperRight
LipFunnelUpperLeft
LipFunnelLowerRight
LipFunnelLowerLeft
Reference ImageLipPuckerUpperUpper lip part pushes outward.LipPuckerUpperRight
LipPuckerUpperLeft
Reference ImageLipPuckerLowerLower lip part pushes outward.LipPuckerLowerRight
LipPuckerLowerLeft
Reference ImageLipPuckerLips push outward.LipPuckerUpperRight
LipPuckerUpperLeft
LipPuckerLowerRight
LipPuckerLowerLeft
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - {/* - - - - - */} - - - - - - - - - - - - - {/* - - - - - */} - - - - - - - - - - - - - - - - - - - {/* - - - - - */} - - - - - - - - - - - - - - - - - - - {/* - - - - - */} - - - - - - - - - - - - - - - - - - - - - - - - - -
Blended Mouth
ReferenceNameFunctionBasis
Reference ImageMouthUpperUpRaises the upper lips.MouthUpperUpRight
MouthUpperUpLeft
Reference ImageMouthLowerDownLowers the lower lips.MouthLowerDownRight
MouthLowerDownLeft
Reference ImageMouthOpenMouth opens, revealing teeth.MouthUpperUpRight
MouthUpperUpLeft
MouthLowerDownRight
MouthLowerDownLeft
Reference ImageMouthRightMoves mouth right.MouthUpperRight
MouthLowerRight
Reference ImageMouthLeftMoves mouth left.MouthUpperLeft
MouthLowerLeft
Reference ImageMouthSmileRightRight side mouth expresses a smile.MouthCornerPullRight
MouthCornerSlantRight
Reference ImageMouthSmileLeftLeft side mouth expresses a smile.MouthCornerPullLeft
MouthCornerSlantLeft
Reference ImageMouthSmileMouth expresses a smile.MouthCornerPullRight
MouthCornerPullLeft
MouthCornerSlantRight
MouthCornerSlantLeft
Reference ImageMouthSadRightLeft side mouth expresses sadness.MouthFrownRight
MouthStretchRight
Reference ImageMouthSadLeftRight side mouth expresses sadness.MouthFrownLeft
MouthStretchLeft
Reference ImageMouthSadMouth expresses sadness.MouthFrownRight
MouthFrownLeft
MouthStretchRight
MouthStretchLeft
Reference ImageMouthStretchMouth stretches.MouthStretchRight
MouthStretchLeft
Reference ImageMouthDimpleLip corner dimplesMouthDimpleRight
MouthDimpleLeft
Reference ImageMouthTightenerMouth tightens.MouthTightenerRight
MouthTightenerLeft
Reference ImageMouthPressMouth presses together.MouthPressRight
MouthPressLeft
+, + 'EyeClosed', + Closes both eye lids., + <>EyeClosedRight
EyeClosedRight + ], + [ + Reference Image, + 'EyeWide', + Widens both eye lids., + <>EyeWidenRight
EyeWidenLeft + ], + [ + Reference Image, + 'EyeSquint', + Squints both eye lids., + <>EyeSquintRight
EyeSquintLeft + ], + [ + Reference Image, + 'EyeDilation', + Dilates both pupils., + <>EyeDilationRight
EyeDilationLeft + ], + [ + Reference Image, + 'EyeConstrict', + Constricts both pupils., + <>EyeConstrictRight
EyeConstrictLeft + ], + [ + Reference Image, + 'BrowDownRight', + Pulls the right eyebrow down and in., + <>BrowLowererRight
BrowPinchRight + ], + [ + Reference Image, + 'BrowDownLeft', + Pulls the left eyebrow down and in., + <>BrowLowererLeft
BrowPinchLeft + ], + [ + Reference Image, + 'BrowDown', + Pulls the left eyebrow down and in., + <>BrowLowererRight
BrowLowererLeft
BrowPinchRight
BrowPinchLeft + ], + [ + Reference Image, + 'BrowUpRight', + Right brow appears worried., + <>BrowInnerUpRight
BrowOuterUpRight + ], + [ + Reference Image, + 'BrowUpLeft', + Left brow appears worried., + <>BrowInnerUpLeft
BrowOuterUpLeft + ], + [ + Reference Image, + 'BrowUp', + Brows appear worried., + <>BrowInnerUpRight
BrowInnerUpLeft
BrowOuterUpRight
BrowOuterUpLeft + ], + [ + Reference Image, + 'NoseSneer', + Entire face sneers., + <>NoseSneerRight
NoseSneerLeft + ], + [ + Reference Image, + 'NasalDilation', + Both nose canals dilate., + <>NasalDilationRight
NasalDilationLeft + ], + [ + Reference Image, + 'NasalConstrict', + Both nose canals constrict., + <>NasalConstrictRight
NasalConstrictLeft + ], + [ + Reference Image, + 'CheekPuff', + Puffs both cheeks., + <>CheekPuffRight
CheekPuffLeft + ], + [ + Reference Image, + 'CheekSuck', + Sucks both cheeks., + <>CheekSuckRight
CheekSuckLeft + ], + [ + Reference Image, + 'CheekSquint', + Raises both cheeks., + <>CheekSquintRight
CheekSquintLeft + ], + [ + Reference Image, + 'LipSuckUpper', + Tucks in the upper lips., + <>LipSuckUpperRight
LipSuckUpperLeft + ], + [ + Reference Image, + 'LipSuckLower', + Tucks in the lower lips., + <>LipSuckLowerRight
LipSuckLowerLeft + ], + [ + Reference Image, + 'LipSuck', + Tucks in the upper and lower lips., + <>LipSuckUpperRight
LipSuckUpperLeft
LipSuckLowerRight
LipSuckLowerLeft + ], + [ + Reference Image, + 'LipFunnelUpper', + Funnels in the upper lips., + <>LipFunnelUpperRight
LipFunnelUpperLeft + ], + [ + Reference Image, + 'LipFunnelLower', + Funnels in the lower lips., + <>LipFunnelLowerRight
LipFunnelLowerLeft + ], + [ + Reference Image, + 'LipFunnel', + Funnels in the upper and lower lips., + <>LipFunnelUpperRight
LipFunnelUpperLeft
LipFunnelLowerRight
LipFunnelLowerLeft + ], + [ + Reference Image, + 'LipPuckerUpper', + Upper lip part pushes outward., + <>LipPuckerUpperRight
LipPuckerUpperLeft + ], + [ + Reference Image, + 'LipPuckerLower', + Lower lip part pushes outward., + <>LipPuckerLowerRight
LipPuckerLowerLeft + ], + [ + Reference Image, + 'LipPucker', + Lips push outward., + <>LipPuckerUpperRight
LipPuckerUpperLeft
LipPuckerLowerRight
LipPuckerLowerLeft + ], + [ + Reference Image, + 'MouthUpperUp', + Raises the upper lips., + <>MouthUpperUpRight
MouthUpperUpLeft + ], + [ + Reference Image, + 'MouthLowerDown', + Lowers the lower lips., + <>MouthLowerDownRight
MouthLowerDownLeft + ], + [ + Reference Image, + 'MouthOpen', + 'Mouth opens, revealing teeth.', + <>MouthUpperUpRight
MouthUpperUpLeft
MouthLowerDownRight
MouthLowerDownLeft + ], + [ + Reference Image, + 'MouthRight', + 'Moves mouth right.', + <>MouthUpperRight
MouthLowerRight + ], + [ + Reference Image, + 'MouthLeft', + Moves mouth left., + <>MouthUpperLeft
MouthLowerLeft + ], + [ + Reference Image, + 'MouthSmileRight', + 'Right side mouth expresses a smile.', + <>MouthCornerPullRight
MouthCornerSlantRight + ], + [ + Reference Image, + 'MouthSmileLeft', + 'Left side mouth expresses a smile.', + <>MouthCornerPullLeft
MouthCornerSlantLeft + ], + [ + Reference Image, + 'MouthSmile', + 'Mouth expresses a smile.', + <>MouthCornerPullRight
MouthCornerPullLeft
MouthCornerSlantRight
MouthCornerSlantLeft + ], + [ + Reference Image, + 'MouthSadRight', + 'Left side mouth expresses sadness.', + <>MouthFrownRight
MouthStretchRight + ], + [ + Reference Image, + 'MouthSadLeft', + 'Right side mouth expresses sadness.', + <>MouthFrownLeft
MouthStretchLeft + ], + [ + Reference Image, + 'MouthSad', + 'Mouth expresses sadness.', + <>MouthFrownRight
MouthFrownLeft
MouthStretchRight
MouthStretchLeft + ], + [ + Reference Image, + 'MouthStretch', + Mouth stretches., + <>MouthStretchRight
MouthStretchLeft + ], + [ + Reference Image, + 'MouthDimple', + Lip corner dimples, + <>MouthDimpleRight
MouthDimpleLeft + ], + [ + Reference Image, + 'MouthTightener', + Mouth tightens., + <>MouthTightenerRight
MouthTightenerLeft + ], + [ + Reference Image, + 'MouthPress', + Mouth presses together., + <>MouthPressRight
MouthPressLeft + ] + ]} +/> import OneExplain from './unified-explanations/super-scripts/_1_explain.mdx' import TwoExplain from './unified-explanations/super-scripts/_2_explain.mdx' diff --git a/docs/tutorial-avatars/tutorial-avatars-extras/_unified-shape-table.mdx b/docs/tutorial-avatars/tutorial-avatars-extras/_unified-shape-table.mdx index c4f7605c..85f74e70 100644 --- a/docs/tutorial-avatars/tutorial-avatars-extras/_unified-shape-table.mdx +++ b/docs/tutorial-avatars/tutorial-avatars-extras/_unified-shape-table.mdx @@ -1,5 +1,6 @@ -import ContextModal from '@site/src/components/ContextModal.tsx' -import '@site/src/css/unified-tables.css' +import ContextModal from '@site/src/components/ContextModal.tsx'; +import FilterTable from '@site/src/components/FilterTable.tsx'; +import '@site/src/css/unified-tables.css'; @@ -17,720 +18,526 @@ import '@site/src/css/unified-tables.css'
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Eye Gaze
ReferenceNameFunction
Reference ImageEyeLookOutRightRight eye looks out.
Reference ImageEyeLookInRightRight eye looks in.
Reference ImageEyeLookUpRightRight eye looks up.
Reference ImageEyeLookDownRightRight eye looks down.
Reference ImageEyeLookOutLeftLeft eye looks out.
Reference ImageEyeLookInLeftLeft eye looks in.
Reference ImageEyeLookUpLeftLeft eye looks up.
Reference ImageEyeLookDownLeftLeft eye looks down.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Eye Expressions
ReferenceNameFunction
Reference ImageEyeClosedRightCloses the right eyelid.
Reference ImageEyeClosedLeftCloses the left eyelid.
Reference ImageEyeSquintRightSqueezes the right eye socket muscles.
Reference ImageEyeSquintLeftSqueezes the left eye socket muscles.
Reference ImageEyeWideRightRight eyelid widens beyond relaxed.
Reference ImageEyeWideLeftLeft eyelid widens beyond relaxed.
Reference ImageEyeDilationRightDilates the right eye pupil
Reference ImageEyeDilationLeftDilates the left eye pupil
Reference ImageEyeConstrictRightConstricts the right eye pupil
Reference ImageEyeConstrictLeftConstricts the left eye pupil
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - {/* - - - - */} - - - - - - - - - - - - - - - - - - - - - -
Brows
ReferenceNameFunction
Reference ImageBrowPinchRightRight eyebrow pinches in.
Reference ImageBrowPinchLeftLeft eyebrow pinches in.
Reference ImageBrowLowererRightOuter right eyebrow pulls down.
Reference ImageBrowLowererLeftOuter Left eyebrow pulls down.
Reference ImageBrowInnerUpRightInner right eyebrow pulls up.
Reference ImageBrowInnerUpLeftInner left eyebrow pulls up.
Reference ImageBrowOuterUpRightOuter right eyebrow pulls up.
Reference ImageBrowOuterUpLeftOuter left eyebrow pulls up.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Nose
ReferenceNameFunction
Reference ImageNoseSneerRightRight side face sneers.
Reference ImageNoseSneerLeftLeft side face sneers.
Reference ImageNasalDilationRight1Right side nose canal dilates.
Reference ImageNasalDilationLeft1Left side nose canal dilates.
Reference ImageNasalConstrictRight1Right side nose canal constricts.
Reference ImageNasalConstrictLeft1Left side nose canal constricts.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Cheeks
ReferenceNameFunction
Reference ImageCheekSquintRightRaises the right side cheek.
Reference ImageCheekSquintLeftRaises the left side cheek.
Reference ImageCheekPuffRightPuffs the right side cheek.
Reference ImageCheekPuffLeftPuffs the left side cheek.
Reference ImageCheekSuckRightSucks in the right side cheek.
Reference ImageCheekSuckLeftSucks in the left side cheek.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Jaw
ReferenceNameFunction
Reference ImageJawOpenOpens jawbone.
Reference ImageMouthClosedCloses mouth (in relation to JawOpen).
Reference ImageJawRightPushes jawbone right.
Reference ImageJawLeftPushes jawbone left.
Reference ImageJawForwardPushes jawbone forwards.
Reference ImageJawBackward1Pulls jawbone backwards.
Reference ImageJawClench1Flexes jaw muscles.
Reference ImageJawMandibleRaise1Raises jawbone.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - {/* - - - - */} - - - - - - - - - - - - - - - - - - - - - -
Lips
ReferenceNameFunction
Reference ImageLipSuckUpperRightUpper right lip part tucks in the mouth.
Reference ImageLipSuckUpperLeftUpper left lip part tucks in the mouth.
Reference ImageLipSuckLowerRightLower right lip part tucks in the mouth.
Reference ImageLipSuckLowerLeftLower left lip part tucks in the mouth.
Reference ImageLipSuckCornerRight1Right lip corner folds into the mouth.
Reference ImageLipSuckCornerLeft1Left lip corner folds into the mouth.
Reference ImageLipFunnelUpperRightUpper right lip part pushes into a funnel.
Reference ImageLipFunnelUpperLeftUpper left lip part pushes into a funnel.
Reference ImageLipFunnelLowerRightLower right lip part pushes into a funnel.
Reference ImageLipFunnelLowerLeftLower left lip part pushes into a funnel.
Reference ImageLipPuckerUpperRightUpper right lip part pushes outward.
Reference ImageLipPuckerUpperLeftUpper left lip part pushes outward.
Reference ImageLipPuckerLowerRightLower right lip part pushes outward.
Reference ImageLipPuckerLowerLeftLower left lip part pushes outward.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - {/* - - - - */} - - - - - - - - - - - {/* - - - - */} - - - - - - - - - - - - - - - - - - - - - {/* - - - - */} - - - - - - - - - - - - - - - - - - - - - {/* - - - - */} - - - - - - - - - - - - - - - - - - - - - {/* - - - - */} - - - - - - - - - - - - - - - - - - - - - {/* - - - - */} - - - - - - - - - - - - - - - - - - - - - -
Mouth
ReferenceNameFunction
Reference ImageMouthUpperUpRightUpper right part of the lip pulls up.
Reference ImageMouthUpperUpLeftUpper left part of the lip pulls up.
Reference ImageMouthLowerDownRightLower right part of the lip pulls up.
Reference ImageMouthLowerDownLeftLower right part of the lip pulls up.
Reference ImageMouthUpperDeepenRightUpper right lip part pushes in the cheek.
Reference ImageMouthUpperDeepenLeftUpper left lip part pushes in the cheek.
Reference ImageMouthUpperRightMoves upper lip right.
Reference ImageMouthUpperLeftMoves upper lip left.
Reference ImageMouthLowerRightMoves lower lip right.
Reference ImageMouthLowerLeftMoves lower lip left.
Reference ImageMouthCornerPullRightRight lip corner pulls diagonally up and out.
Reference ImageMouthCornerPullLeftLeft lip corner pulls diagonally up and out.
Reference ImageMouthCornerSlantRightRight corner lip slants up.
Reference ImageMouthCornerSlantLeftLeft corner lip slants up.
Reference ImageMouthFrownRightRight corner lip pulls down.
Reference ImageMouthFrownLeftLeft corner lip pulls down.
Reference ImageMouthStretchRightRight corner lip pulls out and down.
Reference ImageMouthStretchLeftLeft corner lip pulls out and down.
Reference ImageMouthDimpleRightRight lip corner is pushed backwards.
Reference ImageMouthDimpleLeftLeft lip corner is pulled backwards.
Reference ImageMouthRaiserUpperRaises and slightly pushes out the upper mouth.
Reference ImageMouthRaiserLowerRaises and slightly pushes out the lower mouth.
Reference ImageMouthPressRightRight side lips press and flatten together vertically.
Reference ImageMouthPressLeftLeft side lips press and flatten together vertically.
Reference ImageMouthTightenerRightRight side lips squeeze together horizontally.
Reference ImageMouthTightenerLeftLeft side lips squeeze together horizontally.
- - - - - - - - - - - - - - - - - - - {/* - - - - */} - - - - - - - - - - - - - - - - - - - - - {/* - - - - */} - - - - - - - - - - - - - - - - - - - - - - - - - - {/* - - - - */} - - - - - - - - - - - -
Tongue
ReferenceNameFunction
Reference ImageTongueOutTongue visibly sticks out of the mouth.
Reference ImageTongueUpTongue points up.
Reference ImageTongueDownTongue points down.
Reference ImageTongueRightTongue points right.
Reference ImageTongueLeftTongue points left.
Reference ImageTongueRollSides of the tongue funnel, creating a 'hotdog' shape.
Reference ImageTongueBendDown1Tongue arches up then down inside the mouth.
Reference ImageTongueCurlUp1Tongue arches down then up inside the mouth.
Reference ImageTongueSquish1Tongue squishes together and thickens.
Reference ImageTongueFlat1Tongue flattens and thins out.
Reference ImageTongueTwistRight1Tongue tip rotates clockwise, with the rest following gradually.
Reference ImageTongueTwistLeft1Tongue tip rotates counter-clockwise, with the rest following gradually.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Neck
ReferenceNameFunction
Reference ImageSoftPalateClose1Inner mouth throat closes.
Reference ImageThroatSwallow1The Adam's apple visibly swallows.
Reference ImageNeckFlexRight1Right side neck visibly flexes.
Reference ImageNeckFlexLeft1Left side neck visibly flexes.
+, + 'EyeLookOutRight', + Right eye looks out. + ], + [ + Reference Image, + 'EyeLookInRight', + Right eye looks in. + ], + [ + Reference Image, + 'EyeLookUpRight', + Right eye looks up. + ], + [ + Reference Image, + 'EyeLookDownRight', + Right eye looks down. + ], + [ + Reference Image, + 'EyeLookOutLeft', + Left eye looks out. + ], + [ + Reference Image, + 'EyeLookInLeft', + Left eye looks in. + ], + [ + Reference Image, + 'EyeLookUpLeft', + Left eye looks up. + ], + [ + Reference Image, + 'EyeLookDownLeft', + Left eye looks down. + ], + [ + Reference Image, + 'EyeClosedRight', + Closes the right eyelid. + ], + [ + Reference Image, + 'EyeClosedLeft', + Closes the left eyelid. + ], + [ + Reference Image, + 'EyeSquintRight', + Squeezes the right eye socket muscles. + ], + [ + Reference Image, + 'EyeSquintLeft', + Squeezes the left eye socket muscles. + ], + [ + Reference Image, + 'EyeWideRight', + Right eyelid widens beyond relaxed. + ], + [ + Reference Image, + 'EyeWideLeft', + Left eyelid widens beyond relaxed. + ], + [ + Reference Image, + 'EyeDilationRight', + Dilates the right eye pupil + ], + [ + Reference Image, + 'EyeDilationLeft', + Dilates the left eye pupil + ], + [ + Reference Image, + 'EyeConstrictRight', + Constricts the right eye pupil + ], + [ + Reference Image, + 'EyeConstrictLeft', + Constricts the left eye pupil + ], + [ + Reference Image, + 'BrowPinchRight', + Right eyebrow pinches in. + ], + [ + Reference Image, + 'BrowPinchLeft', + Left eyebrow pinches in. + ], + [ + Reference Image, + 'BrowLowererRight', + Outer right eyebrow pulls down. + ], + [ + Reference Image, + 'BrowLowererLeft', + Outer Left eyebrow pulls down. + ], + [ + Reference Image, + 'BrowInnerUpRight', + Inner right eyebrow pulls up. + ], + [ + Reference Image, + 'BrowInnerUpLeft', + Inner left eyebrow pulls up. + ], + [ + Reference Image, + 'BrowOuterUpRight', + Outer right eyebrow pulls up. + ], + [ + Reference Image, + 'BrowOuterUpLeft', + Outer left eyebrow pulls up. + ], + [ + Reference Image, + 'NoseSneerRight', + Right side face sneers. + ], + [ + Reference Image, + 'NoseSneerLeft', + Left side face sneers. + ], + [ + Reference Image, + 'NasalDilationRight', + Right side nose canal dilates. + ], + [ + Reference Image, + 'NasalDilationLeft', + Left side nose canal dilates. + ], + [ + Reference Image, + 'NasalConstrictRight', + Right side nose canal constricts. + ], + [ + Reference Image, + 'NasalConstrictLeft', + Left side nose canal constricts. + ], + [ + Reference Image, + 'CheekSquintRight', + Raises the right side cheek. + ], + [ + Reference Image, + 'CheekSquintLeft', + Raises the left side cheek. + ], + [ + Reference Image, + 'CheekPuffRight', + Puffs the right side cheek. + ], + [ + Reference Image, + 'CheekPuffLeft', + Puffs the left side cheek. + ], + [ + Reference Image, + 'CheekSuckRight', + Sucks in the right side cheek. + ], + [ + Reference Image, + 'CheekSuckLeft', + Sucks in the left side cheek. + ], + [ + Reference Image, + 'JawOpen', + Opens jawbone. + ], + [ + Reference Image, + 'MouthClosed', + Closes mouth (in relation to JawOpen). + ], + [ + Reference Image, + 'JawRight', + Pushes jawbone right. + ], + [ + Reference Image, + 'JawLeft', + Pushes jawbone left. + ], + [ + Reference Image, + 'JawForward', + Pushes jawbone forwards. + ], + [ + Reference Image, + 'JawBackward', + Pulls jawbone backwards. + ], + [ + Reference Image, + 'JawClench', + Flexes jaw muscles. + ], + [ + Reference Image, + 'JawMandibleRaise', + Raises jawbone. + ], + [ + Reference Image, + 'LipSuckUpperRight', + Upper right lip part tucks in the mouth. + ], + [ + Reference Image, + 'LipSuckUpperLeft', + Upper left lip part tucks in the mouth. + ], + [ + Reference Image, + 'LipSuckLowerRight', + Lower right lip part tucks in the mouth. + ], + [ + Reference Image, + 'LipSuckLowerLeft', + Lower left lip part tucks in the mouth. + ], + [ + Reference Image, + 'LipSuckCornerRight', + Right lip corner folds into the mouth. + ], + [ + Reference Image, + 'LipSuckCornerLeft', + Left lip corner folds into the mouth. + ], + [ + Reference Image, + 'LipFunnelUpperRight', + Upper right lip part pushes into a funnel. + ], + [ + Reference Image, + 'LipFunnelUpperLeft', + Upper left lip part pushes into a funnel. + ], + [ + Reference Image, + 'LipFunnelLowerRight', + Lower right lip part pushes into a funnel. + ], + [ + Reference Image, + 'LipFunnelLowerLeft', + Lower left lip part pushes into a funnel. + ], + [ + Reference Image, + 'LipPuckerUpperRight', + Upper right lip part pushes outward. + ], + [ + Reference Image, + 'LipPuckerUpperLeft', + Upper left lip part pushes outward. + ], + [ + Reference Image, + 'LipPuckerLowerRight', + Lower right lip part pushes outward. + ], + [ + Reference Image, + 'LipPuckerLowerLeft', + Lower left lip part pushes outward. + ], + [ + Reference Image, + 'MouthUpperUpRight', + Upper right part of the lip pulls up. + ], + [ + Reference Image, + 'MouthUpperUpLeft', + Upper left part of the lip pulls up. + ], + [ + Reference Image, + 'MouthLowerDownRight', + Lower right part of the lip pulls up. + ], + [ + Reference Image, + 'MouthLowerDownLeft', + Lower left part of the lip pulls up. + ], + [ + Reference Image, + 'MouthUpperDeepenRight', + Upper right lip part pushes in the cheek. + ], + [ + Reference Image, + 'MouthUpperDeepenLeft', + Upper left lip part pushes in the cheek. + ], + [ + Reference Image, + 'MouthUpperRight', + Moves upper lip right. + ], + [ + Reference Image, + 'MouthUpperLeft', + Moves upper lip left. + ], + [ + Reference Image, + 'MouthLowerRight', + Moves lower lip right. + ], + [ + Reference Image, + 'MouthLowerLeft', + Moves lower lip left. + ], + [ + Reference Image, + 'MouthCornerPullRight', + Right lip corner pulls diagonally up and out. + ], + [ + Reference Image, + 'MouthCornerPullLeft', + Left lip corner pulls diagonally up and out. + ], + [ + Reference Image, + 'MouthCornerSlantRight', + Right corner lip slants up. + ], + [ + Reference Image, + 'MouthCornerSlantLeft', + Left corner lip slants up. + ], + [ + Reference Image, + 'MouthFrownRight', + Right corner lip pulls down. + ], + [ + Reference Image, + 'MouthFrownLeft', + Left corner lip pulls down. + ], + [ + Reference Image, + 'MouthStretchRight', + Right corner lip pulls out and down. + ], + [ + Reference Image, + 'MouthStretchLeft', + Left corner lip pulls out and down. + ], + [ + Reference Image, + 'MouthDimpleRight', + Right lip corner is pushed backwards. + ], + [ + Reference Image, + 'MouthDimpleLeft', + Left lip corner is pulled backwards. + ], + [ + Reference Image, + 'MouthRaiserUpper', + Raises and slightly pushes out the upper mouth. + ], + [ + Reference Image, + 'MouthRaiserLower', + Raises and slightly pushes out the lower mouth. + ], + [ + Reference Image, + 'MouthPressRight', + Right side lips press and flatten together vertically. + ], + [ + Reference Image, + 'MouthPressLeft', + Left side lips press and flatten together vertically. + ], + [ + Reference Image, + 'MouthTightenerRight', + Right side lips squeeze together horizontally. + ], + [ + Reference Image, + 'MouthTightenerLeft', + Left side lips squeeze together horizontally. + ], + [ + Reference Image, + 'TongueOut', + Tongue visibly sticks out of the mouth. + ], + [ + Reference Image, + 'TongueUp', + Tongue points up. + ], + [ + Reference Image, + 'TongueDown', + Tongue points down. + ], + [ + Reference Image, + 'TongueRight', + Tongue points right. + ], + [ + Reference Image, + 'TongueLeft', + Tongue points left. + ], + [ + Reference Image, + 'TongueRoll', + Sides of the tongue funnel, creating a 'hotdog' shape. + ], + [ + Reference Image, + 'TongueBendDown', + Tongue arches up then down inside the mouth. + ], + [ + Reference Image, + 'TongueCurlUp', + Tongue arches down then up inside the mouth. + ], + [ + Reference Image, + 'TongueSquish', + Tongue squishes together and thickens. + ], + [ + Reference Image, + 'TongueFlat', + Tongue flattens and thins out. + ], + [ + Reference Image, + 'TongueTwistRight', + Tongue tip rotates clockwise, with the rest following gradually. + ], + [ + Reference Image, + 'TongueTwistLeft', + Tongue tip rotates counter-clockwise, with the rest following gradually. + ], + [ + Reference Image, + 'SoftPalateClose¹', + Inner mouth throat closes. + ], + [ + Reference Image, + 'ThroatSwallow¹', + The Adam's apple visibly swallows. + ], + [ + Reference Image, + 'NeckFlexRight¹', + Right side neck visibly flexes. + ], + [ + Reference Image, + 'NeckFlexLeft¹', + Left side neck visibly flexes. + ], + ]} +/> import OneExplain from './unified-explanations/super-scripts/_1_explain.mdx' import TwoExplain from './unified-explanations/super-scripts/_2_explain.mdx' From b1f36677942ae7c30833570bf25ee11504e73fcb Mon Sep 17 00:00:00 2001 From: regzo2 Date: Mon, 21 Aug 2023 14:48:51 -0400 Subject: [PATCH 03/12] Added comparisons between common face tracking standards. --- .../compatibility/_category_.json | 8 + .../compatibility/overview.mdx | 184 ++++++++++++++++++ 2 files changed, 192 insertions(+) create mode 100644 docs/tutorial-avatars/tutorial-avatars-extras/compatibility/_category_.json create mode 100644 docs/tutorial-avatars/tutorial-avatars-extras/compatibility/overview.mdx diff --git a/docs/tutorial-avatars/tutorial-avatars-extras/compatibility/_category_.json b/docs/tutorial-avatars/tutorial-avatars-extras/compatibility/_category_.json new file mode 100644 index 00000000..fb243e09 --- /dev/null +++ b/docs/tutorial-avatars/tutorial-avatars-extras/compatibility/_category_.json @@ -0,0 +1,8 @@ +{ + "label": "Compatibility", + "position": 2, + "link": { + "type": "generated-index", + "description": "Information pertaining to Unified Expressions compatibility." + } +} diff --git a/docs/tutorial-avatars/tutorial-avatars-extras/compatibility/overview.mdx b/docs/tutorial-avatars/tutorial-avatars-extras/compatibility/overview.mdx new file mode 100644 index 00000000..6222c380 --- /dev/null +++ b/docs/tutorial-avatars/tutorial-avatars-extras/compatibility/overview.mdx @@ -0,0 +1,184 @@ +--- +sidebar_position: 1 +description: Overview of what face tracking standards can express in Unified Expressions. +--- + +import {EditUrl, CustomLink} from '@site/src/components/Utils.tsx' +import FilterTable from '@site/src/components/FilterTable.tsx'; + +# Tracking Standard Comparison Overview + +*** + +:::note How to read this section + +This page goes over specific translations for each standard into +Unified Expressions. For more concrete examples of each standard listed, +please refer to the appropriate standards' documentation. + +Base and Blended shapes from Unified Expressions will be matched directly with +other standards' shapes. Some caveats such as unique shapes will be +given more detailed explanations on how they can translate to Unified Expressions. + +::: + +:::info Table Explained + +If there are multiple shapes listed in the same row, it means that multiple +shapes combine together to create the single shape of a specified standard. + +If an expression is given an `~` it means that the shape is either a part of or in +other expressions. + +If there is a Unified shape row with a condition (`While X`, `Except X`), it means that the +specified shapes of other standards require the `X` shape to behave a certain way in +order to properly convey the specified Unified expression. Usually these require specific +animation compensation to work in Unified Expressions but are otherwise anatomically +consistent within the specific row. + +* `While` means a standard requires the Unified shape to be active in some way. +* `Except` means a standard requires the Unified shape to be inactive in some way. +* `Includes` means a standard has this specific Unified shape baked into the shape. + +In all conditions, the shape can be converted to be Unified Expressions +compatible with no loss to tracking or expression behavior. For more concise +and readable information for specific tracking standards and how they convert +to Unified Expressions, please refer to the standard's section in Compatbility. + +This table is presented to provide a generalized overview of how different tracking +standards compare to each other. + +::: + +### Standard Comparisons + +*BrowDownRight
CheekSquintRight
EyeSquintRight
While EyeClosedRight, '~', 'Eye_Right_squeeze¹', '~'], + [<>*BrowDownLeft
CheekSquintLeft
EyeSquintLeft
While EyeClosedLeft, '~', 'Eye_Left_squeeze¹', '~'], + ['EyeWideRight', 'eyeWideRight', 'Eye_Right_Wide', 'EYES_WIDEN_R'], + ['EyeWideLeft', 'eyeWideLeft', 'Eye_Left_Wide', 'EYES_WIDEN_L'], + ['EyeDilationRight', '❌', 'Eye_Right_Dilation', '❌'], + ['EyeDilationLeft', '❌', 'Eye_Left_Dilation', '❌'], + ['EyeConstrictRight', '❌', 'Eye_Right_Constrict', '❌'], + ['EyeConstrictLeft', '❌', 'Eye_Left_Constrict', '❌'], + ['*BrowDownRight', 'browDownRight', '❌', 'BROW_LOWERER_R'], + ['*BrowDownLeft', 'browDownLeft', '❌', 'BROW_LOWERER_L'], + ['BrowInnerUpRight', '❌', '❌', 'INNER_BROW_RAISER_R'], + ['BrowInnerUpLeft', '❌', '❌', 'INNER_BROW_RAISER_L'], + ['*BrowInnerUp', 'browInnerUp', '❌', '~'], + ['BrowOuterUpRight', 'browOuterUpRight', '❌', 'OUTER_BROW_RAISER_R'], + ['BrowOuterUpLeft', 'browOuterUpLeft', '❌', 'OUTER_BROW_RAISER_L'], + ['NoseSneerRight', 'noseSneerRight', '❌', 'NOSE_WRINKLER_R'], + ['NoseSneerLeft', 'noseSneerLeft', '❌', 'NOSE_WRINKLER_L'], + ['CheekSquintRight', 'cheekSquintRight', '~', 'CHEEK_RAISER_R'], + ['CheekSquintLeft', 'cheekSquintLeft', '~', 'CHEEK_RAISER_L'], + ['CheekPuffRight', '~', 'Cheek_Puff_Right', 'CHEEK_PUFF_R'], + ['CheekPuffLeft', '~', 'Cheek_Puff_Left', 'CHEEK_PUFF_L'], + ['*CheekPuff', 'cheekPuff', '~', '~'], + ['CheekSuckRight', '❌', '~', 'CHEEK_SUCK_R'], + ['CheekSuckLeft', '❌', '~', 'CHEEK_SUCK_L'], + ['CheekSuck', '❌', 'Cheek_Suck', '~'], + ['JawOpen', 'jawOpen', 'Jaw_Open', 'JAW_DROP'], + ['MouthClosed', 'mouthClose', '~', 'LIPS_TOWARD'], + [<>MouthClosed
Includes JawOpen, '~', 'MouthApeShape¹', '~'], + ['JawRight', 'jawRight', 'Jaw_Right', 'JAW_SIDEWAYS_RIGHT'], + ['JawLeft', 'jawLeft', 'Jaw_Left', 'JAW_SIDEWAYS_LEFT'], + ['JawForward', 'jawForward', 'Jaw_Forward', 'JAW_THRUST'], + ['LipSuckUpperRight', '~', '~', 'LIP_SUCK_RT'], + ['LipSuckUpperLeft', '~', '~', 'LIP_SUCK_LT'], + ['*LipSuckUpper', 'mouthRollUpper', 'Mouth_Upper_Inside', '~'], + ['LipSuckLowerRight', '~', '~', 'LIP_SUCK_RB'], + ['LipSuckLowerLeft', '~', '~', 'LIP_SUCK_LB'], + ['*LipSuckLower', 'mouthRollLower', 'Mouth_Lower_Inside', '~'], + ['LipFunnelUpperRight', '~', '~', 'LIP_FUNNELER_RT'], + ['LipFunnelUpperLeft', '~', '~', 'LIP_FUNNELER_LT'], + ['*LipFunnelUpper', '~', 'Mouth_Upper_Overturn¹', '~'], + ['LipFunnelLowerRight', '~', '~', 'LIP_SUCK_RB'], + ['LipFunnelLowerLeft', '~', '~', 'LIP_SUCK_LB'], + ['*LipFunnelLower', '~', 'Mouth_Lower_Overturn¹', '~'], + ['*LipFunnel', 'mouthFunnel', '~', '~'], + [<>LipPuckerUpperRight
LipPuckerLowerRight, '~', '~', 'LIP_PUCKER_R'], + [<>LipPuckerUpperLeft
LipPuckerLowerLeft, '~', '~', 'LIP_PUCKER_L'], + ['*LipPucker', 'mouthPucker', 'Mouth_Pout', ''], + ['MouthUpperUpRight', 'mouthUpperUpRight', 'Mouth_Upper_Up_Right', 'UPPER_LIP_RAISER_R'], + ['MouthUpperUpLeft', 'mouthUpperUpLeft', 'Mouth_Upper_Up_Left', 'UPPER_LIP_RAISER_L'], + ['MouthLowerDownRight', 'mouthLowerUpRight', 'Mouth_Lower_Down_Right', 'LOWER_LIP_DEPRESSOR_R'], + ['MouthLowerDownLeft', 'mouthLowerUpLeft', 'Mouth_Lower_Down_Left', 'LOWER_LIP_DEPRESSER_L'], + ['*MouthSmileRight', 'mouthSmileRight', 'Mouth_Smile_Right', 'LIP_CORNER_PULLER_R'], + ['*MouthSmileLeft', 'mouthSmileLeft', 'Mouth_Smile_Left', 'LIP_CORNER_PULLER_L'], + ['MouthFrownRight', 'mouthFrownRight', '~', 'LIP_CORNER_DEPRESSOR_R'], + ['MouthFrownLeft', 'mouthFrownLeft', '~', 'LIP_CORNER_DEPRESSOR_L'], + ['*MouthSadRight', '~', 'Mouth_Sad_Right', '~'], + ['*MouthSadLeft', '~', 'Mouth_Sad_Left', '~'], + ['MouthStretchRight', 'mouthStretchRight', '~', 'LIP_STRETCHER_R'], + ['MouthStretchLeft', 'mouthStretchLeft', '~', 'LIP_STRETCHER_L'], + ['MouthDimplerRight', 'mouthDimpleRight', '~', 'DIMPLER_R'], + ['MouthDimplerLeft', 'mouthDimpleLeft', '~', 'DIMPLER_L'], + ['MouthRaiserUpper', 'mouthShrugUpper', '❌', 'CHIN_RAISER_T'], + ['MouthRaiserLower', 'mouthShrugLower', 'Mouth_Lower_Overlay', 'CHIN_RAISER_B'], + ['MouthPressRight', 'mouthPressRight¹', '❌', 'LIP_PRESSOR_R'], + ['MouthPressLeft', 'mouthPressLeft¹', '❌', 'LIP_PRESSOR_L'], + ['MouthTightenerRight', '❌', '❌', 'LIP_TIGHTENER_R'], + ['MouthTightenerLeft', '❌', '❌', 'LIP_TIGHTENER_L'], + ['TongueOut', 'tongueOut', <>Tongue_LongStep1
Tongue_LongStep2, '❌'], + ['TongueUp', '❌', 'Tongue_Up', '❌'], + ['TongueDown', '❌', 'Tongue_Down', '❌'], + ['TongueRight', '❌', 'Tongue_Right', '❌'], + ['TongueLeft', '❌', 'Tongue_Left', '❌'], + ['TongueRoll', '❌', 'Tongue_Roll', '❌'], + ]} +/> + +* ¹ Requires the use of a specialized animation setup to work with VRCFT V2 tracking. +* \* Blended Shape. + +### Standard Documentation + +VRCFT Documentation + ], + [ + 'ARKit', + <> + Apple Developer Documentation
+ ARKit Shape References (Unofficial) + + ], + [ + 'VIVE SRanipal', + <> + VIVE Developer Resource
+ VRCFT v4.0 Documentation + + ], + [ + 'Meta Movement', + <> + Blendshape Visual Reference for Movement + + ], + ]} +/> From ea8eeb6be4cafd8fbbfae9c53b477b0e139d2c1d Mon Sep 17 00:00:00 2001 From: regzo2 Date: Mon, 21 Aug 2023 14:49:16 -0400 Subject: [PATCH 04/12] Added individual compat pages for more details --- .../compatibility/arkit.mdx | 103 +++++++ .../compatibility/meta-movement.mdx | 111 ++++++++ .../compatibility/vive-sranipal.mdx | 265 ++++++++++++++++++ 3 files changed, 479 insertions(+) create mode 100644 docs/tutorial-avatars/tutorial-avatars-extras/compatibility/arkit.mdx create mode 100644 docs/tutorial-avatars/tutorial-avatars-extras/compatibility/meta-movement.mdx create mode 100644 docs/tutorial-avatars/tutorial-avatars-extras/compatibility/vive-sranipal.mdx diff --git a/docs/tutorial-avatars/tutorial-avatars-extras/compatibility/arkit.mdx b/docs/tutorial-avatars/tutorial-avatars-extras/compatibility/arkit.mdx new file mode 100644 index 00000000..300fa6bc --- /dev/null +++ b/docs/tutorial-avatars/tutorial-avatars-extras/compatibility/arkit.mdx @@ -0,0 +1,103 @@ +--- +sidebar_position: 2 +description: Information about ARKit face tracking works with Unified Expressions. +--- + +import {EditUrl, CustomLink} from '@site/src/components/Utils.tsx' +import FilterTable from '@site/src/components/FilterTable.tsx'; + +# Apple ARKit + +*** + +Apple provides a face tracking standard for iOS devices in their ARKit software, +with the blendshapes for it often referred to as PerfectSync, AR52, and ARKit respectively. + +The following table shows how ARKit face tracking translates to Unified Expressions + +BrowPinchRight
BrowLowererRight, 'BrowDownRight', 'browDownRight'], + [<>BrowPinchLeft
BrowLowererLeft, 'BrowDownLeft', 'browDownLeft'], + [<>BrowInnerUpRight
BrowInnerUpLeft,'BrowInnerUp', 'browInnerUp'], + ['BrowOuterUpRight', '~', 'browOuterUpRight'], + ['BrowOuterUpLeft', '~', 'browOuterUpLeft'], + ['NoseSneerRight', '~', 'noseSneerRight'], + ['NoseSneerLeft', '~', 'noseSneerLeft'], + ['CheekSquintRight', '~', 'cheekSquintRight'], + ['CheekSquintLeft', '~', 'cheekSquintLeft'], + [<>CheekPuffRight
CheekPuffLeft, 'CheekPuff', 'cheekPuff'], + ['JawOpen', '~', 'jawOpen'], + ['MouthClosed', '~', 'mouthClose'], + ['JawRight', '~', 'jawRight'], + ['JawLeft', '~', 'jawLeft'], + ['JawForward', '~', 'jawForward'], + [<>LipSuckUpperRight
LipSuckUpperRight, 'LipSuckUpper', 'mouthRollUpper'], + [<>LipSuckLowerRight
LipSuckLowerRight, 'LipSuckLower', 'mouthRollLower'], + [<>LipPuckerUpperRight
LipPuckerUpperRight
LipPuckerLowerRight
LipPuckerLowerRight, 'LipFunnel', 'mouthFunnel'], + [<>LipPuckerUpperRight
LipPuckerUpperRight
LipPuckerLowerRight
LipPuckerLowerRight, 'LipPucker', 'mouthPucker'], + ['MouthUpperUpRight', '~', 'mouthUpperUpRight'], + ['MouthUpperUpLeft', '~', 'mouthUpperUpLeft'], + ['MouthLowerDownRight', '~', 'mouthLowerUpRight'], + ['MouthLowerDownLeft', '~', 'mouthLowerUpLeft'], + [<>MouthCornerPullerRight
MouthCornerSlantRight,'MouthSmileRight', 'mouthSmileRight'], + [<>MouthCornerPullerLeft
MouthCornerSlantLeft,'MouthSmileLeft', 'mouthSmileLeft'], + ['MouthFrownRight', '~', 'mouthFrownRight'], + ['MouthFrownLeft', '~', 'mouthFrownLeft'], + ['MouthStretchRight', '~', 'mouthStretchRight'], + ['MouthStretchLeft', '~', 'mouthStretchLeft'], + ['MouthDimplerRight', '~', 'mouthDimpleRight'], + ['MouthDimplerLeft', '~', 'mouthDimpleLeft'], + ['MouthRaiserUpper', '~', 'mouthShrugUpper'], + ['MouthRaiserLower', '~', 'mouthShrugLower'], + ['MouthPressRight', '~', 'mouthPressRight'], + ['MouthPressLeft', '~', 'mouthPressLeft'], + ['TongueOut', '~', 'tongueOut'] + ]} +/> + +:::caution Some shapes are not tracked + +ARKit does not have a corresponding expression for following does not track the following Unified expressions: + +``` +EyeDilationRight +EyeDilationLeft +EyeConstrictRight +EyeConstrictLeft + +CheekSuckRight +CheekSuckLeft + +MouthTightenerRight +MouthTightenerLeft + +Tongue Directions +Misc. Tongue Expressions +``` + +The absence of these shapes does not affect tracking quality. +::: + +### Standard Documentation + +Apple Developer Documentation
+ARKit Shape References (Unofficial) \ No newline at end of file diff --git a/docs/tutorial-avatars/tutorial-avatars-extras/compatibility/meta-movement.mdx b/docs/tutorial-avatars/tutorial-avatars-extras/compatibility/meta-movement.mdx new file mode 100644 index 00000000..024d805d --- /dev/null +++ b/docs/tutorial-avatars/tutorial-avatars-extras/compatibility/meta-movement.mdx @@ -0,0 +1,111 @@ +--- +sidebar_position: 2 +description: Information about Meta Movement (Quest Pro) face tracking works with Unified Expressions. +--- + +import {EditUrl, CustomLink} from '@site/src/components/Utils.tsx' +import FilterTable from '@site/src/components/FilterTable.tsx'; + +# Meta Movement (Quest Pro) + +*** + +Meta provides a face tracking standard for Quest Pro in their Movement SDK, +with the blendshapes for it often referred to as FACS, Quest Pro Face Tracking, +and Movement respectively. + +The following table shows how Movement face tracking translates to Unified Expressions. + +### Movement Comparison + +BrowPinchRight
BrowLowererRight, 'BrowDownRight', 'BROW_LOWERER_R'], + [<>BrowPinchLeft
BrowLowererLeft, 'BrowDownLeft', 'BROW_LOWERER_L'], + ['BrowInnerUpRight', '~', 'INNER_BROW_RAISER_R'], + ['BrowInnerUpLeft', '~', 'INNER_BROW_RAISER_L'], + ['BrowOuterUpRight', '~', 'OUTER_BROW_RAISER_R'], + ['BrowOuterUpLeft', '~', 'OUTER_BROW_RAISER_L'], + ['NoseSneerRight', '~', 'NOSE_WRINKLER_R'], + ['NoseSneerLeft', '~', 'NOSE_WRINKLER_L'], + ['CheekSquintRight', '~', 'CHEEK_RAISER_R'], + ['CheekSquintLeft', '~', 'CHEEK_RAISER_L'], + ['CheekPuffRight', '~', 'CHEEK_PUFF_R'], + ['CheekPuffLeft', '~', 'CHEEK_PUFF_L'], + ['CheekSuckRight', '~', 'CHEEK_SUCK_R'], + ['CheekSuckLeft', '~', 'CHEEK_SUCK_L'], + ['JawOpen', '~', 'JAW_DROP'], + ['MouthClosed', '~', 'LIPS_TOWARD'], + ['JawRight', '~', 'JAW_SIDEWAYS_RIGHT'], + ['JawLeft', '~', 'JAW_SIDEWAYS_LEFT'], + ['JawForward', '~', 'JAW_THRUST'], + ['LipSuckUpperRight', '~', 'LIP_SUCK_RT'], + ['LipSuckUpperLeft', '~', 'LIP_SUCK_LT'], + ['LipSuckLowerRight', '~', 'LIP_SUCK_RB'], + ['LipSuckLowerLeft', '~', 'LIP_SUCK_LB'], + ['LipFunnelUpperRight', '~', 'LIP_FUNNELER_RT'], + ['LipFunnelUpperLeft', '~', 'LIP_FUNNELER_LT'], + ['LipFunnelLowerRight', '~', 'LIP_SUCK_RB'], + ['LipFunnelLowerLeft', '~', 'LIP_SUCK_LB'], + [<>LipPuckerUpperRight
LipPuckerLowerRight, 'N/A', 'LIP_PUCKER_R'], + [<>LipPuckerUpperLeft
LipPuckerLowerLeft, 'N/A', 'LIP_PUCKER_L'], + ['MouthUpperUpRight', '~', 'UPPER_LIP_RAISER_R'], + ['MouthUpperUpLeft', '~', 'UPPER_LIP_RAISER_L'], + ['MouthLowerDownRight', '~', 'LOWER_LIP_DEPRESSOR_R'], + ['MouthLowerDownLeft', '~', 'LOWER_LIP_DEPRESSER_L'], + [<>MouthCornerPullerRight
MouthCornerSlantRight, 'MouthSmileRight', 'LIP_CORNER_PULLER_R'], + [<>MouthCornerPullerLeft
MouthCornerSlantLeft, 'MouthSmileLeft', 'LIP_CORNER_PULLER_L'], + ['MouthFrownRight', '~', 'LIP_CORNER_DEPRESSOR_R'], + ['MouthFrownLeft', '~', 'LIP_CORNER_DEPRESSOR_L'], + ['MouthStretchRight', '~', 'LIP_STRETCHER_R'], + ['MouthStretchLeft', '~', 'LIP_STRETCHER_L'], + ['MouthDimplerRight', '~', 'DIMPLER_R'], + ['MouthDimplerLeft', '~', 'DIMPLER_L'], + ['MouthRaiserUpper', '~', 'CHIN_RAISER_T'], + ['MouthRaiserUpper', '~', 'CHIN_RAISER_T'], + ['MouthPressRight', '~', 'LIP_PRESSOR_R'], + ['MouthPressLeft', '~', 'LIP_PRESSOR_L'], + ['MouthTightenerRight', '~', 'LIP_TIGHTENER_R'], + ['MouthTightenerLeft', '~', 'LIP_TIGHTENER_L'], + ]} +/> + +:::caution Some shapes are not tracked + +Movement does not have a corresponding expression for following Unified expressions: + +``` +EyeDilationRight +EyeDilationLeft +EyeConstrictRight +EyeConstrictLeft + +TongueOut +Tongue Directions +Misc. Tongue Expressions +``` + +The absence of these shapes does not affect tracking quality. +::: + +### Standard Documentation + +Blendshape Visual Reference for Movement \ No newline at end of file diff --git a/docs/tutorial-avatars/tutorial-avatars-extras/compatibility/vive-sranipal.mdx b/docs/tutorial-avatars/tutorial-avatars-extras/compatibility/vive-sranipal.mdx new file mode 100644 index 00000000..0610c380 --- /dev/null +++ b/docs/tutorial-avatars/tutorial-avatars-extras/compatibility/vive-sranipal.mdx @@ -0,0 +1,265 @@ +--- +sidebar_position: 2 +description: Information about VIVE SRanipal face tracking works with Unified Expressions. +--- + +import {EditUrl, CustomLink} from '@site/src/components/Utils.tsx' +import FilterTable from '@site/src/components/FilterTable.tsx'; + +# VIVE SRanipal + +*** + +VIVE provides a face tracking standard as part of their SRanipal SDK and +software. It provides the tracking basis for the Vive Pro Eye, Vive Facial +Tracker, and other VIVE products that have face tracking capabilities. + +The following table shows how SRanipal face tracking translates to Unified Expressions. + +:::info Table Explained + +If there are multiple shapes listed in the same row, it means that multiple +shapes combine together to create the single shape of a specified standard. + +If there is a Unified shape row with a condition (`While X`, `Except X`), it means that the +specified shapes of other standards require the `X` shape to behave a certain way in +order to properly convey the specified Unified expression. Usually these require specific +animation compensation to work in Unified Expressions but are otherwise anatomically +consistent within the specific row. + +* `While` means a standard requires the Unified shape to be active in some way. +* `Except` means a standard requires the Unified shape to be inactive in some way. +* `Includes` means a standard has this specific Unified shape baked into the shape. + +In all conditions, the shape can be converted to be Unified Expressions +compatible with no loss to tracking or expression behavior. For more concise +and readable information for specific tracking standards and how they convert +to Unified Expressions, please refer to [Admonitions](#admonitions). + +::: + +### SRanipal Comparison + +*BrowDownRight
CheekSquintRight
EyeSquintRight
While EyeClosedRight, '~', 'Eye_Right_squeeze¹'], + [<>*BrowDownLeft
CheekSquintLeft
EyeSquintLeft
While EyeClosedLeft, '~', 'Eye_Left_squeeze¹'], + ['EyeWideRight', '~', 'Eye_Right_Wide'], + ['EyeWideLeft', '~', 'Eye_Left_Wide'], + ['EyeDilationRight', '~', 'Eye_Right_Dilation'], + ['EyeDilationLeft', '~', 'Eye_Left_Dilation'], + ['EyeConstrictRight', '~', 'Eye_Right_Constrict'], + ['EyeConstrictLeft', '~', 'Eye_Left_Constrict'], + ['CheekPuffRight', '~', 'Cheek_Puff_Right'], + ['CheekPuffLeft', '~', 'Cheek_Puff_Left'], + [<>CheekSuckRight
CheekSuckLeft, 'CheekSuck', 'Cheek_Suck'], + ['JawOpen', '~', 'Jaw_Open'], + [<>MouthClosed
Includes JawOpen, '~', 'MouthApeShape¹'], + ['JawRight', '~', 'Jaw_Right'], + ['JawLeft', '~', 'Jaw_Left'], + ['JawForward', '~', 'Jaw_Forward'], + [<>LipSuckUpperRight
LipSuckUpperLeft, 'LipSuckUpper', 'Mouth_Upper_Inside'], + [<>LipSuckLowerRight
LipSuckLowerLeft, 'LipSuckLower', 'Mouth_Lower_Inside'], + [<>LipFunnelUpperRight
LipFunnelUpperLeft
While MouthUpperUp, 'LipFunnelUpper', 'Mouth_Upper_Overturn¹'], + [<>LipFunnelLowerRight
LipFunnelLowerLeft
While MouthLowerDown, 'LipFunnelLower', 'Mouth_Lower_Overturn¹'], + [<>LipPuckerUpperRight
LipPuckerUpperLeft
LipPuckerLowerRight
LipPuckerLowerLeft, 'LipPucker', 'Mouth_Pout'], + ['MouthUpperUpRight', '~', 'Mouth_Upper_Up_Right'], + ['MouthUpperUpLeft', '~', 'Mouth_Upper_Up_Left'], + ['MouthLowerDownRight', '~', 'Mouth_Lower_Down_Right'], + ['MouthLowerDownLeft', '~', 'Mouth_Lower_Down_Left'], + [<>MouthCornerPullerRight
MouthCornerSlantRight, 'MouthSmileRight', 'Mouth_Smile_Right'], + [<>MouthCornerPullerLeft
MouthCornerSlantLeft, 'MouthSmileLeft', 'Mouth_Smile_Left'], + [<>MouthFrownRight
MouthStretchRight, 'MouthSadRight', 'Mouth_Sad_Right'], + [<>MouthFrownRight
MouthStretchRight, 'MouthSadLeft', 'Mouth_Sad_Left'], + ['MouthRaiserLower', 'mouthShrugLower', 'Mouth_Lower_Overlay'], + ['TongueOut', 'tongueOut', <>Tongue_LongStep1
Tongue_LongStep2], + ['TongueUp', '~', 'Tongue_Up'], + ['TongueDown', '~', 'Tongue_Down'], + ['TongueRight', '~', 'Tongue_Right'], + ['TongueLeft', '~', 'Tongue_Left'], + ['TongueRoll', '~', 'Tongue_Roll'], + ]} +/> + +* ¹ More detailed reasoning is elaborated in [Admonitions](#admonitions) + +### Admonitions {#admonitions} + +Some expressions in SRanipal, due to the way the standard is designed, +may not have direct or intuitive assignments to Unified Expressions. + +This section will give detailed descriptions on how SRanipal controls Unified +Expressions. This can be useful for converting SRanipal shapes to Unified +Expressions, or making SRanipal shapes compatible in Unified Expressions +driven animation setups (in the case of VRCFT avatars). + +Acknowledging these differences in your avatar's setup should allow SRanipal +shapes to track as intended. Certain animation templates have these admonitions +built in, allowing SRanipal shapes to be used directly with Unified Expressions! + +This section provides a technical description of what each shape should do to +track as intended with Unifed Expressions. + + + From the SRanipal avatar reference, + this SRanipal expression controls these Unified + expressions while the eyelids are closed: +

+ EyeSquintRight
+ CheekSquintRight
+ BrowPinchRight
+ BrowLowererRight +

+ To get the intended tracking, these Unified expressions must be all active together + to trigger Eye_Right_squeeze in animation. Alternatively the listed UE expressions can be + made separately to allow for more robust tracking for non-SRanipal tracking. +

+ ], + [ + 'Eye_Left_squeeze', +

+ From the SRanipal avatar reference, + this SRanipal expression controls these Unified + expressions while the eyelids are closed: +

+ EyeSquintLeft
+ CheekSquintLeft
+ BrowPinchLeft
+ BrowLowererLeft +

+ To get the intended tracking, these Unified expressions must be all active together + to trigger Eye_Left_squeeze in animation. Alternatively the listed UE expressions can be + made separately to allow for more robust tracking for non-SRanipal tracking. +

+ ], + [ + 'Mouth_Ape_Shape', +

+ This SRanipal expression controls Unified's MouthClosed expression. + To get the intended tracking on this SRanipal shape, MouthClosed must negate JawOpen + in the animation proportional to the amount MouthClosed is active. +

+ Alternatively, this blendshape can be turned into MouthClosed by negating JawOpen + in the blendshape itself. +

+ ], + [ + 'Mouth_Upper_Overturn', +

+ This SRanipal expression controls Unified's LipFunnelUpperRight and LipFunnelUpperLeft expressions. + To get the intended tracking on this SRanipal shape, it should also include Mouth_Upper_Up_Right + and Mouth_Upper_Up_Left when this shape is active. +

+ Alternatively, this shape can be turned into LipFunnelUpper by adding Mouth_Upper_Up_Left and + Mouth_Upper_Up_Right to this shape. +

+ ], + [ + 'Mouth_Lower_Overturn', +

+ This SRanipal expression controls Unified's LipFunnelLowerRight and LipFunnelLowerLeft expressions. + To get the intended tracking on this SRanipal shape, it should also include Mouth_Lower_Down_Right + and Mouth_Lower_Down_Left when this shape is active. +

+ Alternatively, this shape can be turned into LipFunnelUpper by adding Mouth_Upper_Up_Left and + Mouth_Upper_Up_Right to this shape. +

+ ], + [ + 'Mouth_Smile_Right', +

+ This SRanipal expression directly controls Unified's MouthCornerPullerRight and + MouthCornerSlantRight, creating the MouthSmileRight Blended shape. On many avatars and + on the SRanipal reference avatar, the right cheek is squinting when smiling. It is perfectly acceptable + to have MouthSmileRight to have this behavior, especially when using SRanipal-compatible tracking + with this avatar. +

+ Optionally, if there is a desire for more expressive tracking then moving the cheek raising part + of Mouth_Smile_Right to it's own dedicated shape will allow CheekSquintRight to be able to control + it directly, allowing for more expressibility. This will require editing the blendshape directly or + creating new shapes to fulfill the change. +

+ ], + [ + 'Mouth_Smile_Left', +

+ This SRanipal expression directly controls Unified's MouthCornerPullerLeft and + MouthCornerSlantLeft, creating the MouthSmileLeft Blended shape. On many avatars and + on the SRanipal reference avatar, the right cheek is squinting when smiling. It is perfectly acceptable + to have MouthSmileLeft to have this behavior, especially when using SRanipal-compatible tracking + with this avatar. +

+ Optionally, if there is a desire for more expressive tracking then moving the cheek raising part + of Mouth_Smile_Left to it's own dedicated shape will allow CheekSquintLeft to be able to control + it directly, allowing for more expressibility. This will require editing the blendshape directly or + creating new shapes to fulfill the change. +

+ ], + [ + <>Tongue_LongStep1
Tongue_LongStep2, +

+ These SRanipal expressions control TongueOut linearly. + To get the intended tracking on this shape, let Tongue_LongStep1 activate + from 0-0.5, while LongStep2 activates from 0.5-1 in the animation. + These are corrective shapes for TongueOut, allowing for the tongue to + stick out of the mouth. +

+ ], + ]} +/> + +:::caution Some shapes are not tracked + +SRanipal does not have a corresponding expression for following Unified expressions: + +``` +BrowPinchRight +BrowPinchLeft +BrowLowererRight +BrowLowererLeft +BrowInnerUpRight +BrowInnerUpLeft +BrowOuterUpRight +BrowOuterUpLeft + +CheekSquintRight (baked into Mouth_Smile_Right) +CheekSquintLeft (baked into Mouth_Smile_Left) + +MouthRaiserUpper +MouthPressRight +MouthPressLeft +MouthTightenerLeft +MouthTightenerRight + +Some misc. Tongue Expressions +``` + +The absence of these shapes does not affect tracking quality. +::: + +### Standard Documentation + +Vive Developer Resource
+VRCFT v4.0 Documentation + From 4a57ea0038aef4407e7d4eb34d9acfb566da3801 Mon Sep 17 00:00:00 2001 From: regzo2 Date: Mon, 21 Aug 2023 14:50:19 -0400 Subject: [PATCH 05/12] Added page to compare software/hardware directly. --- docs/hardware/interface-compabilities.mdx | 138 ++++++++++++++++++++++ 1 file changed, 138 insertions(+) create mode 100644 docs/hardware/interface-compabilities.mdx diff --git a/docs/hardware/interface-compabilities.mdx b/docs/hardware/interface-compabilities.mdx new file mode 100644 index 00000000..988307ce --- /dev/null +++ b/docs/hardware/interface-compabilities.mdx @@ -0,0 +1,138 @@ +--- +sidebar_position: 1 +description: Overview of what interfaces can track what in VRCFaceTracking. +--- + +import {EditUrl, CustomLink} from '@site/src/components/Utils.tsx' +import FilterTable from '@site/src/components/FilterTable.tsx'; + +# Tracking Compatibility + +*** + +:::note How to read this section + +This page goes over generalized functions, features, and +tracking quality of each interface and what it can do in +VRCFaceTracking. For more specific information about the listed +interfaces please refer to their dedicated sections. + +::: + +Eye Widen
Eye Squeeze
Brow(Emulated), + '~', + <>Widen(Emulated)
Squeeze(Emulated)
, + <>Widen
Squint
Brow, + '❌', + '❌', + <>Widen
Squint
Brow, + '~', + '❌', + <>Widen
Squeeze
Brow(Emulated), + '~' + ], + [ + 'Upper Face Expressability', + 'High', + '~', + 'N/A', + 'Extreme', + '❌', + '❌', + '~', + 'Very High', + 'Extreme', + '❌', + 'High', + '~' + ], + [ + 'Upper Face Tracking Quality', + '~', + 'Very High', + '~', + 'High', + 'Mediocre', + '~', + '~', + 'Very High', + 'Very High', + '~', + '~', + 'High' + ], + [ + 'Lower Face Expression Support', + <>Brow(Emulated), + <>Jaw
Lip
Mouth
Cheek, + '~', + <>Brow
Jaw
Lip
Mouth
Cheek
Nose, + <>Brow
Jaw
Lip
Mouth
Cheek
Nose, + '~', + '~', + <>Brow
Jaw
Lip
Mouth
Cheek
Nose, + <>Jaw
Lip
Mouth
Cheek
Nose, + '~', + <>Brow(Emulated), + <>Jaw
Lip
Mouth
Cheek
Nose, + ], + [ + 'Lower Face Expressability', + '~', + 'High', + '~', + 'Very High', + 'High', + '~', + '~', + 'Very High', + 'Extreme', + '~', + '~', + 'High' + ], + [ + 'Face Tracking Quality', + '~', + 'Very High', + '~', + 'High', + 'Mediocre', + '~', + '~', + 'Very High', + 'Very High', + '~', + '~', + 'High' + ], + ['Tongue Expression Support', '~', 'Tongue Out & Directions', '~', '❌', 'Tongue Out', '~', '~', 'Tongue Out', 'All Tongue Expressions', '~', '~', 'Tongue Out & Directions'], + ]} +/> From ad065bff1aa41e0986049681e161adfbbcb2511c Mon Sep 17 00:00:00 2001 From: regzo2 Date: Mon, 21 Aug 2023 14:50:46 -0400 Subject: [PATCH 06/12] Updated yarn.lock (just in case) --- yarn.lock | 517 +++++++++++++++++++++++++++++++++--------------------- 1 file changed, 317 insertions(+), 200 deletions(-) diff --git a/yarn.lock b/yarn.lock index e90e22a6..4f869f40 100644 --- a/yarn.lock +++ b/yarn.lock @@ -76,7 +76,7 @@ "@algolia/requester-common" "4.17.0" "@algolia/transporter" "4.17.0" -"@algolia/client-search@4.17.0": +"@algolia/client-search@>= 4.9.1 < 6", "@algolia/client-search@4.17.0": version "4.17.0" resolved "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.17.0.tgz" integrity sha512-x4P2wKrrRIXszT8gb7eWsMHNNHAJs0wE7/uqbufm4tZenAp+hwU/hq5KVsY50v+PfwM0LcDwwn/1DroujsTFoA== @@ -150,6 +150,27 @@ resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.21.0.tgz" integrity sha512-gMuZsmsgxk/ENC3O/fRw5QY8A9/uxQbbCEypnLIiYYc/qVJtEV7ouxC3EllIIwNzMqAQee5tanFabWsUOutS7g== +"@babel/core@^7.0.0", "@babel/core@^7.0.0-0", "@babel/core@^7.11.6", "@babel/core@^7.12.0", "@babel/core@^7.13.0", "@babel/core@^7.18.6", "@babel/core@^7.19.6", "@babel/core@^7.4.0-0": + version "7.21.3" + resolved "https://registry.npmjs.org/@babel/core/-/core-7.21.3.tgz" + integrity sha512-qIJONzoa/qiHghnm0l1n4i/6IIziDpzqc36FBs4pzMhDUraHqponwJLiAKm1hGLP3OSB/TVNz6rMwVGpwxxySw== + dependencies: + "@ampproject/remapping" "^2.2.0" + "@babel/code-frame" "^7.18.6" + "@babel/generator" "^7.21.3" + "@babel/helper-compilation-targets" "^7.20.7" + "@babel/helper-module-transforms" "^7.21.2" + "@babel/helpers" "^7.21.0" + "@babel/parser" "^7.21.3" + "@babel/template" "^7.20.7" + "@babel/traverse" "^7.21.3" + "@babel/types" "^7.21.3" + convert-source-map "^1.7.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.2.2" + semver "^6.3.0" + "@babel/core@7.12.9": version "7.12.9" resolved "https://registry.npmjs.org/@babel/core/-/core-7.12.9.tgz" @@ -172,27 +193,6 @@ semver "^5.4.1" source-map "^0.5.0" -"@babel/core@^7.18.6", "@babel/core@^7.19.6": - version "7.21.3" - resolved "https://registry.npmjs.org/@babel/core/-/core-7.21.3.tgz" - integrity sha512-qIJONzoa/qiHghnm0l1n4i/6IIziDpzqc36FBs4pzMhDUraHqponwJLiAKm1hGLP3OSB/TVNz6rMwVGpwxxySw== - dependencies: - "@ampproject/remapping" "^2.2.0" - "@babel/code-frame" "^7.18.6" - "@babel/generator" "^7.21.3" - "@babel/helper-compilation-targets" "^7.20.7" - "@babel/helper-module-transforms" "^7.21.2" - "@babel/helpers" "^7.21.0" - "@babel/parser" "^7.21.3" - "@babel/template" "^7.20.7" - "@babel/traverse" "^7.21.3" - "@babel/types" "^7.21.3" - convert-source-map "^1.7.0" - debug "^4.1.0" - gensync "^1.0.0-beta.2" - json5 "^2.2.2" - semver "^6.3.0" - "@babel/generator@^7.12.5", "@babel/generator@^7.18.7", "@babel/generator@^7.21.3": version "7.21.3" resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.21.3.tgz" @@ -325,16 +325,16 @@ dependencies: "@babel/types" "^7.18.6" -"@babel/helper-plugin-utils@7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz" - integrity sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg== - "@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.18.9", "@babel/helper-plugin-utils@^7.19.0", "@babel/helper-plugin-utils@^7.20.2", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": version "7.20.2" resolved "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz" integrity sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ== +"@babel/helper-plugin-utils@7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz" + integrity sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg== + "@babel/helper-remap-async-to-generator@^7.18.9": version "7.18.9" resolved "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz" @@ -517,15 +517,6 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-numeric-separator" "^7.10.4" -"@babel/plugin-proposal-object-rest-spread@7.12.1": - version "7.12.1" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.1.tgz" - integrity sha512-s6SowJIjzlhx8o7lsFx5zmY4At6CTtDvgNQDdPzkBQucle58A6b/TTeEBYtyDgmcXjUTM+vE8YOGHZzzbc/ioA== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-object-rest-spread" "^7.8.0" - "@babel/plugin-transform-parameters" "^7.12.1" - "@babel/plugin-proposal-object-rest-spread@^7.20.2": version "7.20.7" resolved "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz" @@ -537,6 +528,15 @@ "@babel/plugin-syntax-object-rest-spread" "^7.8.3" "@babel/plugin-transform-parameters" "^7.20.7" +"@babel/plugin-proposal-object-rest-spread@7.12.1": + version "7.12.1" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.1.tgz" + integrity sha512-s6SowJIjzlhx8o7lsFx5zmY4At6CTtDvgNQDdPzkBQucle58A6b/TTeEBYtyDgmcXjUTM+vE8YOGHZzzbc/ioA== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-object-rest-spread" "^7.8.0" + "@babel/plugin-transform-parameters" "^7.12.1" + "@babel/plugin-proposal-optional-catch-binding@^7.18.6": version "7.18.6" resolved "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz" @@ -629,13 +629,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-jsx@7.12.1": - version "7.12.1" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.1.tgz" - integrity sha512-1yRi7yAtB0ETgxdY9ti/p2TivUxJkTdhu/ZbF9MshVGqOx1TdB3b7xCXs49Fupgg50N45KcAsRP/ZqWjs9SRjg== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-jsx@^7.18.6": version "7.18.6" resolved "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz" @@ -643,6 +636,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.18.6" +"@babel/plugin-syntax-jsx@7.12.1": + version "7.12.1" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.1.tgz" + integrity sha512-1yRi7yAtB0ETgxdY9ti/p2TivUxJkTdhu/ZbF9MshVGqOx1TdB3b7xCXs49Fupgg50N45KcAsRP/ZqWjs9SRjg== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-logical-assignment-operators@^7.10.4": version "7.10.4" resolved "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz" @@ -664,7 +664,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-syntax-object-rest-spread@7.8.3", "@babel/plugin-syntax-object-rest-spread@^7.8.0", "@babel/plugin-syntax-object-rest-spread@^7.8.3": +"@babel/plugin-syntax-object-rest-spread@^7.8.0", "@babel/plugin-syntax-object-rest-spread@^7.8.3", "@babel/plugin-syntax-object-rest-spread@7.8.3": version "7.8.3" resolved "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz" integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== @@ -1216,7 +1216,7 @@ "@docsearch/css" "3.3.5" algoliasearch "^4.0.0" -"@docusaurus/core@2.4.1", "@docusaurus/core@^2.4.1": +"@docusaurus/core@^2.4.1", "@docusaurus/core@2.4.1": version "2.4.1" resolved "https://registry.npmjs.org/@docusaurus/core/-/core-2.4.1.tgz" integrity sha512-SNsY7PshK3Ri7vtsLXVeAJGS50nJN3RgF836zkyUfAD01Fq+sAk5EwWgLw+nnm5KVNGDu7PRR2kRGDsWvqpo0g== @@ -1334,7 +1334,7 @@ url-loader "^4.1.1" webpack "^5.73.0" -"@docusaurus/module-type-aliases@2.4.1", "@docusaurus/module-type-aliases@^2.4.1": +"@docusaurus/module-type-aliases@^2.4.1", "@docusaurus/module-type-aliases@2.4.1": version "2.4.1" resolved "https://registry.npmjs.org/@docusaurus/module-type-aliases/-/module-type-aliases-2.4.1.tgz" integrity sha512-gLBuIFM8Dp2XOCWffUDSjtxY7jQgKvYujt7Mx5s4FCTfoL5dN1EVbnrn+O2Wvh8b0a77D57qoIDY7ghgmatR1A== @@ -1482,7 +1482,7 @@ "@docusaurus/theme-search-algolia" "2.4.1" "@docusaurus/types" "2.4.1" -"@docusaurus/react-loadable@5.5.2", "react-loadable@npm:@docusaurus/react-loadable@5.5.2": +"@docusaurus/react-loadable@5.5.2": version "5.5.2" resolved "https://registry.npmjs.org/@docusaurus/react-loadable/-/react-loadable-5.5.2.tgz" integrity sha512-A3dYjdBGuy0IGT+wyLIGIKLRE+sAk1iNk0f1HjNDysO7u8lhL4N3VEm+FAubmJbAztn94F7MxBTPmnixbiyFdQ== @@ -1587,7 +1587,7 @@ fs-extra "^10.1.0" tslib "^2.4.0" -"@docusaurus/types@2.4.1": +"@docusaurus/types@*", "@docusaurus/types@2.4.1": version "2.4.1" resolved "https://registry.npmjs.org/@docusaurus/types/-/types-2.4.1.tgz" integrity sha512-0R+cbhpMkhbRXX138UOc/2XZFF8hiZa6ooZAEEJFp5scytzCw4tC1gChMFXrpa3d2tYE6AX8IrOEpSonLmfQuQ== @@ -1680,7 +1680,16 @@ "@jridgewell/set-array" "^1.0.0" "@jridgewell/sourcemap-codec" "^1.4.10" -"@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.2": +"@jridgewell/gen-mapping@^0.3.0": + version "0.3.2" + resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz" + integrity sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A== + dependencies: + "@jridgewell/set-array" "^1.0.1" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/trace-mapping" "^0.3.9" + +"@jridgewell/gen-mapping@^0.3.2": version "0.3.2" resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz" integrity sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A== @@ -1707,7 +1716,7 @@ "@jridgewell/gen-mapping" "^0.3.0" "@jridgewell/trace-mapping" "^0.3.9" -"@jridgewell/sourcemap-codec@1.4.14", "@jridgewell/sourcemap-codec@^1.4.10": +"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@1.4.14": version "1.4.14" resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz" integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== @@ -1768,7 +1777,7 @@ "@nodelib/fs.stat" "2.0.5" run-parallel "^1.1.9" -"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": +"@nodelib/fs.stat@^2.0.2", "@nodelib/fs.stat@2.0.5": version "2.0.5" resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz" integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== @@ -1876,7 +1885,7 @@ "@svgr/babel-plugin-transform-react-native-svg" "^6.5.1" "@svgr/babel-plugin-transform-svg-component" "^6.5.1" -"@svgr/core@^6.5.1": +"@svgr/core@*", "@svgr/core@^6.0.0", "@svgr/core@^6.5.1": version "6.5.1" resolved "https://registry.npmjs.org/@svgr/core/-/core-6.5.1.tgz" integrity sha512-/xdLSWxK5QkqG524ONSjvg3V/FkNyCv538OIBdQqPNaAta3AsXj/Bd2FbvR87yMbXO2hFSWiAe/Q6IkVPDw+mw== @@ -1942,7 +1951,7 @@ "@tsconfig/docusaurus@^2.0.0": version "2.0.0" - resolved "https://registry.yarnpkg.com/@tsconfig/docusaurus/-/docusaurus-2.0.0.tgz#cadc77ab84052ffaaa4d6f79e998d719efa50e56" + resolved "https://registry.npmjs.org/@tsconfig/docusaurus/-/docusaurus-2.0.0.tgz" integrity sha512-X5wptT7pXA/46/IRFTW76oR5GNjoy9qjNM/1JGhFV4QAsmLh3YUpJJA+Vpx7Ds6eEBxSxz1QrgoNEBy6rLVs8w== "@types/body-parser@*": @@ -2136,7 +2145,7 @@ "@types/history" "^4.7.11" "@types/react" "*" -"@types/react@*": +"@types/react@*", "@types/react@>= 16.8.0 < 19.0.0": version "18.0.28" resolved "https://registry.npmjs.org/@types/react/-/react-18.0.28.tgz" integrity sha512-RD0ivG1kEztNBdoAK7lekI9M+azSnitIn85h4iOiaLjaTrMjzslhaqCGaI4IyCJ1RljWiLCEu4jyrLLgqxBTew== @@ -2357,7 +2366,7 @@ acorn-walk@^8.0.0: resolved "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz" integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== -acorn@^8.0.4, acorn@^8.5.0, acorn@^8.7.1: +acorn@^8, acorn@^8.0.4, acorn@^8.5.0, acorn@^8.7.1: version "8.8.2" resolved "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz" integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw== @@ -2394,7 +2403,7 @@ ajv-keywords@^5.0.0: dependencies: fast-deep-equal "^3.1.3" -ajv@^6.12.2, ajv@^6.12.4, ajv@^6.12.5: +ajv@^6.12.2, ajv@^6.12.4, ajv@^6.12.5, ajv@^6.9.1: version "6.12.6" resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== @@ -2404,7 +2413,17 @@ ajv@^6.12.2, ajv@^6.12.4, ajv@^6.12.5: json-schema-traverse "^0.4.1" uri-js "^4.2.2" -ajv@^8.0.0, ajv@^8.8.0: +ajv@^8.0.0: + version "8.12.0" + resolved "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz" + integrity sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA== + dependencies: + fast-deep-equal "^3.1.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + uri-js "^4.2.2" + +ajv@^8.8.0, ajv@^8.8.2: version "8.12.0" resolved "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz" integrity sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA== @@ -2421,7 +2440,7 @@ algoliasearch-helper@^3.10.0: dependencies: "@algolia/events" "^4.0.1" -algoliasearch@^4.0.0, algoliasearch@^4.13.1: +algoliasearch@^4.0.0, algoliasearch@^4.13.1, "algoliasearch@>= 3.1 < 6", "algoliasearch@>= 4.9.1 < 6": version "4.17.0" resolved "https://registry.npmjs.org/algoliasearch/-/algoliasearch-4.17.0.tgz" integrity sha512-JMRh2Mw6sEnVMiz6+APsi7lx9a2jiDFF+WUtANaUVCv6uSU9UOLdo5h9K3pdP6frRRybaM2fX8b1u0nqICS9aA== @@ -2507,16 +2526,16 @@ argparse@^2.0.1: resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz" integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== -array-flatten@1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz" - integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== - array-flatten@^2.1.2: version "2.1.2" resolved "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz" integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ== +array-flatten@1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz" + integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== + array-union@^2.1.0: version "2.1.0" resolved "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz" @@ -2713,7 +2732,7 @@ braces@^3.0.2, braces@~3.0.2: dependencies: fill-range "^7.0.1" -browserslist@^4.0.0, browserslist@^4.14.5, browserslist@^4.18.1, browserslist@^4.21.3, browserslist@^4.21.4, browserslist@^4.21.5: +browserslist@^4.0.0, browserslist@^4.14.5, browserslist@^4.18.1, browserslist@^4.21.3, browserslist@^4.21.4, browserslist@^4.21.5, "browserslist@>= 4.21.0": version "4.21.5" resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz" integrity sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w== @@ -2943,7 +2962,7 @@ clsx@^1.2.1: clsx@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/clsx/-/clsx-2.0.0.tgz#12658f3fd98fafe62075595a5c30e43d18f3d00b" + resolved "https://registry.npmjs.org/clsx/-/clsx-2.0.0.tgz" integrity sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q== collapse-white-space@^1.0.2: @@ -2965,16 +2984,16 @@ color-convert@^2.0.1: dependencies: color-name "~1.1.4" -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" - integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== - color-name@~1.1.4: version "1.1.4" resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== + colord@^2.9.1: version "2.9.3" resolved "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz" @@ -2995,11 +3014,6 @@ comma-separated-tokens@^1.0.0: resolved "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz" integrity sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw== -commander@7, commander@^7.2.0: - version "7.2.0" - resolved "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz" - integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== - commander@^2.20.0: version "2.20.3" resolved "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz" @@ -3010,11 +3024,21 @@ commander@^5.1.0: resolved "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz" integrity sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg== +commander@^7.2.0: + version "7.2.0" + resolved "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz" + integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== + commander@^8.3.0: version "8.3.0" resolved "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz" integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww== +commander@7: + version "7.2.0" + resolved "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz" + integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== + commondir@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz" @@ -3363,7 +3387,7 @@ cytoscape-fcose@^2.1.0: dependencies: cose-base "^2.2.0" -cytoscape@^3.23.0: +cytoscape@^3.2.0, cytoscape@^3.23.0: version "3.24.0" resolved "https://registry.npmjs.org/cytoscape/-/cytoscape-3.24.0.tgz" integrity sha512-W9fJMrAfr/zKFzDCpRR/wn6uoEQ7gfbJmxPK5DadXj69XyAhZYi1QXLOE+UXJfXVXxqGM1o1eeiIrtxrtB43zA== @@ -3371,7 +3395,7 @@ cytoscape@^3.23.0: heap "^0.2.6" lodash "^4.17.21" -"d3-array@2 - 3", "d3-array@2.10.0 - 3", "d3-array@2.5.0 - 3", d3-array@3, d3-array@^3.2.0: +d3-array@^3.2.0, "d3-array@2 - 3", "d3-array@2.10.0 - 3", "d3-array@2.5.0 - 3", d3-array@3: version "3.2.3" resolved "https://registry.npmjs.org/d3-array/-/d3-array-3.2.3.tgz" integrity sha512-JRHwbQQ84XuAESWhvIPaUV4/1UYTBOLiOPGWqgFDHZS1D5QN9c57FbH3QpEnQMYiOXNzKUQyGTZf+EVO7RT5TQ== @@ -3487,7 +3511,7 @@ d3-hierarchy@3: dependencies: d3-color "1 - 3" -"d3-path@1 - 3", d3-path@3, d3-path@^3.1.0: +d3-path@^3.1.0, "d3-path@1 - 3", d3-path@3: version "3.1.0" resolved "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz" integrity sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ== @@ -3628,20 +3652,27 @@ dayjs@^1.11.7: resolved "https://registry.npmjs.org/dayjs/-/dayjs-1.11.7.tgz" integrity sha512-+Yw9U6YO5TQohxLcIkrXBeY73WP3ejHWVvx8XCk3gxvQDCTEmS48ZrSZCKciI7Bhl/uCMyxYtE9UqRILmFphkQ== -debug@2.6.9, debug@^2.6.0: +debug@^2.6.0: version "2.6.9" resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== dependencies: ms "2.0.0" -debug@4, debug@^4.1.0, debug@^4.1.1: +debug@^4.1.0, debug@^4.1.1, debug@4: version "4.3.4" resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz" integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== dependencies: ms "2.1.2" +debug@2.6.9: + version "2.6.9" + resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + decompress-response@^3.3.0: version "3.3.0" resolved "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz" @@ -3705,16 +3736,16 @@ delaunator@5: dependencies: robust-predicates "^3.0.0" -depd@2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz" - integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== - depd@~1.1.2: version "1.1.2" resolved "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz" integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ== +depd@2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz" + integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== + destroy@1.2.0: version "1.2.0" resolved "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz" @@ -3849,16 +3880,16 @@ dot-prop@^5.2.0: dependencies: is-obj "^2.0.0" -duplexer3@^0.1.4: - version "0.1.5" - resolved "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.5.tgz" - integrity sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA== - duplexer@^0.1.2: version "0.1.2" resolved "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz" integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== +duplexer3@^0.1.4: + version "0.1.5" + resolved "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.5.tgz" + integrity sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA== + eastasianwidth@^0.2.0: version "0.2.0" resolved "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz" @@ -4167,7 +4198,7 @@ feed@^4.2.2: dependencies: xml-js "^1.6.11" -file-loader@^6.2.0: +file-loader@*, file-loader@^6.2.0: version "6.2.0" resolved "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz" integrity sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw== @@ -4308,11 +4339,6 @@ fs.realpath@^1.0.0: resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== -fsevents@~2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" - integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== - function-bind@^1.1.1: version "1.1.1" resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz" @@ -4697,6 +4723,16 @@ http-deceiver@^1.2.7: resolved "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz" integrity sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw== +http-errors@~1.6.2: + version "1.6.3" + resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz" + integrity sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A== + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.0" + statuses ">= 1.4.0 < 2" + http-errors@2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz" @@ -4708,16 +4744,6 @@ http-errors@2.0.0: statuses "2.0.1" toidentifier "1.0.1" -http-errors@~1.6.2: - version "1.6.3" - resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz" - integrity sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A== - dependencies: - depd "~1.1.2" - inherits "2.0.3" - setprototypeof "1.1.0" - statuses ">= 1.4.0 < 2" - http-parser-js@>=0.5.1: version "0.5.8" resolved "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz" @@ -4820,7 +4846,7 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@2.0.4, inherits@^2.0.0, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.3: +inherits@^2.0.0, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.3, inherits@2, inherits@2.0.4: version "2.0.4" resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== @@ -4830,16 +4856,16 @@ inherits@2.0.3: resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz" integrity sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw== -ini@2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz" - integrity sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA== - ini@^1.3.5, ini@~1.3.0: version "1.3.8" resolved "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz" integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== +ini@2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz" + integrity sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA== + inline-style-parser@0.1.1: version "0.1.1" resolved "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.1.1.tgz" @@ -4862,17 +4888,17 @@ invariant@^2.2.4: dependencies: loose-envify "^1.0.0" -ipaddr.js@1.9.1: - version "1.9.1" - resolved "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz" - integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== - ipaddr.js@^2.0.1: version "2.0.1" resolved "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz" integrity sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng== -is-alphabetical@1.0.4, is-alphabetical@^1.0.0: +ipaddr.js@1.9.1: + version "1.9.1" + resolved "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz" + integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== + +is-alphabetical@^1.0.0, is-alphabetical@1.0.4: version "1.0.4" resolved "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz" integrity sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg== @@ -5050,16 +5076,16 @@ is-yarn-global@^0.3.0: resolved "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz" integrity sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw== -isarray@0.0.1: - version "0.0.1" - resolved "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" - integrity sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ== - isarray@~1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== +isarray@0.0.1: + version "0.0.1" + resolved "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" + integrity sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ== + isexe@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" @@ -5314,7 +5340,7 @@ lodash.memoize@^4.1.2: resolved "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz" integrity sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag== -lodash.uniq@4.5.0, lodash.uniq@^4.5.0: +lodash.uniq@^4.5.0, lodash.uniq@4.5.0: version "4.5.0" resolved "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz" integrity sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ== @@ -5484,7 +5510,7 @@ micromatch@^4.0.2, micromatch@^4.0.4, micromatch@^4.0.5: braces "^3.0.2" picomatch "^2.3.1" -mime-db@1.52.0, "mime-db@>= 1.43.0 < 2": +"mime-db@>= 1.43.0 < 2": version "1.52.0" resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz" integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== @@ -5494,14 +5520,40 @@ mime-db@~1.33.0: resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz" integrity sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ== -mime-types@2.1.18, mime-types@~2.1.17: +mime-db@1.52.0: + version "1.52.0" + resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== + +mime-types@^2.1.27: + version "2.1.35" + resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz" + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== + dependencies: + mime-db "1.52.0" + +mime-types@^2.1.31: + version "2.1.35" + resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz" + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== + dependencies: + mime-db "1.52.0" + +mime-types@~2.1.17, mime-types@2.1.18: version "2.1.18" resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz" integrity sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ== dependencies: mime-db "~1.33.0" -mime-types@^2.1.27, mime-types@^2.1.31, mime-types@~2.1.24, mime-types@~2.1.34: +mime-types@~2.1.24: + version "2.1.35" + resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz" + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== + dependencies: + mime-db "1.52.0" + +mime-types@~2.1.34: version "2.1.35" resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz" integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== @@ -5535,7 +5587,7 @@ minimalistic-assert@^1.0.0: resolved "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz" integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== -minimatch@3.1.2, minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1: +minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@3.1.2: version "3.1.2" resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== @@ -5911,6 +5963,13 @@ path-parse@^1.0.7: resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== +path-to-regexp@^1.7.0: + version "1.8.0" + resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz" + integrity sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA== + dependencies: + isarray "0.0.1" + path-to-regexp@0.1.7: version "0.1.7" resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz" @@ -5921,13 +5980,6 @@ path-to-regexp@2.2.1: resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-2.2.1.tgz" integrity sha512-gu9bD6Ta5bwGrrU8muHzVOBFFREpp2iRkVfhBJahwJ6p6Xw20SjT0MxLnwkjOibQmGSYhiUnf2FLe7k+jcFmGQ== -path-to-regexp@^1.7.0: - version "1.8.0" - resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz" - integrity sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA== - dependencies: - isarray "0.0.1" - path-type@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz" @@ -6238,7 +6290,7 @@ postcss-zindex@^5.1.0: resolved "https://registry.npmjs.org/postcss-zindex/-/postcss-zindex-5.1.0.tgz" integrity sha512-fgFMf0OtVSBR1va1JNHYgMxYk73yhn/qb4uQDq1DLGYolz8gHCyr/sesEuGUaYs58E3ZJRcpoGuPVoB7Meiq9A== -postcss@^8.3.11, postcss@^8.4.14, postcss@^8.4.17, postcss@^8.4.19: +"postcss@^7.0.0 || ^8.0.1", postcss@^8.0.9, postcss@^8.1.0, postcss@^8.2.15, postcss@^8.2.2, postcss@^8.3.11, postcss@^8.4.14, postcss@^8.4.16, postcss@^8.4.17, postcss@^8.4.19: version "8.4.21" resolved "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz" integrity sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg== @@ -6375,16 +6427,21 @@ randombytes@^2.1.0: dependencies: safe-buffer "^5.1.0" -range-parser@1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz" - integrity sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A== +range-parser@^1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz" + integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== -range-parser@^1.2.1, range-parser@~1.2.1: +range-parser@~1.2.1: version "1.2.1" resolved "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz" integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== +range-parser@1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz" + integrity sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A== + raw-body@2.5.1: version "2.5.1" resolved "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz" @@ -6395,7 +6452,7 @@ raw-body@2.5.1: iconv-lite "0.4.24" unpipe "1.0.0" -rc@1.2.8, rc@^1.2.8: +rc@^1.2.8, rc@1.2.8: version "1.2.8" resolved "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz" integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== @@ -6445,7 +6502,7 @@ react-dev-utils@^12.0.1: strip-ansi "^6.0.1" text-table "^0.2.0" -react-dom@^17.0.2: +react-dom@*, "react-dom@^16.6.0 || ^17.0.0 || ^18.0.0", "react-dom@^16.8.4 || ^17.0.0", "react-dom@^17.0.0 || ^16.3.0 || ^15.5.4", react-dom@^17.0.2, "react-dom@>= 16.8.0 < 19.0.0": version "17.0.2" resolved "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz" integrity sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA== @@ -6502,6 +6559,14 @@ react-loadable-ssr-addon-v5-slorber@^1.0.1: dependencies: "@babel/runtime" "^7.10.3" +react-loadable@*, "react-loadable@npm:@docusaurus/react-loadable@5.5.2": + version "5.5.2" + resolved "https://registry.npmjs.org/@docusaurus/react-loadable/-/react-loadable-5.5.2.tgz" + integrity sha512-A3dYjdBGuy0IGT+wyLIGIKLRE+sAk1iNk0f1HjNDysO7u8lhL4N3VEm+FAubmJbAztn94F7MxBTPmnixbiyFdQ== + dependencies: + "@types/react" "*" + prop-types "^15.6.2" + react-player@^2.12.0: version "2.12.0" resolved "https://registry.npmjs.org/react-player/-/react-player-2.12.0.tgz" @@ -6533,7 +6598,7 @@ react-router-dom@^5.3.3: tiny-invariant "^1.0.2" tiny-warning "^1.0.0" -react-router@5.3.4, react-router@^5.3.3: +react-router@^5.3.3, react-router@>=5, react-router@5.3.4: version "5.3.4" resolved "https://registry.npmjs.org/react-router/-/react-router-5.3.4.tgz" integrity sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA== @@ -6557,7 +6622,7 @@ react-textarea-autosize@^8.3.2: use-composed-ref "^1.3.0" use-latest "^1.2.1" -react@^17.0.2: +react@*, "react@^15.0.2 || ^16.0.0 || ^17.0.0", "react@^16.13.1 || ^17.0.0", "react@^16.6.0 || ^17.0.0 || ^18.0.0", "react@^16.8.0 || ^17.0.0 || ^18.0.0", "react@^16.8.4 || ^17.0.0", "react@^17.0.0 || ^16.3.0 || ^15.5.4", react@^17.0.2, "react@>= 16.8.0 < 19.0.0", react@>=0.14.9, react@>=15, react@>=16.6.0, react@17.0.2: version "17.0.2" resolved "https://registry.npmjs.org/react/-/react-17.0.2.tgz" integrity sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA== @@ -6845,15 +6910,20 @@ rxjs@^7.5.4: dependencies: tslib "^2.1.0" -safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: +safe-buffer@^5.1.0, safe-buffer@>=5.1.0, safe-buffer@~5.2.0, safe-buffer@5.2.1: + version "5.2.1" + resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== -safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.1.0, safe-buffer@~5.2.0: - version "5.2.1" - resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== +safe-buffer@5.1.2: + version "5.1.2" + resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== "safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0": version "2.1.2" @@ -6873,15 +6943,6 @@ scheduler@^0.20.2: loose-envify "^1.1.0" object-assign "^4.1.1" -schema-utils@2.7.0: - version "2.7.0" - resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz" - integrity sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A== - dependencies: - "@types/json-schema" "^7.0.4" - ajv "^6.12.2" - ajv-keywords "^3.4.1" - schema-utils@^2.6.5: version "2.7.1" resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz" @@ -6891,7 +6952,25 @@ schema-utils@^2.6.5: ajv "^6.12.4" ajv-keywords "^3.5.2" -schema-utils@^3.0.0, schema-utils@^3.1.0, schema-utils@^3.1.1: +schema-utils@^3.0.0: + version "3.1.1" + resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz" + integrity sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw== + dependencies: + "@types/json-schema" "^7.0.8" + ajv "^6.12.5" + ajv-keywords "^3.5.2" + +schema-utils@^3.1.0: + version "3.1.1" + resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz" + integrity sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw== + dependencies: + "@types/json-schema" "^7.0.8" + ajv "^6.12.5" + ajv-keywords "^3.5.2" + +schema-utils@^3.1.1: version "3.1.1" resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz" integrity sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw== @@ -6910,6 +6989,15 @@ schema-utils@^4.0.0: ajv-formats "^2.1.1" ajv-keywords "^5.0.0" +schema-utils@2.7.0: + version "2.7.0" + resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz" + integrity sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A== + dependencies: + "@types/json-schema" "^7.0.4" + ajv "^6.12.2" + ajv-keywords "^3.4.1" + section-matter@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/section-matter/-/section-matter-1.0.0.tgz" @@ -6939,17 +7027,37 @@ semver-diff@^3.1.1: semver@^5.4.1: version "5.7.2" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8" + resolved "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz" integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== -semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.2.0, semver@^6.3.0: +semver@^6.0.0: + version "6.3.1" + resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz" + integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== + +semver@^6.1.1: version "6.3.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" + resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz" + integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== + +semver@^6.1.2: + version "6.3.1" + resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz" + integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== + +semver@^6.2.0: + version "6.3.1" + resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz" + integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== + +semver@^6.3.0: + version "6.3.1" + resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== semver@^7.3.2, semver@^7.3.4, semver@^7.3.7, semver@^7.3.8: version "7.5.4" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" + resolved "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz" integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== dependencies: lru-cache "^6.0.0" @@ -7198,22 +7306,45 @@ state-toggle@^1.0.0: resolved "https://registry.npmjs.org/state-toggle/-/state-toggle-1.0.3.tgz" integrity sha512-d/5Z4/2iiCnHw6Xzghyhb+GcmF89bxwgXG60wjIiZaxnymbyOmI8Hk4VqHXiVVp6u2ysaskFfXg3ekCj4WNftQ== -statuses@2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz" - integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== - "statuses@>= 1.4.0 < 2": version "1.5.0" resolved "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz" integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== +statuses@2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz" + integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== + std-env@^3.0.1: version "3.3.2" resolved "https://registry.npmjs.org/std-env/-/std-env-3.3.2.tgz" integrity sha512-uUZI65yrV2Qva5gqE0+A7uVAvO40iPo6jGhs7s8keRfHCmtg+uB2X6EiLGCI9IgL1J17xGhvoOqSz79lzICPTA== -string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.2: +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + +string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.2: + version "4.2.3" + resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +string-width@^4.2.0: version "4.2.3" resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -7231,20 +7362,6 @@ string-width@^5.0.1: emoji-regex "^9.2.2" strip-ansi "^7.0.1" -string_decoder@^1.1.1: - version "1.3.0" - resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" - -string_decoder@~1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz" - integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== - dependencies: - safe-buffer "~5.1.0" - stringify-object@^3.3.0: version "3.3.0" resolved "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz" @@ -7288,7 +7405,7 @@ strip-json-comments@~2.0.1: resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz" integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ== -style-to-object@0.3.0, style-to-object@^0.3.0: +style-to-object@^0.3.0, style-to-object@0.3.0: version "0.3.0" resolved "https://registry.npmjs.org/style-to-object/-/style-to-object-0.3.0.tgz" integrity sha512-CzFnRRXhzWIdItT3OmF8SQfWyahHhjq3HwcMNCNLn+N7klOOqPjMeG/4JSu77D7ypZdGvSzvkrbyeTMizz2VrA== @@ -7485,9 +7602,9 @@ typedarray-to-buffer@^3.1.5: dependencies: is-typedarray "^1.0.0" -typescript@^5.1.6: +typescript@^5.1.6, "typescript@>= 2.7": version "5.1.6" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.1.6.tgz#02f8ac202b6dad2c0dd5e0913745b47a37998274" + resolved "https://registry.npmjs.org/typescript/-/typescript-5.1.6.tgz" integrity sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA== ua-parser-js@^0.7.30: @@ -7526,10 +7643,10 @@ unicode-property-aliases-ecmascript@^2.0.0: resolved "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz" integrity sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w== -unified@9.2.0: - version "9.2.0" - resolved "https://registry.npmjs.org/unified/-/unified-9.2.0.tgz" - integrity sha512-vx2Z0vY+a3YoTj8+pttM3tiJHCwY5UFbYdiWrwBEbHmK8pvsPj2rtAX2BFfgXen8T39CJWblWRDT4L5WGXtDdg== +unified@^9.2.2: + version "9.2.2" + resolved "https://registry.npmjs.org/unified/-/unified-9.2.2.tgz" + integrity sha512-Sg7j110mtefBD+qunSLO1lqOEKdrwBFBrR6Qd8f4uwkhWNlbkaqwHse6e7QvD3AP/MNoJdEDLaf8OxYyoWgorQ== dependencies: bail "^1.0.0" extend "^3.0.0" @@ -7538,10 +7655,10 @@ unified@9.2.0: trough "^1.0.0" vfile "^4.0.0" -unified@^9.2.2: - version "9.2.2" - resolved "https://registry.npmjs.org/unified/-/unified-9.2.2.tgz" - integrity sha512-Sg7j110mtefBD+qunSLO1lqOEKdrwBFBrR6Qd8f4uwkhWNlbkaqwHse6e7QvD3AP/MNoJdEDLaf8OxYyoWgorQ== +unified@9.2.0: + version "9.2.0" + resolved "https://registry.npmjs.org/unified/-/unified-9.2.0.tgz" + integrity sha512-vx2Z0vY+a3YoTj8+pttM3tiJHCwY5UFbYdiWrwBEbHmK8pvsPj2rtAX2BFfgXen8T39CJWblWRDT4L5WGXtDdg== dependencies: bail "^1.0.0" extend "^3.0.0" @@ -7557,7 +7674,7 @@ unique-string@^2.0.0: dependencies: crypto-random-string "^2.0.0" -unist-builder@2.0.3, unist-builder@^2.0.0: +unist-builder@^2.0.0, unist-builder@2.0.3: version "2.0.3" resolved "https://registry.npmjs.org/unist-builder/-/unist-builder-2.0.3.tgz" integrity sha512-f98yt5pnlMWlzP539tPc4grGMsFaQQlP/vM396b00jngsiINumNmsY8rkXjfoi1c6QaM8nQ3vaGDuoKWbe/1Uw== @@ -7606,7 +7723,7 @@ unist-util-visit-parents@^3.0.0: "@types/unist" "^2.0.0" unist-util-is "^4.0.0" -unist-util-visit@2.0.3, unist-util-visit@^2.0.0, unist-util-visit@^2.0.3: +unist-util-visit@^2.0.0, unist-util-visit@^2.0.3, unist-util-visit@2.0.3: version "2.0.3" resolved "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-2.0.3.tgz" integrity sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q== @@ -7620,7 +7737,7 @@ universalify@^2.0.0: resolved "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz" integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== -unpipe@1.0.0, unpipe@~1.0.0: +unpipe@~1.0.0, unpipe@1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== @@ -7878,7 +7995,7 @@ webpack-sources@^3.2.2, webpack-sources@^3.2.3: resolved "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz" integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== -webpack@^5.73.0: +"webpack@^4.0.0 || ^5.0.0", "webpack@^4.37.0 || ^5.0.0", webpack@^5.0.0, webpack@^5.1.0, webpack@^5.20.0, webpack@^5.73.0, "webpack@>= 4", webpack@>=2, "webpack@>=4.41.1 || 5.x", "webpack@3 || 4 || 5": version "5.76.2" resolved "https://registry.npmjs.org/webpack/-/webpack-5.76.2.tgz" integrity sha512-Th05ggRm23rVzEOlX8y67NkYCHa9nTNcwHPBhdg+lKG+mtiW7XgggjAeeLnADAe7mLjJ6LUNfgHAuRRh+Z6J7w== @@ -7918,7 +8035,7 @@ webpackbar@^5.0.2: pretty-time "^1.1.0" std-env "^3.0.1" -websocket-driver@>=0.5.1, websocket-driver@^0.7.4: +websocket-driver@^0.7.4, websocket-driver@>=0.5.1: version "0.7.4" resolved "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz" integrity sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg== From 9d3de9a13e53c9285e5ca2b20a99c2b5057f5b83 Mon Sep 17 00:00:00 2001 From: regzo2 Date: Tue, 22 Aug 2023 05:22:07 -0400 Subject: [PATCH 07/12] Shortened UE table img links --- .../_unified-blended-table.mdx | 82 +++---- .../_unified-shape-table.mdx | 206 +++++++++--------- 2 files changed, 144 insertions(+), 144 deletions(-) diff --git a/docs/tutorial-avatars/tutorial-avatars-extras/_unified-blended-table.mdx b/docs/tutorial-avatars/tutorial-avatars-extras/_unified-blended-table.mdx index 5deb514a..86eeed03 100644 --- a/docs/tutorial-avatars/tutorial-avatars-extras/_unified-blended-table.mdx +++ b/docs/tutorial-avatars/tutorial-avatars-extras/_unified-blended-table.mdx @@ -12,247 +12,247 @@ import FilterTable from '@site/src/components/FilterTable.tsx' disabledHeaders={['Basis']} rows={[ [ - Reference Image, + Reference Image, 'EyeClosed', Closes both eye lids., <>EyeClosedRight
EyeClosedRight ], [ - Reference Image, + Reference Image, 'EyeWide', Widens both eye lids., <>EyeWidenRight
EyeWidenLeft ], [ - Reference Image, + Reference Image, 'EyeSquint', Squints both eye lids., <>EyeSquintRight
EyeSquintLeft ], [ - Reference Image, + Reference Image, 'EyeDilation', Dilates both pupils., <>EyeDilationRight
EyeDilationLeft ], [ - Reference Image, + Reference Image, 'EyeConstrict', Constricts both pupils., <>EyeConstrictRight
EyeConstrictLeft ], [ - Reference Image, + Reference Image, 'BrowDownRight', Pulls the right eyebrow down and in., <>BrowLowererRight
BrowPinchRight ], [ - Reference Image, + Reference Image, 'BrowDownLeft', Pulls the left eyebrow down and in., <>BrowLowererLeft
BrowPinchLeft ], [ - Reference Image, + Reference Image, 'BrowDown', Pulls the left eyebrow down and in., <>BrowLowererRight
BrowLowererLeft
BrowPinchRight
BrowPinchLeft ], [ - Reference Image, + Reference Image, 'BrowUpRight', Right brow appears worried., <>BrowInnerUpRight
BrowOuterUpRight ], [ - Reference Image, + Reference Image, 'BrowUpLeft', Left brow appears worried., <>BrowInnerUpLeft
BrowOuterUpLeft ], [ - Reference Image, + Reference Image, 'BrowUp', Brows appear worried., <>BrowInnerUpRight
BrowInnerUpLeft
BrowOuterUpRight
BrowOuterUpLeft ], [ - Reference Image, + Reference Image, 'NoseSneer', Entire face sneers., <>NoseSneerRight
NoseSneerLeft ], [ - Reference Image, + Reference Image, 'NasalDilation', Both nose canals dilate., <>NasalDilationRight
NasalDilationLeft ], [ - Reference Image, + Reference Image, 'NasalConstrict', Both nose canals constrict., <>NasalConstrictRight
NasalConstrictLeft ], [ - Reference Image, + Reference Image, 'CheekPuff', Puffs both cheeks., <>CheekPuffRight
CheekPuffLeft ], [ - Reference Image, + Reference Image, 'CheekSuck', Sucks both cheeks., <>CheekSuckRight
CheekSuckLeft ], [ - Reference Image, + Reference Image, 'CheekSquint', Raises both cheeks., <>CheekSquintRight
CheekSquintLeft ], [ - Reference Image, + Reference Image, 'LipSuckUpper', Tucks in the upper lips., <>LipSuckUpperRight
LipSuckUpperLeft ], [ - Reference Image, + Reference Image, 'LipSuckLower', Tucks in the lower lips., <>LipSuckLowerRight
LipSuckLowerLeft ], [ - Reference Image, + Reference Image, 'LipSuck', Tucks in the upper and lower lips., <>LipSuckUpperRight
LipSuckUpperLeft
LipSuckLowerRight
LipSuckLowerLeft ], [ - Reference Image, + Reference Image, 'LipFunnelUpper', Funnels in the upper lips., <>LipFunnelUpperRight
LipFunnelUpperLeft ], [ - Reference Image, + Reference Image, 'LipFunnelLower', Funnels in the lower lips., <>LipFunnelLowerRight
LipFunnelLowerLeft ], [ - Reference Image, + Reference Image, 'LipFunnel', Funnels in the upper and lower lips., <>LipFunnelUpperRight
LipFunnelUpperLeft
LipFunnelLowerRight
LipFunnelLowerLeft ], [ - Reference Image, + Reference Image, 'LipPuckerUpper', Upper lip part pushes outward., <>LipPuckerUpperRight
LipPuckerUpperLeft ], [ - Reference Image, + Reference Image, 'LipPuckerLower', Lower lip part pushes outward., <>LipPuckerLowerRight
LipPuckerLowerLeft ], [ - Reference Image, + Reference Image, 'LipPucker', Lips push outward., <>LipPuckerUpperRight
LipPuckerUpperLeft
LipPuckerLowerRight
LipPuckerLowerLeft ], [ - Reference Image, + Reference Image, 'MouthUpperUp', Raises the upper lips., <>MouthUpperUpRight
MouthUpperUpLeft ], [ - Reference Image, + Reference Image, 'MouthLowerDown', Lowers the lower lips., <>MouthLowerDownRight
MouthLowerDownLeft ], [ - Reference Image, + Reference Image, 'MouthOpen', 'Mouth opens, revealing teeth.', <>MouthUpperUpRight
MouthUpperUpLeft
MouthLowerDownRight
MouthLowerDownLeft ], [ - Reference Image, + Reference Image, 'MouthRight', 'Moves mouth right.', <>MouthUpperRight
MouthLowerRight ], [ - Reference Image, + Reference Image, 'MouthLeft', Moves mouth left., <>MouthUpperLeft
MouthLowerLeft ], [ - Reference Image, + Reference Image, 'MouthSmileRight', 'Right side mouth expresses a smile.', <>MouthCornerPullRight
MouthCornerSlantRight ], [ - Reference Image, + Reference Image, 'MouthSmileLeft', 'Left side mouth expresses a smile.', <>MouthCornerPullLeft
MouthCornerSlantLeft ], [ - Reference Image, + Reference Image, 'MouthSmile', 'Mouth expresses a smile.', <>MouthCornerPullRight
MouthCornerPullLeft
MouthCornerSlantRight
MouthCornerSlantLeft ], [ - Reference Image, + Reference Image, 'MouthSadRight', 'Left side mouth expresses sadness.', <>MouthFrownRight
MouthStretchRight ], [ - Reference Image, + Reference Image, 'MouthSadLeft', 'Right side mouth expresses sadness.', <>MouthFrownLeft
MouthStretchLeft ], [ - Reference Image, + Reference Image, 'MouthSad', 'Mouth expresses sadness.', <>MouthFrownRight
MouthFrownLeft
MouthStretchRight
MouthStretchLeft ], [ - Reference Image, + Reference Image, 'MouthStretch', Mouth stretches., <>MouthStretchRight
MouthStretchLeft ], [ - Reference Image, + Reference Image, 'MouthDimple', Lip corner dimples, <>MouthDimpleRight
MouthDimpleLeft ], [ - Reference Image, + Reference Image, 'MouthTightener', Mouth tightens., <>MouthTightenerRight
MouthTightenerLeft ], [ - Reference Image, + Reference Image, 'MouthPress', Mouth presses together., <>MouthPressRight
MouthPressLeft diff --git a/docs/tutorial-avatars/tutorial-avatars-extras/_unified-shape-table.mdx b/docs/tutorial-avatars/tutorial-avatars-extras/_unified-shape-table.mdx index 85f74e70..58800024 100644 --- a/docs/tutorial-avatars/tutorial-avatars-extras/_unified-shape-table.mdx +++ b/docs/tutorial-avatars/tutorial-avatars-extras/_unified-shape-table.mdx @@ -10,7 +10,7 @@ import '@site/src/css/unified-tables.css'; - Reference Image + Reference Image Basis @@ -27,512 +27,512 @@ import '@site/src/css/unified-tables.css'; rows={ [ [ - Reference Image, + Reference Image, 'EyeLookOutRight', Right eye looks out. ], [ - Reference Image, + Reference Image, 'EyeLookInRight', Right eye looks in. ], [ - Reference Image, + Reference Image, 'EyeLookUpRight', Right eye looks up. ], [ - Reference Image, + Reference Image, 'EyeLookDownRight', Right eye looks down. ], [ - Reference Image, + Reference Image, 'EyeLookOutLeft', Left eye looks out. ], [ - Reference Image, + Reference Image, 'EyeLookInLeft', Left eye looks in. ], [ - Reference Image, + Reference Image, 'EyeLookUpLeft', Left eye looks up. ], [ - Reference Image, + Reference Image, 'EyeLookDownLeft', Left eye looks down. ], [ - Reference Image, + Reference Image, 'EyeClosedRight', Closes the right eyelid. ], [ - Reference Image, + Reference Image, 'EyeClosedLeft', Closes the left eyelid. ], [ - Reference Image, + Reference Image, 'EyeSquintRight', Squeezes the right eye socket muscles. ], [ - Reference Image, + Reference Image, 'EyeSquintLeft', Squeezes the left eye socket muscles. ], [ - Reference Image, + Reference Image, 'EyeWideRight', Right eyelid widens beyond relaxed. ], [ - Reference Image, + Reference Image, 'EyeWideLeft', Left eyelid widens beyond relaxed. ], [ - Reference Image, + Reference Image, 'EyeDilationRight', Dilates the right eye pupil ], [ - Reference Image, + Reference Image, 'EyeDilationLeft', Dilates the left eye pupil ], [ - Reference Image, + Reference Image, 'EyeConstrictRight', Constricts the right eye pupil ], [ - Reference Image, + Reference Image, 'EyeConstrictLeft', Constricts the left eye pupil ], [ - Reference Image, + Reference Image, 'BrowPinchRight', Right eyebrow pinches in. ], [ - Reference Image, + Reference Image, 'BrowPinchLeft', Left eyebrow pinches in. ], [ - Reference Image, + Reference Image, 'BrowLowererRight', Outer right eyebrow pulls down. ], [ - Reference Image, + Reference Image, 'BrowLowererLeft', Outer Left eyebrow pulls down. ], [ - Reference Image, + Reference Image, 'BrowInnerUpRight', Inner right eyebrow pulls up. ], [ - Reference Image, + Reference Image, 'BrowInnerUpLeft', Inner left eyebrow pulls up. ], [ - Reference Image, + Reference Image, 'BrowOuterUpRight', Outer right eyebrow pulls up. ], [ - Reference Image, + Reference Image, 'BrowOuterUpLeft', Outer left eyebrow pulls up. ], [ - Reference Image, + Reference Image, 'NoseSneerRight', Right side face sneers. ], [ - Reference Image, + Reference Image, 'NoseSneerLeft', Left side face sneers. ], [ - Reference Image, + Reference Image, 'NasalDilationRight', Right side nose canal dilates. ], [ - Reference Image, + Reference Image, 'NasalDilationLeft', Left side nose canal dilates. ], [ - Reference Image, + Reference Image, 'NasalConstrictRight', Right side nose canal constricts. ], [ - Reference Image, + Reference Image, 'NasalConstrictLeft', Left side nose canal constricts. ], [ - Reference Image, + Reference Image, 'CheekSquintRight', Raises the right side cheek. ], [ - Reference Image, + Reference Image, 'CheekSquintLeft', Raises the left side cheek. ], [ - Reference Image, + Reference Image, 'CheekPuffRight', Puffs the right side cheek. ], [ - Reference Image, + Reference Image, 'CheekPuffLeft', Puffs the left side cheek. ], [ - Reference Image, + Reference Image, 'CheekSuckRight', Sucks in the right side cheek. ], [ - Reference Image, + Reference Image, 'CheekSuckLeft', Sucks in the left side cheek. ], [ - Reference Image, + Reference Image, 'JawOpen', Opens jawbone. ], [ - Reference Image, + Reference Image, 'MouthClosed', Closes mouth (in relation to JawOpen). ], [ - Reference Image, + Reference Image, 'JawRight', Pushes jawbone right. ], [ - Reference Image, + Reference Image, 'JawLeft', Pushes jawbone left. ], [ - Reference Image, + Reference Image, 'JawForward', Pushes jawbone forwards. ], [ - Reference Image, + Reference Image, 'JawBackward', Pulls jawbone backwards. ], [ - Reference Image, + Reference Image, 'JawClench', Flexes jaw muscles. ], [ - Reference Image, + Reference Image, 'JawMandibleRaise', Raises jawbone. ], [ - Reference Image, + Reference Image, 'LipSuckUpperRight', Upper right lip part tucks in the mouth. ], [ - Reference Image, + Reference Image, 'LipSuckUpperLeft', Upper left lip part tucks in the mouth. ], [ - Reference Image, + Reference Image, 'LipSuckLowerRight', Lower right lip part tucks in the mouth. ], [ - Reference Image, + Reference Image, 'LipSuckLowerLeft', Lower left lip part tucks in the mouth. ], [ - Reference Image, + Reference Image, 'LipSuckCornerRight', Right lip corner folds into the mouth. ], [ - Reference Image, + Reference Image, 'LipSuckCornerLeft', Left lip corner folds into the mouth. ], [ - Reference Image, + Reference Image, 'LipFunnelUpperRight', Upper right lip part pushes into a funnel. ], [ - Reference Image, + Reference Image, 'LipFunnelUpperLeft', Upper left lip part pushes into a funnel. ], [ - Reference Image, + Reference Image, 'LipFunnelLowerRight', Lower right lip part pushes into a funnel. ], [ - Reference Image, + Reference Image, 'LipFunnelLowerLeft', Lower left lip part pushes into a funnel. ], [ - Reference Image, + Reference Image, 'LipPuckerUpperRight', Upper right lip part pushes outward. ], [ - Reference Image, + Reference Image, 'LipPuckerUpperLeft', Upper left lip part pushes outward. ], [ - Reference Image, + Reference Image, 'LipPuckerLowerRight', Lower right lip part pushes outward. ], [ - Reference Image, + Reference Image, 'LipPuckerLowerLeft', Lower left lip part pushes outward. ], [ - Reference Image, + Reference Image, 'MouthUpperUpRight', Upper right part of the lip pulls up. ], [ - Reference Image, + Reference Image, 'MouthUpperUpLeft', Upper left part of the lip pulls up. ], [ - Reference Image, + Reference Image, 'MouthLowerDownRight', Lower right part of the lip pulls up. ], [ - Reference Image, + Reference Image, 'MouthLowerDownLeft', Lower left part of the lip pulls up. ], [ - Reference Image, + Reference Image, 'MouthUpperDeepenRight', Upper right lip part pushes in the cheek. ], [ - Reference Image, + Reference Image, 'MouthUpperDeepenLeft', Upper left lip part pushes in the cheek. ], [ - Reference Image, + Reference Image, 'MouthUpperRight', Moves upper lip right. ], [ - Reference Image, + Reference Image, 'MouthUpperLeft', Moves upper lip left. ], [ - Reference Image, + Reference Image, 'MouthLowerRight', Moves lower lip right. ], [ - Reference Image, + Reference Image, 'MouthLowerLeft', Moves lower lip left. ], [ - Reference Image, + Reference Image, 'MouthCornerPullRight', Right lip corner pulls diagonally up and out. ], [ - Reference Image, + Reference Image, 'MouthCornerPullLeft', Left lip corner pulls diagonally up and out. ], [ - Reference Image, + Reference Image, 'MouthCornerSlantRight', Right corner lip slants up. ], [ - Reference Image, + Reference Image, 'MouthCornerSlantLeft', Left corner lip slants up. ], [ - Reference Image, + Reference Image, 'MouthFrownRight', Right corner lip pulls down. ], [ - Reference Image, + Reference Image, 'MouthFrownLeft', Left corner lip pulls down. ], [ - Reference Image, + Reference Image, 'MouthStretchRight', Right corner lip pulls out and down. ], [ - Reference Image, + Reference Image, 'MouthStretchLeft', Left corner lip pulls out and down. ], [ - Reference Image, + Reference Image, 'MouthDimpleRight', Right lip corner is pushed backwards. ], [ - Reference Image, + Reference Image, 'MouthDimpleLeft', Left lip corner is pulled backwards. ], [ - Reference Image, + Reference Image, 'MouthRaiserUpper', Raises and slightly pushes out the upper mouth. ], [ - Reference Image, + Reference Image, 'MouthRaiserLower', Raises and slightly pushes out the lower mouth. ], [ - Reference Image, + Reference Image, 'MouthPressRight', Right side lips press and flatten together vertically. ], [ - Reference Image, + Reference Image, 'MouthPressLeft', Left side lips press and flatten together vertically. ], [ - Reference Image, + Reference Image, 'MouthTightenerRight', Right side lips squeeze together horizontally. ], [ - Reference Image, + Reference Image, 'MouthTightenerLeft', Left side lips squeeze together horizontally. ], [ - Reference Image, + Reference Image, 'TongueOut', Tongue visibly sticks out of the mouth. ], [ - Reference Image, + Reference Image, 'TongueUp', Tongue points up. ], [ - Reference Image, + Reference Image, 'TongueDown', Tongue points down. ], [ - Reference Image, + Reference Image, 'TongueRight', Tongue points right. ], [ - Reference Image, + Reference Image, 'TongueLeft', Tongue points left. ], [ - Reference Image, + Reference Image, 'TongueRoll', Sides of the tongue funnel, creating a 'hotdog' shape. ], [ - Reference Image, + Reference Image, 'TongueBendDown', Tongue arches up then down inside the mouth. ], [ - Reference Image, + Reference Image, 'TongueCurlUp', Tongue arches down then up inside the mouth. ], [ - Reference Image, + Reference Image, 'TongueSquish', Tongue squishes together and thickens. ], [ - Reference Image, + Reference Image, 'TongueFlat', Tongue flattens and thins out. ], [ - Reference Image, + Reference Image, 'TongueTwistRight', Tongue tip rotates clockwise, with the rest following gradually. ], [ - Reference Image, + Reference Image, 'TongueTwistLeft', Tongue tip rotates counter-clockwise, with the rest following gradually. ], [ - Reference Image, + Reference Image, 'SoftPalateClose¹', Inner mouth throat closes. ], [ - Reference Image, + Reference Image, 'ThroatSwallow¹', The Adam's apple visibly swallows. ], [ - Reference Image, + Reference Image, 'NeckFlexRight¹', Right side neck visibly flexes. ], [ - Reference Image, + Reference Image, 'NeckFlexLeft¹', Left side neck visibly flexes. ], From 56f9494444ee7d2d4dbc49d66404b5a6856be5c7 Mon Sep 17 00:00:00 2001 From: regzo2 Date: Sat, 2 Sep 2023 17:53:44 -0400 Subject: [PATCH 08/12] Updated formatting clarifications and explanations --- docs/hardware/interface-compabilities.mdx | 4 +- .../compatibility/arkit.mdx | 10 +-- .../compatibility/meta-movement.mdx | 8 +-- .../compatibility/overview.mdx | 55 ++++++++------- .../compatibility/vive-sranipal.mdx | 70 +++++++++++-------- 5 files changed, 84 insertions(+), 63 deletions(-) diff --git a/docs/hardware/interface-compabilities.mdx b/docs/hardware/interface-compabilities.mdx index 988307ce..f50406a8 100644 --- a/docs/hardware/interface-compabilities.mdx +++ b/docs/hardware/interface-compabilities.mdx @@ -13,7 +13,7 @@ import FilterTable from '@site/src/components/FilterTable.tsx'; :::note How to read this section This page goes over generalized functions, features, and -tracking quality of each interface and what it can do in +tracking quality of each interface, and what they can do in VRCFaceTracking. For more specific information about the listed interfaces please refer to their dedicated sections. @@ -124,7 +124,7 @@ interfaces please refer to their dedicated sections. 'Very High', '~', 'High', - 'Mediocre', + 'Below Average', '~', '~', 'Very High', diff --git a/docs/tutorial-avatars/tutorial-avatars-extras/compatibility/arkit.mdx b/docs/tutorial-avatars/tutorial-avatars-extras/compatibility/arkit.mdx index 300fa6bc..7faafa81 100644 --- a/docs/tutorial-avatars/tutorial-avatars-extras/compatibility/arkit.mdx +++ b/docs/tutorial-avatars/tutorial-avatars-extras/compatibility/arkit.mdx @@ -10,11 +10,13 @@ import FilterTable from '@site/src/components/FilterTable.tsx'; *** -Apple provides a face tracking standard for iOS devices in their ARKit software, -with the blendshapes for it often referred to as PerfectSync, AR52, and ARKit respectively. +Apple provides a face tracking standard for iOS devices within their ARKit SDK and software, +where the associated blendshapes are often referred to as PerfectSync, AR52, and ARKit respectively. The following table shows how ARKit face tracking translates to Unified Expressions +### ARKit Comparison + *BrowDownRight
CheekSquintRight
EyeSquintRight
While EyeClosedRight, '~', 'Eye_Right_squeeze¹', '~'], [<>*BrowDownLeft
CheekSquintLeft
EyeSquintLeft
While EyeClosedLeft, '~', 'Eye_Left_squeeze¹', '~'], ['EyeWideRight', 'eyeWideRight', 'Eye_Right_Wide', 'EYES_WIDEN_R'], @@ -80,8 +88,8 @@ standards compare to each other. ['EyeConstrictLeft', '❌', 'Eye_Left_Constrict', '❌'], ['*BrowDownRight', 'browDownRight', '❌', 'BROW_LOWERER_R'], ['*BrowDownLeft', 'browDownLeft', '❌', 'BROW_LOWERER_L'], - ['BrowInnerUpRight', '❌', '❌', 'INNER_BROW_RAISER_R'], - ['BrowInnerUpLeft', '❌', '❌', 'INNER_BROW_RAISER_L'], + ['BrowInnerUpRight', '~', '❌', 'INNER_BROW_RAISER_R'], + ['BrowInnerUpLeft', '~', '❌', 'INNER_BROW_RAISER_L'], ['*BrowInnerUp', 'browInnerUp', '❌', '~'], ['BrowOuterUpRight', 'browOuterUpRight', '❌', 'OUTER_BROW_RAISER_R'], ['BrowOuterUpLeft', 'browOuterUpLeft', '❌', 'OUTER_BROW_RAISER_L'], @@ -96,8 +104,7 @@ standards compare to each other. ['CheekSuckLeft', '❌', '~', 'CHEEK_SUCK_L'], ['CheekSuck', '❌', 'Cheek_Suck', '~'], ['JawOpen', 'jawOpen', 'Jaw_Open', 'JAW_DROP'], - ['MouthClosed', 'mouthClose', '~', 'LIPS_TOWARD'], - [<>MouthClosed
Includes JawOpen, '~', 'MouthApeShape¹', '~'], + ['MouthClosed', 'mouthClose', <>Mouth_Ape_Shape¹
Negates Jaw_Open, 'LIPS_TOWARD'], ['JawRight', 'jawRight', 'Jaw_Right', 'JAW_SIDEWAYS_RIGHT'], ['JawLeft', 'jawLeft', 'Jaw_Left', 'JAW_SIDEWAYS_LEFT'], ['JawForward', 'jawForward', 'Jaw_Forward', 'JAW_THRUST'], diff --git a/docs/tutorial-avatars/tutorial-avatars-extras/compatibility/vive-sranipal.mdx b/docs/tutorial-avatars/tutorial-avatars-extras/compatibility/vive-sranipal.mdx index 0610c380..416d4991 100644 --- a/docs/tutorial-avatars/tutorial-avatars-extras/compatibility/vive-sranipal.mdx +++ b/docs/tutorial-avatars/tutorial-avatars-extras/compatibility/vive-sranipal.mdx @@ -10,31 +10,43 @@ import FilterTable from '@site/src/components/FilterTable.tsx'; *** -VIVE provides a face tracking standard as part of their SRanipal SDK and -software. It provides the tracking basis for the Vive Pro Eye, Vive Facial -Tracker, and other VIVE products that have face tracking capabilities. -The following table shows how SRanipal face tracking translates to Unified Expressions. +VIVE offers a facial tracking standard through the SRanipal SDK and software. +This standard serves as the foundational tracking framework for devices such as +the Vive Pro Eye, Vive Facial Tracker, and other VIVE products equipped with +facial tracking functionalities. + +The following table illustrates the mapping of SRanipal facial tracking to Unified Expressions. :::info Table Explained -If there are multiple shapes listed in the same row, it means that multiple -shapes combine together to create the single shape of a specified standard. +This table provides a comprehensive understanding of the +relationship between various shapes and Unified Expressions: + +When multiple shapes are listed in the same row, they +collaboratively contribute to the formation of a specific +standard shape. + +Some shapes have an extra condition (`While X`, `Negates X`) +that indicates that specified cell needs the presence or absence +of specific shapes to convey a specific expression accurately in +order to correlate it to the other expressions in that row. +This often necessitates particular adjustments (animation +or blendshape) for compatibility with Unified Expressions, +while maintaining anatomical consistency within the given row. -If there is a Unified shape row with a condition (`While X`, `Except X`), it means that the -specified shapes of other standards require the `X` shape to behave a certain way in -order to properly convey the specified Unified expression. Usually these require specific -animation compensation to work in Unified Expressions but are otherwise anatomically -consistent within the specific row. +* `While` signifies that a standard requires a shape +to be active to match the row. +* `Negates` signifies that a standard requires a shape +to be inactive to match the row. -* `While` means a standard requires the Unified shape to be active in some way. -* `Except` means a standard requires the Unified shape to be inactive in some way. -* `Includes` means a standard has this specific Unified shape baked into the shape. +Regardless of the conditions, the shape can be converted into +Unified Expressions without compromising tracking quality or +expression behavior. -In all conditions, the shape can be converted to be Unified Expressions -compatible with no loss to tracking or expression behavior. For more concise -and readable information for specific tracking standards and how they convert -to Unified Expressions, please refer to [Admonitions](#admonitions). +For more concise and readable information for specific tracking +standards and how they convert to Unified Expressions, please +refer to [Admonitions](#admonitions). ::: @@ -68,7 +80,7 @@ to Unified Expressions, please refer to [Admonitions](#admonitions). ['CheekPuffLeft', '~', 'Cheek_Puff_Left'], [<>CheekSuckRight
CheekSuckLeft, 'CheekSuck', 'Cheek_Suck'], ['JawOpen', '~', 'Jaw_Open'], - [<>MouthClosed
Includes JawOpen, '~', 'MouthApeShape¹'], + ['MouthClosed', '~', <>Mouth_Ape_Shape¹
Negates Jaw_Open], ['JawRight', '~', 'Jaw_Right'], ['JawLeft', '~', 'Jaw_Left'], ['JawForward', '~', 'Jaw_Forward'], @@ -99,19 +111,19 @@ to Unified Expressions, please refer to [Admonitions](#admonitions). ### Admonitions {#admonitions} -Some expressions in SRanipal, due to the way the standard is designed, -may not have direct or intuitive assignments to Unified Expressions. +Certain expressions in SRanipal may not have direct or intuitive assignments +to Unified Expressions due to the format of the expressions. -This section will give detailed descriptions on how SRanipal controls Unified -Expressions. This can be useful for converting SRanipal shapes to Unified -Expressions, or making SRanipal shapes compatible in Unified Expressions -driven animation setups (in the case of VRCFT avatars). +The following section will provide comprehensive explanations on how SRanipal +controls Unified Expressions, and subsequently how Unified can be used to track +SRanipal shapes. This can be useful for making SRanipal shapes compatible in Unified +Expressions driven animation setups (in the case of VRCFT avatars). -Acknowledging these differences in your avatar's setup should allow SRanipal +Recognizing these differences in your avatar's setup should allow SRanipal shapes to track as intended. Certain animation templates have these admonitions built in, allowing SRanipal shapes to be used directly with Unified Expressions! -This section provides a technical description of what each shape should do to +This section provides a thorough description of what each shape should do to track as intended with Unifed Expressions. Date: Mon, 25 Sep 2023 17:41:15 -0400 Subject: [PATCH 09/12] Fixed HW compatibilities to have correct info --- docs/hardware/interface-compabilities.mdx | 95 +++++++++++++---------- 1 file changed, 54 insertions(+), 41 deletions(-) diff --git a/docs/hardware/interface-compabilities.mdx b/docs/hardware/interface-compabilities.mdx index f50406a8..bb93419f 100644 --- a/docs/hardware/interface-compabilities.mdx +++ b/docs/hardware/interface-compabilities.mdx @@ -17,6 +17,11 @@ tracking quality of each interface, and what they can do in VRCFaceTracking. For more specific information about the listed interfaces please refer to their dedicated sections. +Various aspects of the interfaces are given a rank from 1-10, indicating +their quality or effectiveness. The rankings are given by ranking devices +relative to each other based on various criteria such as tracking quality +and expressiveness. + ::: Eye Widen
Eye Squeeze
Brow(Emulated), '~', <>Widen(Emulated)
Squeeze(Emulated)
, <>Widen
Squint
Brow, + <>Widen
Squint
Brow, '❌', '❌', <>Widen
Squint
Brow, - '~', '❌', - <>Widen
Squeeze
Brow(Emulated), + '❌', + <>Widen
Squeeze
Brow(Emulated), + `~`, '~' ], [ 'Upper Face Expressability', - 'High', + '5/10', '~', 'N/A', - 'Extreme', - '❌', + '9/10', + '8/10', + '❌', + '❌', + '9/10', '❌', - '~', - 'Very High', - 'Extreme', '❌', - 'High', + '5/10', + '~', '~' ], [ 'Upper Face Tracking Quality', + '8/10', '~', - 'Very High', - '~', - 'High', - 'Mediocre', - '~', - '~', - 'Very High', - 'Very High', - '~', + 'N/A', + '7/10', + '4/10', + '❌', + '❌', + '8/10', + '❌', + '❌', + '7/10', '~', - 'High' + '~' ], [ 'Lower Face Expression Support', - <>Brow(Emulated), + '~', <>Jaw
Lip
Mouth
Cheek, '~', <>Brow
Jaw
Lip
Mouth
Cheek
Nose, @@ -100,39 +110,42 @@ interfaces please refer to their dedicated sections. <>Brow
Jaw
Lip
Mouth
Cheek
Nose, <>Jaw
Lip
Mouth
Cheek
Nose, '~', - <>Brow(Emulated), + '~', <>Jaw
Lip
Mouth
Cheek
Nose, + '~' ], [ 'Lower Face Expressability', '~', - 'High', + '7/10', '~', - 'Very High', - 'High', + '8/10', + '7/10', '~', '~', - 'Very High', - 'Extreme', + '8/10', + '9/10', '~', '~', - 'High' + '7/10', + '~' ], [ 'Face Tracking Quality', '~', - 'Very High', + '8/10', '~', - 'High', - 'Below Average', + '7/10', + '4/10', '~', '~', - 'Very High', - 'Very High', + '8/10', + '8/10', '~', '~', - 'High' + '7/10', + '~' ], - ['Tongue Expression Support', '~', 'Tongue Out & Directions', '~', '❌', 'Tongue Out', '~', '~', 'Tongue Out', 'All Tongue Expressions', '~', '~', 'Tongue Out & Directions'], + ['Tongue Expression Support', '~', 'Tongue Out & Directions', '~', '❌', 'Tongue Out', '~', '~', 'Tongue Out', 'All Tongue Expressions', '~', '~', 'Tongue Out & Directions', '~'], ]} /> From ed407414fd29a9c295f1fdb2eb06220cb58eb0ad Mon Sep 17 00:00:00 2001 From: regzo2 Date: Mon, 25 Sep 2023 17:41:34 -0400 Subject: [PATCH 10/12] Updated Standard pages to be more condensed and accurate. --- .../compatibility/arkit.mdx | 105 ++++++++------- .../compatibility/meta-movement.mdx | 127 +++++++++--------- .../compatibility/overview.mdx | 36 ++--- .../compatibility/vive-sranipal.mdx | 96 ++++++------- 4 files changed, 183 insertions(+), 181 deletions(-) diff --git a/docs/tutorial-avatars/tutorial-avatars-extras/compatibility/arkit.mdx b/docs/tutorial-avatars/tutorial-avatars-extras/compatibility/arkit.mdx index 7faafa81..8faf71d4 100644 --- a/docs/tutorial-avatars/tutorial-avatars-extras/compatibility/arkit.mdx +++ b/docs/tutorial-avatars/tutorial-avatars-extras/compatibility/arkit.mdx @@ -19,63 +19,64 @@ The following table shows how ARKit face tracking translates to Unified Expressi BrowPinchRight
BrowLowererRight, 'BrowDownRight', 'browDownRight'], - [<>BrowPinchLeft
BrowLowererLeft, 'BrowDownLeft', 'browDownLeft'], - [<>BrowInnerUpRight
BrowInnerUpLeft,'BrowInnerUp', 'browInnerUp'], - ['BrowOuterUpRight', '~', 'browOuterUpRight'], - ['BrowOuterUpLeft', '~', 'browOuterUpLeft'], - ['NoseSneerRight', '~', 'noseSneerRight'], - ['NoseSneerLeft', '~', 'noseSneerLeft'], - ['CheekSquintRight', '~', 'cheekSquintRight'], - ['CheekSquintLeft', '~', 'cheekSquintLeft'], - [<>CheekPuffRight
CheekPuffLeft, 'CheekPuff', 'cheekPuff'], - ['JawOpen', '~', 'jawOpen'], - ['MouthClosed', '~', 'mouthClose'], - ['JawRight', '~', 'jawRight'], - ['JawLeft', '~', 'jawLeft'], - ['JawForward', '~', 'jawForward'], - [<>LipSuckUpperRight
LipSuckUpperRight, 'LipSuckUpper', 'mouthRollUpper'], - [<>LipSuckLowerRight
LipSuckLowerRight, 'LipSuckLower', 'mouthRollLower'], - [<>LipPuckerUpperRight
LipPuckerUpperRight
LipPuckerLowerRight
LipPuckerLowerRight, 'LipFunnel', 'mouthFunnel'], - [<>LipPuckerUpperRight
LipPuckerUpperRight
LipPuckerLowerRight
LipPuckerLowerRight, 'LipPucker', 'mouthPucker'], - ['MouthUpperUpRight', '~', 'mouthUpperUpRight'], - ['MouthUpperUpLeft', '~', 'mouthUpperUpLeft'], - ['MouthLowerDownRight', '~', 'mouthLowerUpRight'], - ['MouthLowerDownLeft', '~', 'mouthLowerUpLeft'], - [<>MouthCornerPullerRight
MouthCornerSlantRight,'MouthSmileRight', 'mouthSmileRight'], - [<>MouthCornerPullerLeft
MouthCornerSlantLeft,'MouthSmileLeft', 'mouthSmileLeft'], - ['MouthFrownRight', '~', 'mouthFrownRight'], - ['MouthFrownLeft', '~', 'mouthFrownLeft'], - ['MouthStretchRight', '~', 'mouthStretchRight'], - ['MouthStretchLeft', '~', 'mouthStretchLeft'], - ['MouthDimplerRight', '~', 'mouthDimpleRight'], - ['MouthDimplerLeft', '~', 'mouthDimpleLeft'], - ['MouthRaiserUpper', '~', 'mouthShrugUpper'], - ['MouthRaiserLower', '~', 'mouthShrugLower'], - ['MouthPressRight', '~', 'mouthPressRight'], - ['MouthPressLeft', '~', 'mouthPressLeft'], - ['TongueOut', '~', 'tongueOut'] + ['EyeLookUpRight', 'eyeLookUpRight'], + ['EyeLookDownRight', 'eyeLookDownRight'], + ['EyeLookInRight', 'eyeLookInRight'], + ['EyeLookOutRight', 'eyeLookOutRight'], + ['EyeLookUpLeft', 'eyeLookUpLeft'], + ['EyeLookDownLeft', 'eyeLookDownLeft'], + ['EyeLookInLeft', 'eyeLookInLeft'], + ['EyeLookOutLeft', 'eyeLookOutLeft'], + ['EyeClosedRight', 'eyeBlinkRight'], + ['EyeClosedLeft', 'eyeBlinkLeft'], + ['EyeSquintRight', 'eyeSquintRight'], + ['EyeSquintLeft', 'eyeSquintLeft'], + ['EyeWideRight', 'eyeWideRight'], + ['EyeWideLeft', 'eyeWideLeft'], + [BrowDownRight, 'browDownRight'], + [BrowDownLeft, 'browDownLeft'], + [BrowInnerUp, 'browInnerUp'], + ['BrowOuterUpRight', 'browOuterUpRight'], + ['BrowOuterUpLeft', 'browOuterUpLeft'], + ['NoseSneerRight', 'noseSneerRight'], + ['NoseSneerLeft', 'noseSneerLeft'], + ['CheekSquintRight', 'cheekSquintRight'], + ['CheekSquintLeft', 'cheekSquintLeft'], + [CheekPuff, 'cheekPuff'], + ['JawOpen', 'jawOpen'], + ['MouthClosed', 'mouthClose'], + ['JawRight', 'jawRight'], + ['JawLeft', 'jawLeft'], + ['JawForward', 'jawForward'], + [LipSuckUpper, 'mouthRollUpper'], + [LipSuckLower, 'mouthRollLower'], + [LipFunnel, 'mouthFunnel'], + [LipPucker, 'mouthPucker'], + ['MouthUpperUpRight', 'mouthUpperUpRight'], + ['MouthUpperUpLeft', 'mouthUpperUpLeft'], + ['MouthLowerDownRight', 'mouthLowerUpRight'], + ['MouthLowerDownLeft', 'mouthLowerUpLeft'], + [MouthSmileRight, 'mouthSmileRight'], + [MouthSmileLeft, 'mouthSmileLeft'], + ['MouthFrownRight', 'mouthFrownRight'], + ['MouthFrownLeft', 'mouthFrownLeft'], + ['MouthStretchRight', 'mouthStretchRight'], + ['MouthStretchLeft', 'mouthStretchLeft'], + ['MouthDimplerRight', 'mouthDimpleRight'], + ['MouthDimplerLeft', 'mouthDimpleLeft'], + ['MouthRaiserUpper', 'mouthShrugUpper'], + ['MouthRaiserLower', 'mouthShrugLower'], + ['MouthPressRight', 'mouthPressRight'], + ['MouthPressLeft', 'mouthPressLeft'], + ['TongueOut', 'tongueOut'] ]} /> +* Bold Blended Shape. + :::caution Some shapes are not tracked ARKit does not include expressions to track the following Unified Expressions: diff --git a/docs/tutorial-avatars/tutorial-avatars-extras/compatibility/meta-movement.mdx b/docs/tutorial-avatars/tutorial-avatars-extras/compatibility/meta-movement.mdx index a034e7da..8e04175c 100644 --- a/docs/tutorial-avatars/tutorial-avatars-extras/compatibility/meta-movement.mdx +++ b/docs/tutorial-avatars/tutorial-avatars-extras/compatibility/meta-movement.mdx @@ -20,74 +20,75 @@ The following table shows how Movement face tracking translates to Unified Expre BrowPinchRight
BrowLowererRight, 'BrowDownRight', 'BROW_LOWERER_R'], - [<>BrowPinchLeft
BrowLowererLeft, 'BrowDownLeft', 'BROW_LOWERER_L'], - ['BrowInnerUpRight', '~', 'INNER_BROW_RAISER_R'], - ['BrowInnerUpLeft', '~', 'INNER_BROW_RAISER_L'], - ['BrowOuterUpRight', '~', 'OUTER_BROW_RAISER_R'], - ['BrowOuterUpLeft', '~', 'OUTER_BROW_RAISER_L'], - ['NoseSneerRight', '~', 'NOSE_WRINKLER_R'], - ['NoseSneerLeft', '~', 'NOSE_WRINKLER_L'], - ['CheekSquintRight', '~', 'CHEEK_RAISER_R'], - ['CheekSquintLeft', '~', 'CHEEK_RAISER_L'], - ['CheekPuffRight', '~', 'CHEEK_PUFF_R'], - ['CheekPuffLeft', '~', 'CHEEK_PUFF_L'], - ['CheekSuckRight', '~', 'CHEEK_SUCK_R'], - ['CheekSuckLeft', '~', 'CHEEK_SUCK_L'], - ['JawOpen', '~', 'JAW_DROP'], - ['MouthClosed', '~', 'LIPS_TOWARD'], - ['JawRight', '~', 'JAW_SIDEWAYS_RIGHT'], - ['JawLeft', '~', 'JAW_SIDEWAYS_LEFT'], - ['JawForward', '~', 'JAW_THRUST'], - ['LipSuckUpperRight', '~', 'LIP_SUCK_RT'], - ['LipSuckUpperLeft', '~', 'LIP_SUCK_LT'], - ['LipSuckLowerRight', '~', 'LIP_SUCK_RB'], - ['LipSuckLowerLeft', '~', 'LIP_SUCK_LB'], - ['LipFunnelUpperRight', '~', 'LIP_FUNNELER_RT'], - ['LipFunnelUpperLeft', '~', 'LIP_FUNNELER_LT'], - ['LipFunnelLowerRight', '~', 'LIP_SUCK_RB'], - ['LipFunnelLowerLeft', '~', 'LIP_SUCK_LB'], - [<>LipPuckerUpperRight
LipPuckerLowerRight, 'N/A', 'LIP_PUCKER_R'], - [<>LipPuckerUpperLeft
LipPuckerLowerLeft, 'N/A', 'LIP_PUCKER_L'], - ['MouthUpperUpRight', '~', 'UPPER_LIP_RAISER_R'], - ['MouthUpperUpLeft', '~', 'UPPER_LIP_RAISER_L'], - ['MouthLowerDownRight', '~', 'LOWER_LIP_DEPRESSOR_R'], - ['MouthLowerDownLeft', '~', 'LOWER_LIP_DEPRESSER_L'], - [<>MouthCornerPullerRight
MouthCornerSlantRight, 'MouthSmileRight', 'LIP_CORNER_PULLER_R'], - [<>MouthCornerPullerLeft
MouthCornerSlantLeft, 'MouthSmileLeft', 'LIP_CORNER_PULLER_L'], - ['MouthFrownRight', '~', 'LIP_CORNER_DEPRESSOR_R'], - ['MouthFrownLeft', '~', 'LIP_CORNER_DEPRESSOR_L'], - ['MouthStretchRight', '~', 'LIP_STRETCHER_R'], - ['MouthStretchLeft', '~', 'LIP_STRETCHER_L'], - ['MouthDimplerRight', '~', 'DIMPLER_R'], - ['MouthDimplerLeft', '~', 'DIMPLER_L'], - ['MouthRaiserUpper', '~', 'CHIN_RAISER_T'], - ['MouthRaiserUpper', '~', 'CHIN_RAISER_T'], - ['MouthPressRight', '~', 'LIP_PRESSOR_R'], - ['MouthPressLeft', '~', 'LIP_PRESSOR_L'], - ['MouthTightenerRight', '~', 'LIP_TIGHTENER_R'], - ['MouthTightenerLeft', '~', 'LIP_TIGHTENER_L'], + ['EyeLookUpRight', 'EYES_LOOK_UP_R'], + ['EyeLookDownRight', 'EYES_LOOK_DOWN_R'], + ['EyeLookInRight', 'EYES_LOOK_IN_R'], + ['EyeLookOutRight', 'EYES_LOOK_OUT_R'], + ['EyeLookUpLeft', 'EYES_LOOK_UP_L'], + ['EyeLookDownLeft', 'EYES_LOOK_DOWN_L'], + ['EyeLookInLeft', 'EYES_LOOK_IN_L'], + ['EyeLookOutLeft', 'EYES_LOOK_OUT_L'], + ['EyeClosedRight', 'EYES_CLOSED_R'], + ['EyeClosedLeft', 'EYES_CLOSED_L'], + ['EyeSquintRight', 'EYES_SQUINT_R'], + ['EyeSquintLeft', 'EYES_SQUINT_R'], + ['EyeWideRight', 'EYES_WIDEN_R'], + ['EyeWideLeft', 'EYES_WIDEN_L'], + [BrowDownRight, 'BROW_LOWERER_R'], + [BrowDownLeft, 'BROW_LOWERER_L'], + ['BrowInnerUpRight', 'INNER_BROW_RAISER_R'], + ['BrowInnerUpLeft', 'INNER_BROW_RAISER_L'], + ['BrowOuterUpRight', 'OUTER_BROW_RAISER_R'], + ['BrowOuterUpLeft', 'OUTER_BROW_RAISER_L'], + ['NoseSneerRight', 'NOSE_WRINKLER_R'], + ['NoseSneerLeft', 'NOSE_WRINKLER_L'], + ['CheekSquintRight', 'CHEEK_RAISER_R'], + ['CheekSquintLeft', 'CHEEK_RAISER_L'], + ['CheekPuffRight', 'CHEEK_PUFF_R'], + ['CheekPuffLeft', 'CHEEK_PUFF_L'], + ['CheekSuckRight', 'CHEEK_SUCK_R'], + ['CheekSuckLeft', 'CHEEK_SUCK_L'], + ['JawOpen', 'JAW_DROP'], + ['MouthClosed', 'LIPS_TOWARD'], + ['JawRight', 'JAW_SIDEWAYS_RIGHT'], + ['JawLeft', 'JAW_SIDEWAYS_LEFT'], + ['JawForward', 'JAW_THRUST'], + ['LipSuckUpperRight', 'LIP_SUCK_RT'], + ['LipSuckUpperLeft', 'LIP_SUCK_LT'], + ['LipSuckLowerRight', 'LIP_SUCK_RB'], + ['LipSuckLowerLeft', 'LIP_SUCK_LB'], + ['LipFunnelUpperRight', 'LIP_FUNNELER_RT'], + ['LipFunnelUpperLeft', 'LIP_FUNNELER_LT'], + ['LipFunnelLowerRight', 'LIP_FUNNELER_RB'], + ['LipFunnelLowerLeft', 'LIP_FUNNELER_LB'], + [<>LipPuckerUpperRight
LipPuckerLowerRight, 'LIP_PUCKER_R'], + [<>LipPuckerUpperLeft
LipPuckerLowerLeft, 'LIP_PUCKER_L'], + ['MouthUpperUpRight', 'UPPER_LIP_RAISER_R'], + ['MouthUpperUpLeft', 'UPPER_LIP_RAISER_L'], + ['MouthLowerDownRight', 'LOWER_LIP_DEPRESSOR_R'], + ['MouthLowerDownLeft', 'LOWER_LIP_DEPRESSER_L'], + [MouthSmileRight, 'LIP_CORNER_PULLER_R'], + [MouthSmileLeft, 'LIP_CORNER_PULLER_L'], + ['MouthFrownRight', 'LIP_CORNER_DEPRESSOR_R'], + ['MouthFrownLeft', 'LIP_CORNER_DEPRESSOR_L'], + ['MouthStretchRight', 'LIP_STRETCHER_R'], + ['MouthStretchLeft', 'LIP_STRETCHER_L'], + ['MouthDimplerRight', 'DIMPLER_R'], + ['MouthDimplerLeft', 'DIMPLER_L'], + ['MouthRaiserUpper', 'CHIN_RAISER_T'], + ['MouthRaiserUpper', 'CHIN_RAISER_T'], + ['MouthPressRight', 'LIP_PRESSOR_R'], + ['MouthPressLeft', 'LIP_PRESSOR_L'], + ['MouthTightenerRight', 'LIP_TIGHTENER_R'], + ['MouthTightenerLeft', 'LIP_TIGHTENER_L'], ]} /> +* Bold Blended Shape. + :::caution Some shapes are not tracked Movement does not include expressions to track the following Unified Expressions: diff --git a/docs/tutorial-avatars/tutorial-avatars-extras/compatibility/overview.mdx b/docs/tutorial-avatars/tutorial-avatars-extras/compatibility/overview.mdx index 6ae3f196..a1519d48 100644 --- a/docs/tutorial-avatars/tutorial-avatars-extras/compatibility/overview.mdx +++ b/docs/tutorial-avatars/tutorial-avatars-extras/compatibility/overview.mdx @@ -78,19 +78,19 @@ dedicated sections for each standard. ['EyeClosedLeft', 'eyeBlinkLeft', 'Eye_Left_Blink', 'EYES_CLOSED_L'], ['EyeSquintRight', 'eyeSquintRight', '~', 'EYES_SQUINT_R'], ['EyeSquintLeft', 'eyeSquintLeft', '~', 'EYES_SQUINT_R'], - [<>*BrowDownRight
CheekSquintRight
EyeSquintRight
While EyeClosedRight, '~', 'Eye_Right_squeeze¹', '~'], - [<>*BrowDownLeft
CheekSquintLeft
EyeSquintLeft
While EyeClosedLeft, '~', 'Eye_Left_squeeze¹', '~'], + [<>BrowDownRight
CheekSquintRight
EyeSquintRight
While EyeClosedRight, '~', 'Eye_Right_squeeze¹', '~'], + [<>BrowDownLeft
CheekSquintLeft
EyeSquintLeft
While EyeClosedLeft, '~', 'Eye_Left_squeeze¹', '~'], ['EyeWideRight', 'eyeWideRight', 'Eye_Right_Wide', 'EYES_WIDEN_R'], ['EyeWideLeft', 'eyeWideLeft', 'Eye_Left_Wide', 'EYES_WIDEN_L'], ['EyeDilationRight', '❌', 'Eye_Right_Dilation', '❌'], ['EyeDilationLeft', '❌', 'Eye_Left_Dilation', '❌'], ['EyeConstrictRight', '❌', 'Eye_Right_Constrict', '❌'], ['EyeConstrictLeft', '❌', 'Eye_Left_Constrict', '❌'], - ['*BrowDownRight', 'browDownRight', '❌', 'BROW_LOWERER_R'], - ['*BrowDownLeft', 'browDownLeft', '❌', 'BROW_LOWERER_L'], + [BrowDownRight, 'browDownRight', '❌', 'BROW_LOWERER_R'], + [BrowDownLeft, 'browDownLeft', '❌', 'BROW_LOWERER_L'], ['BrowInnerUpRight', '~', '❌', 'INNER_BROW_RAISER_R'], ['BrowInnerUpLeft', '~', '❌', 'INNER_BROW_RAISER_L'], - ['*BrowInnerUp', 'browInnerUp', '❌', '~'], + [BrowInnerUp, 'browInnerUp', '❌', '~'], ['BrowOuterUpRight', 'browOuterUpRight', '❌', 'OUTER_BROW_RAISER_R'], ['BrowOuterUpLeft', 'browOuterUpLeft', '❌', 'OUTER_BROW_RAISER_L'], ['NoseSneerRight', 'noseSneerRight', '❌', 'NOSE_WRINKLER_R'], @@ -99,10 +99,10 @@ dedicated sections for each standard. ['CheekSquintLeft', 'cheekSquintLeft', '~', 'CHEEK_RAISER_L'], ['CheekPuffRight', '~', 'Cheek_Puff_Right', 'CHEEK_PUFF_R'], ['CheekPuffLeft', '~', 'Cheek_Puff_Left', 'CHEEK_PUFF_L'], - ['*CheekPuff', 'cheekPuff', '~', '~'], + [CheekPuff, 'cheekPuff', '~', '~'], ['CheekSuckRight', '❌', '~', 'CHEEK_SUCK_R'], ['CheekSuckLeft', '❌', '~', 'CHEEK_SUCK_L'], - ['CheekSuck', '❌', 'Cheek_Suck', '~'], + [CheekSuck, '❌', 'Cheek_Suck', '~'], ['JawOpen', 'jawOpen', 'Jaw_Open', 'JAW_DROP'], ['MouthClosed', 'mouthClose', <>Mouth_Ape_Shape¹
Negates Jaw_Open, 'LIPS_TOWARD'], ['JawRight', 'jawRight', 'Jaw_Right', 'JAW_SIDEWAYS_RIGHT'], @@ -110,30 +110,30 @@ dedicated sections for each standard. ['JawForward', 'jawForward', 'Jaw_Forward', 'JAW_THRUST'], ['LipSuckUpperRight', '~', '~', 'LIP_SUCK_RT'], ['LipSuckUpperLeft', '~', '~', 'LIP_SUCK_LT'], - ['*LipSuckUpper', 'mouthRollUpper', 'Mouth_Upper_Inside', '~'], + [LipSuckUpper, 'mouthRollUpper', 'Mouth_Upper_Inside', '~'], ['LipSuckLowerRight', '~', '~', 'LIP_SUCK_RB'], ['LipSuckLowerLeft', '~', '~', 'LIP_SUCK_LB'], - ['*LipSuckLower', 'mouthRollLower', 'Mouth_Lower_Inside', '~'], + [LipSuckLower, 'mouthRollLower', 'Mouth_Lower_Inside', '~'], ['LipFunnelUpperRight', '~', '~', 'LIP_FUNNELER_RT'], ['LipFunnelUpperLeft', '~', '~', 'LIP_FUNNELER_LT'], - ['*LipFunnelUpper', '~', 'Mouth_Upper_Overturn¹', '~'], + [LipFunnelUpper, '~', 'Mouth_Upper_Overturn¹', '~'], ['LipFunnelLowerRight', '~', '~', 'LIP_SUCK_RB'], ['LipFunnelLowerLeft', '~', '~', 'LIP_SUCK_LB'], - ['*LipFunnelLower', '~', 'Mouth_Lower_Overturn¹', '~'], - ['*LipFunnel', 'mouthFunnel', '~', '~'], + [LipFunnelLower, '~', 'Mouth_Lower_Overturn¹', '~'], + [LipFunnel, 'mouthFunnel', '~', '~'], [<>LipPuckerUpperRight
LipPuckerLowerRight, '~', '~', 'LIP_PUCKER_R'], [<>LipPuckerUpperLeft
LipPuckerLowerLeft, '~', '~', 'LIP_PUCKER_L'], - ['*LipPucker', 'mouthPucker', 'Mouth_Pout', ''], + [LipPucker, 'mouthPucker', 'Mouth_Pout', ''], ['MouthUpperUpRight', 'mouthUpperUpRight', 'Mouth_Upper_Up_Right', 'UPPER_LIP_RAISER_R'], ['MouthUpperUpLeft', 'mouthUpperUpLeft', 'Mouth_Upper_Up_Left', 'UPPER_LIP_RAISER_L'], ['MouthLowerDownRight', 'mouthLowerUpRight', 'Mouth_Lower_Down_Right', 'LOWER_LIP_DEPRESSOR_R'], ['MouthLowerDownLeft', 'mouthLowerUpLeft', 'Mouth_Lower_Down_Left', 'LOWER_LIP_DEPRESSER_L'], - ['*MouthSmileRight', 'mouthSmileRight', 'Mouth_Smile_Right', 'LIP_CORNER_PULLER_R'], - ['*MouthSmileLeft', 'mouthSmileLeft', 'Mouth_Smile_Left', 'LIP_CORNER_PULLER_L'], + [MouthSmileRight, 'mouthSmileRight', 'Mouth_Smile_Right', 'LIP_CORNER_PULLER_R'], + [MouthSmileLeft, 'mouthSmileLeft', 'Mouth_Smile_Left', 'LIP_CORNER_PULLER_L'], ['MouthFrownRight', 'mouthFrownRight', '~', 'LIP_CORNER_DEPRESSOR_R'], ['MouthFrownLeft', 'mouthFrownLeft', '~', 'LIP_CORNER_DEPRESSOR_L'], - ['*MouthSadRight', '~', 'Mouth_Sad_Right', '~'], - ['*MouthSadLeft', '~', 'Mouth_Sad_Left', '~'], + [MouthSadRight, '~', 'Mouth_Sad_Right', '~'], + [MouthSadLeft, '~', 'Mouth_Sad_Left', '~'], ['MouthStretchRight', 'mouthStretchRight', '~', 'LIP_STRETCHER_R'], ['MouthStretchLeft', 'mouthStretchLeft', '~', 'LIP_STRETCHER_L'], ['MouthDimplerRight', 'mouthDimpleRight', '~', 'DIMPLER_R'], @@ -154,7 +154,7 @@ dedicated sections for each standard. /> * ¹ Requires the use of a specialized animation setup to work with VRCFT V2 tracking. -* \* Blended Shape. +* Bold Blended Shape. ### Standard Documentation diff --git a/docs/tutorial-avatars/tutorial-avatars-extras/compatibility/vive-sranipal.mdx b/docs/tutorial-avatars/tutorial-avatars-extras/compatibility/vive-sranipal.mdx index 416d4991..8eb61572 100644 --- a/docs/tutorial-avatars/tutorial-avatars-extras/compatibility/vive-sranipal.mdx +++ b/docs/tutorial-avatars/tutorial-avatars-extras/compatibility/vive-sranipal.mdx @@ -54,60 +54,60 @@ refer to [Admonitions](#admonitions). *BrowDownRight
CheekSquintRight
EyeSquintRight
While EyeClosedRight, '~', 'Eye_Right_squeeze¹'], - [<>*BrowDownLeft
CheekSquintLeft
EyeSquintLeft
While EyeClosedLeft, '~', 'Eye_Left_squeeze¹'], - ['EyeWideRight', '~', 'Eye_Right_Wide'], - ['EyeWideLeft', '~', 'Eye_Left_Wide'], - ['EyeDilationRight', '~', 'Eye_Right_Dilation'], - ['EyeDilationLeft', '~', 'Eye_Left_Dilation'], - ['EyeConstrictRight', '~', 'Eye_Right_Constrict'], - ['EyeConstrictLeft', '~', 'Eye_Left_Constrict'], - ['CheekPuffRight', '~', 'Cheek_Puff_Right'], - ['CheekPuffLeft', '~', 'Cheek_Puff_Left'], - [<>CheekSuckRight
CheekSuckLeft, 'CheekSuck', 'Cheek_Suck'], - ['JawOpen', '~', 'Jaw_Open'], - ['MouthClosed', '~', <>Mouth_Ape_Shape¹
Negates Jaw_Open], - ['JawRight', '~', 'Jaw_Right'], - ['JawLeft', '~', 'Jaw_Left'], - ['JawForward', '~', 'Jaw_Forward'], - [<>LipSuckUpperRight
LipSuckUpperLeft, 'LipSuckUpper', 'Mouth_Upper_Inside'], - [<>LipSuckLowerRight
LipSuckLowerLeft, 'LipSuckLower', 'Mouth_Lower_Inside'], - [<>LipFunnelUpperRight
LipFunnelUpperLeft
While MouthUpperUp, 'LipFunnelUpper', 'Mouth_Upper_Overturn¹'], - [<>LipFunnelLowerRight
LipFunnelLowerLeft
While MouthLowerDown, 'LipFunnelLower', 'Mouth_Lower_Overturn¹'], - [<>LipPuckerUpperRight
LipPuckerUpperLeft
LipPuckerLowerRight
LipPuckerLowerLeft, 'LipPucker', 'Mouth_Pout'], - ['MouthUpperUpRight', '~', 'Mouth_Upper_Up_Right'], - ['MouthUpperUpLeft', '~', 'Mouth_Upper_Up_Left'], - ['MouthLowerDownRight', '~', 'Mouth_Lower_Down_Right'], - ['MouthLowerDownLeft', '~', 'Mouth_Lower_Down_Left'], - [<>MouthCornerPullerRight
MouthCornerSlantRight, 'MouthSmileRight', 'Mouth_Smile_Right'], - [<>MouthCornerPullerLeft
MouthCornerSlantLeft, 'MouthSmileLeft', 'Mouth_Smile_Left'], - [<>MouthFrownRight
MouthStretchRight, 'MouthSadRight', 'Mouth_Sad_Right'], - [<>MouthFrownRight
MouthStretchRight, 'MouthSadLeft', 'Mouth_Sad_Left'], - ['MouthRaiserLower', 'mouthShrugLower', 'Mouth_Lower_Overlay'], - ['TongueOut', 'tongueOut', <>Tongue_LongStep1
Tongue_LongStep2], - ['TongueUp', '~', 'Tongue_Up'], - ['TongueDown', '~', 'Tongue_Down'], - ['TongueRight', '~', 'Tongue_Right'], - ['TongueLeft', '~', 'Tongue_Left'], - ['TongueRoll', '~', 'Tongue_Roll'], + ['EyeLookUpRight', 'Eye_Right_Look_Up'], + ['EyeLookDownRight', 'Eye_Right_Look_Down'], + ['EyeLookInRight', 'Eye_Right_Left'], + ['EyeLookOutRight', 'Eye_Right_Right'], + ['EyeLookUpLeft', 'Eye_Left_Look_Up'], + ['EyeLookDownLeft', 'Eye_Left_Look_Down'], + ['EyeLookInLeft', 'Eye_Left_Right'], + ['EyeLookOutLeft', 'Eye_Left_Left'], + ['EyeClosedRight', 'Eye_Right_Blink'], + ['EyeClosedLeft', 'Eye_Left_Blink'], + [<>BrowDownRight
CheekSquintRight
EyeSquintRight
, 'Eye_Right_squeeze¹'], + [<>BrowDownLeft
CheekSquintLeft
EyeSquintLeft
, 'Eye_Left_squeeze¹'], + ['EyeWideRight', 'Eye_Right_Wide'], + ['EyeWideLeft', 'Eye_Left_Wide'], + ['EyeDilationRight', 'Eye_Right_Dilation'], + ['EyeDilationLeft', 'Eye_Left_Dilation'], + ['EyeConstrictRight', 'Eye_Right_Constrict'], + ['EyeConstrictLeft', 'Eye_Left_Constrict'], + ['CheekPuffRight', 'Cheek_Puff_Right'], + ['CheekPuffLeft', 'Cheek_Puff_Left'], + [CheekSuck', 'Cheek_Suck'], + ['JawOpen', 'Jaw_Open'], + ['MouthClosed', <>Mouth_Ape_Shape¹
Negates Jaw_Open], + ['JawRight', 'Jaw_Right'], + ['JawLeft', 'Jaw_Left'], + ['JawForward', 'Jaw_Forward'], + [LipSuckUpper, 'Mouth_Upper_Inside'], + [LipSuckLower, 'Mouth_Lower_Inside'], + [LipFunnelUpper, <>Mouth_Upper_Overturn
While Mouth_Upper_Up_Left
While Mouth_Upper_Up_Right
], + [LipFunnelLower, <>Mouth_Lower_Overturn
While Mouth_Lower_Down_Left
While Mouth_Lower_Down_Right
], + [LipPucker, 'Mouth_Pout'], + ['MouthUpperUpRight', 'Mouth_Upper_Up_Right'], + ['MouthUpperUpLeft', 'Mouth_Upper_Up_Left'], + ['MouthLowerDownRight', 'Mouth_Lower_Down_Right'], + ['MouthLowerDownLeft', 'Mouth_Lower_Down_Left'], + [MouthSmileRight, 'Mouth_Smile_Right'], + [MouthSmileLeft, 'Mouth_Smile_Left'], + [MouthSadRight, 'Mouth_Sad_Right'], + [MouthSadLeft, 'Mouth_Sad_Left'], + ['MouthRaiserLower', 'Mouth_Lower_Overlay'], + ['TongueOut', <>Tongue_LongStep1
Tongue_LongStep2], + ['TongueUp', 'Tongue_Up'], + ['TongueDown', 'Tongue_Down'], + ['TongueRight', 'Tongue_Right'], + ['TongueLeft', 'Tongue_Left'], + ['TongueRoll', 'Tongue_Roll'], ]} /> * ¹ More detailed reasoning is elaborated in [Admonitions](#admonitions) +* Bold Blended Shape. ### Admonitions {#admonitions} From 5b5b69651b66e64f0b314f2ce71d0205a250a706 Mon Sep 17 00:00:00 2001 From: regzo2 Date: Mon, 25 Sep 2023 17:45:22 -0400 Subject: [PATCH 11/12] Fixed Brow being in a few 'Lower Face' slots --- docs/hardware/interface-compabilities.mdx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/hardware/interface-compabilities.mdx b/docs/hardware/interface-compabilities.mdx index bb93419f..34011b7e 100644 --- a/docs/hardware/interface-compabilities.mdx +++ b/docs/hardware/interface-compabilities.mdx @@ -103,11 +103,11 @@ and expressiveness. '~', <>Jaw
Lip
Mouth
Cheek, '~', - <>Brow
Jaw
Lip
Mouth
Cheek
Nose, - <>Brow
Jaw
Lip
Mouth
Cheek
Nose, + <>Jaw
Lip
Mouth
Cheek
Nose, + <>Jaw
Lip
Mouth
Cheek
Nose, '~', '~', - <>Brow
Jaw
Lip
Mouth
Cheek
Nose, + <>Jaw
Lip
Mouth
Cheek
Nose, <>Jaw
Lip
Mouth
Cheek
Nose, '~', '~', From 4ec6257fe0e982fc0d990b50ef7efc492b2781e2 Mon Sep 17 00:00:00 2001 From: kusomaigo Date: Mon, 25 Sep 2023 21:53:36 -0400 Subject: [PATCH 12/12] add definitions and tiny wording adjustment to interface-compatibilities --- ...ties.mdx => interface-compatibilities.mdx} | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) rename docs/hardware/{interface-compabilities.mdx => interface-compatibilities.mdx} (87%) diff --git a/docs/hardware/interface-compabilities.mdx b/docs/hardware/interface-compatibilities.mdx similarity index 87% rename from docs/hardware/interface-compabilities.mdx rename to docs/hardware/interface-compatibilities.mdx index 34011b7e..a0d1f28b 100644 --- a/docs/hardware/interface-compabilities.mdx +++ b/docs/hardware/interface-compatibilities.mdx @@ -10,7 +10,7 @@ import FilterTable from '@site/src/components/FilterTable.tsx'; *** -:::note How to read this section +:::note How to read this page This page goes over generalized functions, features, and tracking quality of each interface, and what they can do in @@ -19,8 +19,15 @@ interfaces please refer to their dedicated sections. Various aspects of the interfaces are given a rank from 1-10, indicating their quality or effectiveness. The rankings are given by ranking devices -relative to each other based on various criteria such as tracking quality -and expressiveness. +relative to each other based on criteria such as expressibility and +tracking quality. + +**Expressibility**: The range of motions/expressions that can be tracked. The higher +the expressibility, the more face details the interface reports tracked values for. + +**Tracking Quality**: How well the interface tracks its reported range of motions. +The higher the tracking quality, the better control most users will have over the +range of motions/expressions supported by the interface. ::: @@ -52,7 +59,7 @@ and expressiveness. ['Pupil Dilation', '✔', '~', '✔', '❌', '❌', '❌', '❌', '❌', '~', '❌', '❌', '~', '✔'], [ 'Upper Face Expression Support', - <>Eye Widen
Eye Squeeze
Brow(Emulated), + <>Widen
Squeeze
Brow(Emulated), '~', <>Widen(Emulated)
Squeeze(Emulated)
, <>Widen
Squint
Brow, @@ -67,7 +74,7 @@ and expressiveness. '~' ], [ - 'Upper Face Expressability', + 'Upper Face Expressibility', '5/10', '~', 'N/A', @@ -115,7 +122,7 @@ and expressiveness. '~' ], [ - 'Lower Face Expressability', + 'Lower Face Expressibility', '~', '7/10', '~',