Skip to content
This repository was archived by the owner on Aug 13, 2026. It is now read-only.

Repository files navigation

MeFaMo - MediapipeFaceMocap

If you find this project useful and want to support me, feel free to buy me a coffee:

"Buy Me A Coffee"

MeFaMo calculates the facial keypoints and blend shapes of a user. Instead of using the built in IPhone blend shape calculation (like LiveLinkFace App does), this uses the Googles Mediapipe to calculate the facial key points of a face. Those key points will then be used to calculate several facial blend shapes (like eyebrows, blinking, smiling etc.). You only need a PC with a webcam and no external device to use it. It uses my PyLiveLinkFace library to send the blend shapes directly into the currently opened Unreal LiveLink Project (the Unreal Engine can also run on a separate PC).

alt text

It's not fully finished yet and missing a calibration feature to recalibrate all the values to several other faces, but it's a good start on how to calculate the blend shapes and create your own facial motion capture with Unreal.

Prerequisites

To setup the LiveLink plugin and system in Unreal, see the following tutorial: https://docs.unrealengine.com/4.27/en-US/AnimatingObjects/SkeletalMeshAnimation/FacialRecordingiPhone/

Requirements

MeFaMo needs the following python libraries:

  • numpy
  • cv2
  • pylivelinkface
  • mediapipe
  • transforms3d
  • open3d

Install

To install it, clone the git repo and install it with the setup.py file:

python setup.py install

Usage

If you just want to use it and don't have an active python environment or want to install other python packages, you can just the the .exe file of the release (unzip the mefamo_win64.zip zip file).

To use MeFaMo in python, just execute the mefamo_cli.py file in the examples folder:

python mefamo_cli.py

mefamo_cli gives you several options for image input, the default behavior is to open the Webcam (camera 0). But you can also specfiy the webcam you want to use (if you have more with one) with the number of the webcam (0, 1, 2 etc.). You can also specfiy a video or still image which will then be used by mefamo. To use this feauture, you need to pass the --input paramter (like --input D:\\Videos\\test.mp4 or `--input 1).

If you use the MeFaMo tool on another PC than your Unreal Engine, you can specify the ip of that machine (and also the port if you changed that in the LiveLink settings in unreal) with --ip 192.168.0.1 and --input 12345 for running the Unreal Engine on a machine with the IP 192.168.0.1 and the port 12345.

If you want to see the normalized 3d points of the detected face (projected on a 2d image), you can use the --show_3d parameter, which will open a new window.

The parameter'--hide_image` will hide the 2d webcam image with keypoint overlay.

There's also an experemental GUI (which doesn't look different to the default executable, but uses kivy for future work).

Build the exe yourself

In order to build an exe from all needed python libs and files, pyinstaller was used. It can be installed via pip:

pip install pyinstaller

After that, you can use pyinstaller and the included mefamo.spec file under examples to build the exe:

pyinstaller --onefile .\examples\mefamo.spec

This will take a bit time, you'll find the exe then in the mefamo\dist\ folder.

About

No description, website, or topics provided.

Resources

Stars

507 stars

Watchers

28 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
GitHub - JimWest/MeFaMo · GitHub
Skip to content
This repository was archived by the owner on Aug 13, 2026. It is now read-only.

Repository files navigation

MeFaMo - MediapipeFaceMocap

If you find this project useful and want to support me, feel free to buy me a coffee:

"Buy Me A Coffee"

MeFaMo calculates the facial keypoints and blend shapes of a user. Instead of using the built in IPhone blend shape calculation (like LiveLinkFace App does), this uses the Googles Mediapipe to calculate the facial key points of a face. Those key points will then be used to calculate several facial blend shapes (like eyebrows, blinking, smiling etc.). You only need a PC with a webcam and no external device to use it. It uses my PyLiveLinkFace library to send the blend shapes directly into the currently opened Unreal LiveLink Project (the Unreal Engine can also run on a separate PC).

alt text

It's not fully finished yet and missing a calibration feature to recalibrate all the values to several other faces, but it's a good start on how to calculate the blend shapes and create your own facial motion capture with Unreal.

Prerequisites

To setup the LiveLink plugin and system in Unreal, see the following tutorial: https://docs.unrealengine.com/4.27/en-US/AnimatingObjects/SkeletalMeshAnimation/FacialRecordingiPhone/

Requirements

