From 09080dc7ab441618ee09fa15b4c0ea5d0fed1ce2 Mon Sep 17 00:00:00 2001 From: Brandon Thomas Date: Tue, 26 Jul 2022 22:03:35 -0400 Subject: [PATCH] Revert "framer motion animation" This reverts commit fffb8af7c481882f47baafca65a39cd25ff0bae6. --- packages/fakeyou/package.json | 1 - packages/fakeyou/src/App.tsx | 18 +- packages/fakeyou/src/data/animation.ts | 25 - .../v2/view/about/about_page/AboutPage.tsx | 530 +++++++++--------- .../tts/tts_model_list/TtsModelListFc.tsx | 213 +++---- yarn.lock | 114 ---- 6 files changed, 380 insertions(+), 521 deletions(-) diff --git a/packages/fakeyou/package.json b/packages/fakeyou/package.json index 71d453758d..5eb9ef1a6c 100644 --- a/packages/fakeyou/package.json +++ b/packages/fakeyou/package.json @@ -26,7 +26,6 @@ "bulma": "^0.9.0", "craco": "^0.0.3", "date-fns": "^2.22.1", - "framer-motion": "^6.5.1", "howler": "^2.2.0", "i18next": "^21.6.11", "js-cookie": "^3.0.1", diff --git a/packages/fakeyou/src/App.tsx b/packages/fakeyou/src/App.tsx index fdaadae127..510b489f5c 100644 --- a/packages/fakeyou/src/App.tsx +++ b/packages/fakeyou/src/App.tsx @@ -169,20 +169,20 @@ class App extends React.Component { componentWillMount() { // Handle redesign - console.log("componentWillMount", "useRefresh?", USE_REFRESH); + console.log('componentWillMount', 'useRefresh?', USE_REFRESH); if (USE_REFRESH) { // Redesign-specific CSS - // NB(echelon): Despite the branches here, scss is all combined together at compile time - // in staging and production (not development). To handle those environments, styles are - // additionally applied based on the root "fakeyou-refresh" class, which may have changed + // NB(echelon): Despite the branches here, scss is all combined together at compile time + // in staging and production (not development). To handle those environments, styles are + // additionally applied based on the root "fakeyou-refresh" class, which may have changed // some of the specificity rules of Bootstrap. require("./AppNew.scss"); } else { // Old design CSS // NB(echelon): Despite the branches here, scss is all combined together at compile time - // in staging and production (not development). To handle those environments, styles are - // additionally applied based on the root "fakeyou-old" class, which may have changed some + // in staging and production (not development). To handle those environments, styles are + // additionally applied based on the root "fakeyou-old" class, which may have changed some // of the specificity rules of Bulma. require("./AppOld.scss"); require("./v2/view/_css/footer.scss"); @@ -542,11 +542,7 @@ class App extends React.Component { let mainClassNames = USE_REFRESH ? "bg-gradient" : ""; let particlesBg = <>; if (USE_REFRESH) { - particlesBg = ( - <> - - - ); + particlesBg = <> } return ( diff --git a/packages/fakeyou/src/data/animation.ts b/packages/fakeyou/src/data/animation.ts index 45e8f036ed..2fc7888d08 100644 --- a/packages/fakeyou/src/data/animation.ts +++ b/packages/fakeyou/src/data/animation.ts @@ -8,28 +8,3 @@ export const duration = "400"; export const pricing1 = "0"; export const pricing2 = "100"; export const pricing3 = "200"; - -export const container = { - visible: { - opacity: 1, - transition: { - staggerChildren: 0.05, - }, - }, - hidden: { opacity: 0 }, -}; - -export const item = { - visible: { opacity: 1, y: 0 }, - hidden: { opacity: 0, y: 50 }, -}; - -export const image = { - visible: { opacity: 1, x: 0, transition: { delay: 0.1 } }, - hidden: { opacity: 0, x: 100 }, -}; - -export const panel = { - visible: { opacity: 1, y: 0, transition: { delay: 0.25 } }, - hidden: { opacity: 0, y: 50 }, -}; diff --git a/packages/fakeyou/src/v2/view/about/about_page/AboutPage.tsx b/packages/fakeyou/src/v2/view/about/about_page/AboutPage.tsx index 89ceda41e0..460deff9fc 100644 --- a/packages/fakeyou/src/v2/view/about/about_page/AboutPage.tsx +++ b/packages/fakeyou/src/v2/view/about/about_page/AboutPage.tsx @@ -1,8 +1,8 @@ import React from "react"; import { Link } from "react-router-dom"; -import { container, item, image, panel } from "../../../../data/animation"; -import { motion } from "framer-motion"; +import { distance, delay, delay2, duration } from "../../../../data/animation"; import { USE_REFRESH } from "../../../../Refresh"; +const Fade = require("react-reveal/Fade"); interface Props {} @@ -272,289 +272,291 @@ function AboutPage(props: Props) { } return ( - +
- + + FakeYou Kitsune Mascot! +
-
-
- - A Glimpse of the Future - + +
+
+

+ A Glimpse of the Future +

+
+
+

+ We're building FakeYou as just one component of a broad set + of production and creative tooling. +

+
-
- - We're building FakeYou as just one component of a broad set of - production and creative tooling. - -
-
+
- -
-

About FakeYou

-
-

- Your brain was already capable of imagining things spoken in other - people's voices. This is a demonstration of how far computers have - caught up. One day computers will be able to bring all of the rich - and vivid imagery of your hopes and dreams to life. There's never - been a better time throughout all history to be a creative than - now. -

-
-

Technology disclosure

+
+ +
+

About FakeYou

+

- - We'll be happy to remove any of the voices featured here for - any reason. See our terms page for - more info. - + Your brain was already capable of imagining things spoken in + other people's voices. This is a demonstration of how far + computers have caught up. One day computers will be able to + bring all of the rich and vivid imagery of your hopes and dreams + to life. There's never been a better time throughout all history + to be a creative than now.

-
-

- ”Deep fakes” are kind of like Photoshop when it - first came out. They're impressive, maybe a little bit scary, - but they're about to become the new norm. People will become - accustomed to the technology, and the results will be used - mostly for creative good, unlocking previously costly and - unattainable high production values for individual creators. - It's our belief that the next Hollywood will be you. -

-
-

- The technology to clone voices is already out in the open, and - the voices here are built by a community of contributors. We're - not the only website doing this, and plenty of people are - producing these same results on their own at home, independent - of our work. You can see thousands of examples on YouTube and - social media. -

-
-

- Even if the United States chooses to ban this technology, - institutions in China, Japan, Canada, and other countries all - over the world are rapidly conducting and publishing research on - this topic. People everywhere have access to this easy-to-use - technology. State actors probably have even more sophisiticated - versions available. -

-
-

- As an interesting point, most if not all of the voices produced - by this website are actually - Linda Johnson with a little bit layered on top. -

- -

- - NVIDIA makes these tools publicly available for you to make - your own voice models - - . Check it out! -

-
-
-

FakeYou was previously Vocodes

-

- FakeYou.com was previously known as{" "} - https://vo.codes, but has been rebranded to - better reflect its purpose and direction. (Not many people know - what a vocoder is anyway, so it didn't make sense to - keep the name.) -

-
-
-

Thanks

-

- Thanks to the following individuals (in no particular order) for - help with data gathering and annotation, Discord moderation, ML - advice, etc. -

-
-

- Vegito1089, Shin, Ashurath, MakaveliGH, Blutarch Mann, Yahia, - Tim Squid, Seuneramet, Matt, Seth, CookiePPP,{" "} - - @r9y9 - - , BFlat, Raisin. -

- -
- -

- The following papers, models, and resources were used: +

+

Technology disclosure

+

+ + We'll be happy to remove any of the voices featured here for + any reason. See our terms page for + more info. + +


+

+ ”Deep fakes” are kind of like Photoshop when it + first came out. They're impressive, maybe a little bit scary, + but they're about to become the new norm. People will become + accustomed to the technology, and the results will be used + mostly for creative good, unlocking previously costly and + unattainable high production values for individual creators. + It's our belief that the next Hollywood will be you. +


- - Tacotron2 - {" "} - (BSD-3 license),{" "} - - glow-tts - {" "} - (MIT license), {/* MIT */} - - MelGAN - {" "} - (BSD-3 license), {/* BSD3 */} - - Multi-band MelGAN - {" "} - (paper),{" "} - - HiFi-GAN - {" "} - (paper),{" "} - - Wav2Lip - {" "} - (MIT license), {/* Non-commercial */} - - CMUDict - {" "} - (BSD-2 license),{" "} - - LJSpeech - {" "} - (public domain),{" "} - - VCTK - {" "} - (CC BY 4.0). -

-
-

- Videos are generated by the amazing Wav2Lip system{" "} - - (paper) - - , by Prajwal{" "} - - (@prajwalkr14) - - , K R and Mukhopadhyay, Rudrabha and Namboodiri, Vinay P. and - Jawahar, C.V. -

-
-
-

Contact

-

- Reach out to "echelon" on{" "} - - Twitter - -  and Hacker News. Say hi. -

+

+ The technology to clone voices is already out in the open, and + the voices here are built by a community of contributors. + We're not the only website doing this, and plenty of people + are producing these same results on their own at home, + independent of our work. You can see thousands of examples on + YouTube and social media. +

+
+

+ Even if the United States chooses to ban this technology, + institutions in China, Japan, Canada, and other countries all + over the world are rapidly conducting and publishing research + on this topic. People everywhere have access to this + easy-to-use technology. State actors probably have even more + sophisiticated versions available. +

+
+

+ As an interesting point, most if not all of the voices + produced by this website are actually + Linda Johnson with a little bit layered on top. +

-

- The Storyteller Company (registered as Learning Machines, LLC) -

-
-
-

Built With

-
-
- models are written in pytorch -
-
- core server components are written in Rust -
- +
+

FakeYou was previously Vocodes

+

+ FakeYou.com was previously known as{" "} + https://vo.codes, but has been rebranded to + better reflect its purpose and direction. (Not many people + know what a vocoder is anyway, so it didn't make + sense to keep the name.) +

+
+
+

Thanks

+

+ Thanks to the following individuals (in no particular order) + for help with data gathering and annotation, Discord + moderation, ML advice, etc. +

+
+

+ Vegito1089, Shin, Ashurath, MakaveliGH, Blutarch Mann, Yahia, + Tim Squid, Seuneramet, Matt, Seth, CookiePPP,{" "} + + @r9y9 + + , BFlat, Raisin. +

+ +
+ +

+ The following papers, models, and resources were used: +
+
+ + Tacotron2 + {" "} + (BSD-3 license),{" "} + + glow-tts + {" "} + (MIT license), {/* MIT */} + + MelGAN + {" "} + (BSD-3 license), {/* BSD3 */} + + Multi-band MelGAN + {" "} + (paper),{" "} + + HiFi-GAN + {" "} + (paper),{" "} + + Wav2Lip + {" "} + (MIT license), {/* Non-commercial */} + + CMUDict + {" "} + (BSD-2 license),{" "} + + LJSpeech + {" "} + (public domain),{" "} + + VCTK + {" "} + (CC BY 4.0). +

+
+

+ Videos are generated by the amazing Wav2Lip system{" "} + + (paper) + + , by Prajwal{" "} + + (@prajwalkr14) + + , K R and Mukhopadhyay, Rudrabha and Namboodiri, Vinay P. and + Jawahar, C.V. +

+
+
+

Contact

+

+ Reach out to "echelon" on{" "} + + Twitter + +  and Hacker News. Say hi. +

+ +

+ The Storyteller Company (registered as Learning Machines, LLC) +

+
+
+

Built With

+
+
+ models are written in pytorch +
+
+ core server components are written in Rust +
+
+ the cluster scales with k8s +
-
- - + +
+
); } diff --git a/packages/fakeyou/src/v2/view/tts/tts_model_list/TtsModelListFc.tsx b/packages/fakeyou/src/v2/view/tts/tts_model_list/TtsModelListFc.tsx index dec3a701e8..24f2033f5d 100644 --- a/packages/fakeyou/src/v2/view/tts/tts_model_list/TtsModelListFc.tsx +++ b/packages/fakeyou/src/v2/view/tts/tts_model_list/TtsModelListFc.tsx @@ -36,6 +36,7 @@ import { t } from "i18next"; import { Trans } from "react-i18next"; import { TwitchTtsNotice } from "./notices/TwitchTtsNotice"; import { PleaseFollowNotice } from "./notices/PleaseFollowNotice"; +import { distance, delay, delay2, duration } from "../../../../data/animation"; import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { faTrash, @@ -43,8 +44,8 @@ import { faVolumeUp, } from "@fortawesome/free-solid-svg-icons"; import { USE_REFRESH } from "../../../../Refresh"; -import { motion } from "framer-motion"; -import { container, item, image, panel } from "../../../../data/animation"; + +const Fade = require("react-reveal/Fade"); export interface EnqueueJobResponsePayload { success: boolean; @@ -433,7 +434,7 @@ function TtsModelListFc(props: Props) { } return ( - +
{pleaseFollowNotice} {languageNotice} @@ -446,123 +447,123 @@ function TtsModelListFc(props: Props) {
- + + FakeYou Mascot +
-
- - Text to Speech - - - - Use FakeYou's deepfake tech to say stuff with your favorite - characters. - - -
+ +
+

+ Text to Speech +

+

+ + Use FakeYou's deepfake tech to say stuff with your favorite + characters. + +

+
+
- - {signUpButton} - - - - + +
+ {signUpButton} + + + +
+
- -
- -

- - Create TTS -

-
-
-
- +
+ +
+ +

+ + Create TTS +

+
+
+ + - + - {directViewLink} + {directViewLink} -
- -
+
+ +
- {maybeError} + {maybeError} -
- - -
- +
+ + +
+ +
-
- + +

- +
); } diff --git a/yarn.lock b/yarn.lock index fa573aac7b..ea916dd665 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1143,18 +1143,6 @@ dependencies: postcss-value-parser "^4.2.0" -"@emotion/is-prop-valid@^0.8.2": - version "0.8.8" - resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz#db28b1c4368a259b60a97311d6a952d4fd01ac1a" - integrity sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA== - dependencies: - "@emotion/memoize" "0.7.4" - -"@emotion/memoize@0.7.4": - version "0.7.4" - resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.7.4.tgz#19bf0f5af19149111c40d98bb0cf82119f5d9eeb" - integrity sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw== - "@eslint/eslintrc@^1.0.5": version "1.0.5" resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.0.5.tgz#33f1b838dbf1f923bfa517e008362b78ddbbf318" @@ -2140,59 +2128,6 @@ npmlog "^4.1.2" write-file-atomic "^3.0.3" -"@motionone/animation@^10.12.0": - version "10.13.1" - resolved "https://registry.yarnpkg.com/@motionone/animation/-/animation-10.13.1.tgz#ebacb50df4b7eb4957cf398c221ae10852f28520" - integrity sha512-dxQ+1wWxL6iFHDy1uv6hhcPjIdOg36eDT56jN4LI7Z5HZRyLpq8x1t7JFQclo/IEIb+6Bk4atmyinGFdXVECuA== - dependencies: - "@motionone/easing" "^10.13.1" - "@motionone/types" "^10.13.0" - "@motionone/utils" "^10.13.1" - tslib "^2.3.1" - -"@motionone/dom@10.12.0": - version "10.12.0" - resolved "https://registry.yarnpkg.com/@motionone/dom/-/dom-10.12.0.tgz#ae30827fd53219efca4e1150a5ff2165c28351ed" - integrity sha512-UdPTtLMAktHiqV0atOczNYyDd/d8Cf5fFsd1tua03PqTwwCe/6lwhLSQ8a7TbnQ5SN0gm44N1slBfj+ORIhrqw== - dependencies: - "@motionone/animation" "^10.12.0" - "@motionone/generators" "^10.12.0" - "@motionone/types" "^10.12.0" - "@motionone/utils" "^10.12.0" - hey-listen "^1.0.8" - tslib "^2.3.1" - -"@motionone/easing@^10.13.1": - version "10.13.1" - resolved "https://registry.yarnpkg.com/@motionone/easing/-/easing-10.13.1.tgz#7927b7fe96135989e37c2cda957e4101a4b85aa8" - integrity sha512-INEsInHHDHVgx0dp5qlXi1lMXBqYicgLMMSn3zfGzaIvcaEbI1Uz8BoyNV4BiclTupG7RYIh+T6BU83ZcEe74g== - dependencies: - "@motionone/utils" "^10.13.1" - tslib "^2.3.1" - -"@motionone/generators@^10.12.0": - version "10.13.1" - resolved "https://registry.yarnpkg.com/@motionone/generators/-/generators-10.13.1.tgz#d4989d887b864e0aefbbec63eed35ce298a73773" - integrity sha512-+HK5u2YcNJCckTTqfOLgSVcrWv2z1dVwrSZEMVJuAh0EnWEWGDJRvMBoPc0cFf/osbkA2Rq9bH2+vP0Ex/D8uw== - dependencies: - "@motionone/types" "^10.13.0" - "@motionone/utils" "^10.13.1" - tslib "^2.3.1" - -"@motionone/types@^10.12.0", "@motionone/types@^10.13.0": - version "10.13.0" - resolved "https://registry.yarnpkg.com/@motionone/types/-/types-10.13.0.tgz#b22c549931ebd88ed5528158b5d611dc9dbb3756" - integrity sha512-qegk4qg8U1N9ZwAJ187BG3TkZz1k9LP/pvNtCSlqdq/PMUDKlCFG4ZnjJ481P0IOH/vIw1OzIbKIuyg0A3rk9g== - -"@motionone/utils@^10.12.0", "@motionone/utils@^10.13.1": - version "10.13.1" - resolved "https://registry.yarnpkg.com/@motionone/utils/-/utils-10.13.1.tgz#14919dfcda36b54b184fff690bc0125d554f60cd" - integrity sha512-TjDPTIppaf3ofBXQv4ZzAketJgN0sclALXfZ6mfrkjJkOy83mLls9744F+6S+VKCpBmvbZcBY4PQfrfhAfeMtA== - dependencies: - "@motionone/types" "^10.13.0" - hey-listen "^1.0.8" - tslib "^2.3.1" - "@nodelib/fs.scandir@2.1.5": version "2.1.5" resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" @@ -6949,27 +6884,6 @@ fragment-cache@^0.2.1: dependencies: map-cache "^0.2.2" -framer-motion@^6.5.1: - version "6.5.1" - resolved "https://registry.yarnpkg.com/framer-motion/-/framer-motion-6.5.1.tgz#802448a16a6eb764124bf36d8cbdfa6dd6b931a7" - integrity sha512-o1BGqqposwi7cgDrtg0dNONhkmPsUFDaLcKXigzuTFC5x58mE8iyTazxSudFzmT6MEyJKfjjU8ItoMe3W+3fiw== - dependencies: - "@motionone/dom" "10.12.0" - framesync "6.0.1" - hey-listen "^1.0.8" - popmotion "11.0.3" - style-value-types "5.0.0" - tslib "^2.1.0" - optionalDependencies: - "@emotion/is-prop-valid" "^0.8.2" - -framesync@6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/framesync/-/framesync-6.0.1.tgz#5e32fc01f1c42b39c654c35b16440e07a25d6f20" - integrity sha512-fUY88kXvGiIItgNC7wcTOl0SNRCVXMKSWW2Yzfmn7EKNc+MpCzcz9DhdHcdjbrtN3c6R4H5dTY2jiCpPdysEjA== - dependencies: - tslib "^2.1.0" - fresh@0.5.2: version "0.5.2" resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" @@ -7464,11 +7378,6 @@ he@^1.2.0: resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== -hey-listen@^1.0.8: - version "1.0.8" - resolved "https://registry.yarnpkg.com/hey-listen/-/hey-listen-1.0.8.tgz#8e59561ff724908de1aa924ed6ecc84a56a9aa68" - integrity sha512-COpmrF2NOg4TBWUJ5UVyaCU2A88wEMkUPK4hNqyCkqHbxT92BbvfjoSozkAIIm6XhicGlJHhFdullInrdhwU8Q== - history@^4.9.0: version "4.10.1" resolved "https://registry.yarnpkg.com/history/-/history-4.10.1.tgz#33371a65e3a83b267434e2b3f3b1b4c58aad4cf3" @@ -10733,16 +10642,6 @@ pkg-up@^3.1.0: dependencies: find-up "^3.0.0" -popmotion@11.0.3: - version "11.0.3" - resolved "https://registry.yarnpkg.com/popmotion/-/popmotion-11.0.3.tgz#565c5f6590bbcddab7a33a074bb2ba97e24b0cc9" - integrity sha512-Y55FLdj3UxkR7Vl3s7Qr4e9m0onSnP8W7d/xQLsoJM40vs6UKHFdygs6SWryasTZYqugMjm3BepCF4CWXDiHgA== - dependencies: - framesync "6.0.1" - hey-listen "^1.0.8" - style-value-types "5.0.0" - tslib "^2.1.0" - portfinder@^1.0.28: version "1.0.28" resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.28.tgz#67c4622852bd5374dd1dd900f779f53462fac778" @@ -13108,14 +13007,6 @@ style-loader@^3.3.1: resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-3.3.1.tgz#057dfa6b3d4d7c7064462830f9113ed417d38575" integrity sha512-GPcQ+LDJbrcxHORTRes6Jy2sfvK2kS6hpSfI/fXhPt+spVzxF6LJ1dHLN9zIGmVaaP044YKaIatFaufENRiDoQ== -style-value-types@5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/style-value-types/-/style-value-types-5.0.0.tgz#76c35f0e579843d523187989da866729411fc8ad" - integrity sha512-08yq36Ikn4kx4YU6RD7jWEv27v4V+PUsOGa4n/as8Et3CuODMJQ00ENeAVXAeydX4Z2j1XHZF1K2sX4mGl18fA== - dependencies: - hey-listen "^1.0.8" - tslib "^2.1.0" - stylehacks@^5.0.2: version "5.0.2" resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-5.0.2.tgz#fa10e5181c6e8dc0bddb4a3fb372e9ac42bba2ad" @@ -13596,11 +13487,6 @@ tslib@^2.0.3: resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01" integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw== -tslib@^2.1.0, tslib@^2.3.1: - version "2.4.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3" - integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ== - tsparticles-engine@^2.0.6, tsparticles-engine@^2.1.3: version "2.1.3" resolved "https://registry.yarnpkg.com/tsparticles-engine/-/tsparticles-engine-2.1.3.tgz#d8922cf7811c40e5e9b87b18f9cc86043af8e900"