MeFaMo needs the following python libraries:

  • numpy
  • cv2
  • pylivelinkface
  • mediapipe
  • transforms3d
  • open3d

Install

To install it, clone the git repo and install it with the setup.py file:

python setup.py install

Usage

If you just want to use it and don't have an active python environment or want to install other python packages, you can just the the .exe file of the release (unzip the mefamo_win64.zip zip file).

To use MeFaMo in python, just execute the mefamo_cli.py file in the examples folder:

python mefamo_cli.py

mefamo_cli gives you several options for image input, the default behavior is to open the Webcam (camera 0). But you can also specfiy the webcam you want to use (if you have more with one) with the number of the webcam (0, 1, 2 etc.). You can also specfiy a video or still image which will then be used by mefamo. To use this feauture, you need to pass the --input paramter (like --input D:\\Videos\\test.mp4 or `--input 1).

If you use the MeFaMo tool on another PC than your Unreal Engine, you can specify the ip of that machine (and also the port if you changed that in the LiveLink settings in unreal) with --ip 192.168.0.1 and --input 12345 for running the Unreal Engine on a machine with the IP 192.168.0.1 and the port 12345.

If you want to see the normalized 3d points of the detected face (projected on a 2d image), you can use the --show_3d parameter, which will open a new window.

The parameter'--hide_image` will hide the 2d webcam image with keypoint overlay.

There's also an experemental GUI (which doesn't look different to the default executable, but uses kivy for future work).

Build the exe yourself

In order to build an exe from all needed python libs and files, pyinstaller was used. It can be installed via pip:

pip install pyinstaller

After that, you can use pyinstaller and the included mefamo.spec file under examples to build the exe:

pyinstaller --onefile .\examples\mefamo.spec

This will take a bit time, you'll find the exe then in the mefamo\dist\ folder.

About

No description, website, or topics provided.

Resources

Stars

507 stars

Watchers

28 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - JimWest/MeFaMo · GitHub
Skip to content
This repository was archived by the owner on Aug 13, 2026. It is now read-only.

Repository files navigation

MeFaMo - MediapipeFaceMocap

If you find this project useful and want to support me, feel free to buy me a coffee:

"Buy Me A Coffee"

MeFaMo calculates the facial keypoints and blend shapes of a user. Instead of using the built in IPhone blend shape calculation (like LiveLinkFace App does), this uses the Googles Mediapipe to calculate the facial key points of a face. Those key points will then be used to calculate several facial blend shapes (like eyebrows, blinking, smiling etc.). You only need a PC with a webcam and no external device to use it. It uses my PyLiveLinkFace library to send the blend shapes directly into the currently opened Unreal LiveLink Project (the Unreal Engine can also run on a separate PC).

alt text

It's not fully finished yet and missing a calibration feature to recalibrate all the values to several other faces, but it's a good start on how to calculate the blend shapes and create your own facial motion capture with Unreal.

Prerequisites

To setup the LiveLink plugin and system in Unreal, see the following tutorial: https://docs.unrealengine.com/4.27/en-US/AnimatingObjects/SkeletalMeshAnimation/FacialRecordingiPhone/

Requirements

MeFaMo needs the following python libraries:

  • numpy
  • cv2
  • pylivelinkface
  • mediapipe
  • transforms3d
  • open3d

Install

To install it, clone the git repo and install it with the setup.py file:

python setup.py install

Usage

If you just want to use it and don't have an active python environment or want to install other python packages, you can just the the .exe file of the release (unzip the mefamo_win64.zip zip file).

To use MeFaMo in python, just execute the mefamo_cli.py file in the examples folder:

python mefamo_cli.py

mefamo_cli gives you several options for image input, the default behavior is to open the Webcam (camera 0). But you can also specfiy the webcam you want to use (if you have more with one) with the number of the webcam (0, 1, 2 etc.). You can also specfiy a video or still image which will then be used by mefamo. To use this feauture, you need to pass the --input paramter (like --input D:\\Videos\\test.mp4 or `--input 1).

If you use the MeFaMo tool on another PC than your Unreal Engine, you can specify the ip of that machine (and also the port if you changed that in the LiveLink settings in unreal) with --ip 192.168.0.1 and --input 12345 for running the Unreal Engine on a machine with the IP 192.168.0.1 and the port 12345.

If you want to see the normalized 3d points of the detected face (projected on a 2d image), you can use the --show_3d parameter, which will open a new window.

The parameter'--hide_image` will hide the 2d webcam image with keypoint overlay.

There's also an experemental GUI (which doesn't look different to the default executable, but uses kivy for future work).

Build the exe yourself

In order to build an exe from all needed python libs and files, pyinstaller was used. It can be installed via pip:

pip install pyinstaller

After that, you can use pyinstaller and the included mefamo.spec file under examples to build the exe:

pyinstaller --onefile .\examples\mefamo.spec

This will take a bit time, you'll find the exe then in the mefamo\dist\ folder.

About

No description, website, or topics provided.

Resources

Stars

507 stars

Watchers

28 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - JimWest/MeFaMo · GitHub
Skip to content
This repository was archived by the owner on Aug 13, 2026. It is now read-only.

Repository files navigation

MeFaMo - MediapipeFaceMocap

If you find this project useful and want to support me, feel free to buy me a coffee:

"Buy Me A Coffee"

MeFaMo calculates the facial keypoints and blend shapes of a user. Instead of using the built in IPhone blend shape calculation (like LiveLinkFace App does), this uses the Googles Mediapipe to calculate the facial key points of a face. Those key points will then be used to calculate several facial blend shapes (like eyebrows, blinking, smiling etc.). You only need a PC with a webcam and no external device to use it. It uses my PyLiveLinkFace library to send the blend shapes directly into the currently opened Unreal LiveLink Project (the Unreal Engine can also run on a separate PC).

alt text

It's not fully finished yet and missing a calibration feature to recalibrate all the values to several other faces, but it's a good start on how to calculate the blend shapes and create your own facial motion capture with Unreal.

Prerequisites

To setup the LiveLink plugin and system in Unreal, see the following tutorial: https://docs.unrealengine.com/4.27/en-US/AnimatingObjects/SkeletalMeshAnimation/FacialRecordingiPhone/

Requirements

MeFaMo needs the following python libraries:

  • numpy
  • cv2
  • pylivelinkface
  • mediapipe
  • transforms3d
  • open3d

Install

To install it, clone the git repo and install it with the setup.py file:

python setup.py install

Usage

If you just want to use it and don't have an active python environment or want to install other python packages, you can just the the .exe file of the release (unzip the mefamo_win64.zip zip file).

To use MeFaMo in python, just execute the mefamo_cli.py file in the examples folder:

python mefamo_cli.py

mefamo_cli gives you several options for image input, the default behavior is to open the Webcam (camera 0). But you can also specfiy the webcam you want to use (if you have more with one) with the number of the webcam (0, 1, 2 etc.). You can also specfiy a video or still image which will then be used by mefamo. To use this feauture, you need to pass the --input paramter (like --input D:\\Videos\\test.mp4 or `--input 1).

If you use the MeFaMo tool on another PC than your Unreal Engine, you can specify the ip of that machine (and also the port if you changed that in the LiveLink settings in unreal) with --ip 192.168.0.1 and --input 12345 for running the Unreal Engine on a machine with the IP 192.168.0.1 and the port 12345.

If you want to see the normalized 3d points of the detected face (projected on a 2d image), you can use the --show_3d parameter, which will open a new window.

The parameter'--hide_image` will hide the 2d webcam image with keypoint overlay.

There's also an experemental GUI (which doesn't look different to the default executable, but uses kivy for future work).

Build the exe yourself

In order to build an exe from all needed python libs and files, pyinstaller was used. It can be installed via pip:

pip install pyinstaller

After that, you can use pyinstaller and the included mefamo.spec file under examples to build the exe:

pyinstaller --onefile .\examples\mefamo.spec

This will take a bit time, you'll find the exe then in the mefamo\dist\ folder.

About

No description, website, or topics provided.

Resources

Stars

507 stars

Watchers

28 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' GitHub - JimWest/MeFaMo · GitHub
Skip to content
This repository was archived by the owner on Aug 13, 2026. It is now read-only.

Repository files navigation

MeFaMo - MediapipeFaceMocap

If you find this project useful and want to support me, feel free to buy me a coffee:

"Buy Me A Coffee"

MeFaMo calculates the facial keypoints and blend shapes of a user. Instead of using the built in IPhone blend shape calculation (like LiveLinkFace App does), this uses the Googles Mediapipe to calculate the facial key points of a face. Those key points will then be used to calculate several facial blend shapes (like eyebrows, blinking, smiling etc.). You only need a PC with a webcam and no external device to use it. It uses my PyLiveLinkFace library to send the blend shapes directly into the currently opened Unreal LiveLink Project (the Unreal Engine can also run on a separate PC).

alt text

It's not fully finished yet and missing a calibration feature to recalibrate all the values to several other faces, but it's a good start on how to calculate the blend shapes and create your own facial motion capture with Unreal.

Prerequisites

To setup the LiveLink plugin and system in Unreal, see the following tutorial: https://docs.unrealengine.com/4.27/en-US/AnimatingObjects/SkeletalMeshAnimation/FacialRecordingiPhone/

Requirements

MeFaMo needs the following python libraries:

  • numpy
  • cv2
  • pylivelinkface
  • mediapipe
  • transforms3d
  • open3d

Install

To install it, clone the git repo and install it with the setup.py file:

python setup.py install

Usage

If you just want to use it and don't have an active python environment or want to install other python packages, you can just the the .exe file of the release (unzip the mefamo_win64.zip zip file).

To use MeFaMo in python, just execute the mefamo_cli.py file in the examples folder:

python mefamo_cli.py

mefamo_cli gives you several options for image input, the default behavior is to open the Webcam (camera 0). But you can also specfiy the webcam you want to use (if you have more with one) with the number of the webcam (0, 1, 2 etc.). You can also specfiy a video or still image which will then be used by mefamo. To use this feauture, you need to pass the --input paramter (like --input D:\\Videos\\test.mp4 or `--input 1).

If you use the MeFaMo tool on another PC than your Unreal Engine, you can specify the ip of that machine (and also the port if you changed that in the LiveLink settings in unreal) with --ip 192.168.0.1 and --input 12345 for running the Unreal Engine on a machine with the IP 192.168.0.1 and the port 12345.

If you want to see the normalized 3d points of the detected face (projected on a 2d image), you can use the --show_3d parameter, which will open a new window.

The parameter'--hide_image` will hide the 2d webcam image with keypoint overlay.

There's also an experemental GUI (which doesn't look different to the default executable, but uses kivy for future work).

Build the exe yourself

In order to build an exe from all needed python libs and files, pyinstaller was used. It can be installed via pip:

pip install pyinstaller

After that, you can use pyinstaller and the included mefamo.spec file under examples to build the exe:

pyinstaller --onefile .\examples\mefamo.spec

This will take a bit time, you'll find the exe then in the mefamo\dist\ folder.

About

No description, website, or topics provided.

Resources

Stars

507 stars

Watchers

28 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - JimWest/MeFaMo · GitHub
Skip to content
This repository was archived by the owner on Aug 13, 2026. It is now read-only.

Repository files navigation

MeFaMo - MediapipeFaceMocap

If you find this project useful and want to support me, feel free to buy me a coffee:

"Buy Me A Coffee"

MeFaMo calculates the facial keypoints and blend shapes of a user. Instead of using the built in IPhone blend shape calculation (like LiveLinkFace App does), this uses the Googles Mediapipe to calculate the facial key points of a face. Those key points will then be used to calculate several facial blend shapes (like eyebrows, blinking, smiling etc.). You only need a PC with a webcam and no external device to use it. It uses my PyLiveLinkFace library to send the blend shapes directly into the currently opened Unreal LiveLink Project (the Unreal Engine can also run on a separate PC).

alt text

It's not fully finished yet and missing a calibration feature to recalibrate all the values to several other faces, but it's a good start on how to calculate the blend shapes and create your own facial motion capture with Unreal.

Prerequisites

To setup the LiveLink plugin and system in Unreal, see the following tutorial: https://docs.unrealengine.com/4.27/en-US/AnimatingObjects/SkeletalMeshAnimation/FacialRecordingiPhone/

Requirements

MeFaMo needs the following python libraries:

  • numpy
  • cv2
  • pylivelinkface
  • mediapipe
  • transforms3d
  • open3d

Install

To install it, clone the git repo and install it with the setup.py file:

python setup.py install

Usage

If you just want to use it and don't have an active python environment or want to install other python packages, you can just the the .exe file of the release (unzip the mefamo_win64.zip zip file).

To use MeFaMo in python, just execute the mefamo_cli.py file in the examples folder:

python mefamo_cli.py

mefamo_cli gives you several options for image input, the default behavior is to open the Webcam (camera 0). But you can also specfiy the webcam you want to use (if you have more with one) with the number of the webcam (0, 1, 2 etc.). You can also specfiy a video or still image which will then be used by mefamo. To use this feauture, you need to pass the --input paramter (like --input D:\\Videos\\test.mp4 or `--input 1).

If you use the MeFaMo tool on another PC than your Unreal Engine, you can specify the ip of that machine (and also the port if you changed that in the LiveLink settings in unreal) with --ip 192.168.0.1 and --input 12345 for running the Unreal Engine on a machine with the IP 192.168.0.1 and the port 12345.

If you want to see the normalized 3d points of the detected face (projected on a 2d image), you can use the --show_3d parameter, which will open a new window.

The parameter'--hide_image` will hide the 2d webcam image with keypoint overlay.

There's also an experemental GUI (which doesn't look different to the default executable, but uses kivy for future work).

Build the exe yourself

In order to build an exe from all needed python libs and files, pyinstaller was used. It can be installed via pip:

pip install pyinstaller

After that, you can use pyinstaller and the included mefamo.spec file under examples to build the exe:

pyinstaller --onefile .\examples\mefamo.spec

This will take a bit time, you'll find the exe then in the mefamo\dist\ folder.

About

No description, website, or topics provided.

Resources

Stars

507 stars

Watchers

28 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); })(); GitHub - JimWest/MeFaMo · GitHub
Skip to content
This repository was archived by the owner on Aug 13, 2026. It is now read-only.

Repository files navigation

MeFaMo - MediapipeFaceMocap

If you find this project useful and want to support me, feel free to buy me a coffee:

"Buy Me A Coffee"

MeFaMo calculates the facial keypoints and blend shapes of a user. Instead of using the built in IPhone blend shape calculation (like LiveLinkFace App does), this uses the Googles Mediapipe to calculate the facial key points of a face. Those key points will then be used to calculate several facial blend shapes (like eyebrows, blinking, smiling etc.). You only need a PC with a webcam and no external device to use it. It uses my PyLiveLinkFace library to send the blend shapes directly into the currently opened Unreal LiveLink Project (the Unreal Engine can also run on a separate PC).

alt text

It's not fully finished yet and missing a calibration feature to recalibrate all the values to several other faces, but it's a good start on how to calculate the blend shapes and create your own facial motion capture with Unreal.

Prerequisites

To setup the LiveLink plugin and system in Unreal, see the following tutorial: https://docs.unrealengine.com/4.27/en-US/AnimatingObjects/SkeletalMeshAnimation/FacialRecordingiPhone/

Requirements

MeFaMo needs the following python libraries:

  • numpy
  • cv2
  • pylivelinkface
  • mediapipe
  • transforms3d
  • open3d

Install

To install it, clone the git repo and install it with the setup.py file:

python setup.py install

Usage

If you just want to use it and don't have an active python environment or want to install other python packages, you can just the the .exe file of the release (unzip the mefamo_win64.zip zip file).

To use MeFaMo in python, just execute the mefamo_cli.py file in the examples folder:

python mefamo_cli.py

mefamo_cli gives you several options for image input, the default behavior is to open the Webcam (camera 0). But you can also specfiy the webcam you want to use (if you have more with one) with the number of the webcam (0, 1, 2 etc.). You can also specfiy a video or still image which will then be used by mefamo. To use this feauture, you need to pass the --input paramter (like --input D:\\Videos\\test.mp4 or `--input 1).

If you use the MeFaMo tool on another PC than your Unreal Engine, you can specify the ip of that machine (and also the port if you changed that in the LiveLink settings in unreal) with --ip 192.168.0.1 and --input 12345 for running the Unreal Engine on a machine with the IP 192.168.0.1 and the port 12345.

If you want to see the normalized 3d points of the detected face (projected on a 2d image), you can use the --show_3d parameter, which will open a new window.

The parameter'--hide_image` will hide the 2d webcam image with keypoint overlay.

There's also an experemental GUI (which doesn't look different to the default executable, but uses kivy for future work).

Build the exe yourself

In order to build an exe from all needed python libs and files, pyinstaller was used. It can be installed via pip:

pip install pyinstaller

After that, you can use pyinstaller and the included mefamo.spec file under examples to build the exe:

pyinstaller --onefile .\examples\mefamo.spec

This will take a bit time, you'll find the exe then in the mefamo\dist\ folder.

About

No description, website, or topics provided.

Resources

Stars

507 stars

Watchers

28 watching

Forks

Releases

Packages

Used by

Contributors

Languages