Difference between revisions of "Puppetry Setup"

From Second Life Wiki
Jump to navigation Jump to search
(Create puppetry setup page, to guide users on how to correctly set up their system for the Puppetry viewer.)
 
(Update links to reflect move to Github)
 
(4 intermediate revisions by the same user not shown)
Line 1: Line 1:
[[Category:Puppetry]]
[[Category:Puppetry]]
{{TOC}}
{{KBwarning| The Puppetry system is still in a pre-release state, and as such the instructions will change. Be careful that the guide you follow is up-to-date with the current Puppetry viewer.]}}
{{KBwarning| The Puppetry system is still in a pre-release state, and as such the instructions will change. Be careful that the guide you follow is up-to-date with the current Puppetry viewer.]}}


As it stands right now, the puppetry viewer isn't that easy to set up for the average user. This page will hopefully help people find resources to allow them to get the puppetry system running on their computer.
As it stands right now, the puppetry viewer isn't that easy to set up for the average user. This page will hopefully help people find resources to allow them to get the puppetry system running on their computer.
'''This guide should be followed in a linear fashion for the easiest setup experience - also see [[#Guides|Guides]] for more info'''.


<b>This article valid as of {{REVISIONDAY}}/{{REVISIONMONTH1}}/{{REVISIONYEAR}}</b> (dmy).
<b>This article valid as of {{REVISIONDAY}}/{{REVISIONMONTH1}}/{{REVISIONYEAR}}</b> (dmy).


= Viewers =
= Viewers =
First things first, we'll need to download a Puppetry-enabled viewer. Below lists currently-known Puppetry-compatible viewers.
*<b>[https://releasenotes.secondlife.com/viewer.html Linden Lab Official Viewer (Second Life Project Puppetry branch)]</b>
*<b>[https://releasenotes.secondlife.com/viewer.html Linden Lab Official Viewer (Second Life Project Puppetry branch)]</b>
*[https://github.com/Kadah/phoenix-firestorm_puppertry_exp Firestorm Test viewer (self-compile)]
*[https://github.com/Kadah/phoenix-firestorm_puppertry_exp Firestorm Test viewer (self-compile)]


= Guides =  
= Dependencies =
*<b>[https://bitbucket.org/lindenlab/leap/src/main/puppetry/README.md Linden Lab Official Guide]</b>
Before we continue, we'll need to download and install a couple of additional things that the Puppetry viewer relies on.
*[https://gist.github.com/FelixWolf/364e8f598717537eabdd790d2369181a Chaser Zaks' guide]


= Dependencies =
{{KBcaution|These dependencies assume that you are running Windows on your machine. Dependencies will be different if you use MacOS or Linux.}}
{{KBcaution|These dependencies assume that you are running Windows on your machine. Dependencies will be different if you use MacOS or Linux.}}
{{KBwarning|Python versions above 3.10 are unsupported at this time due to dependencies (Mediapipe)}}


* Microsoft Visual Studio ([https://visualstudio.microsoft.com/downloads/#visual-studio-community-2022 Full install], and [https://visualstudio.microsoft.com/downloads/#build-tools-for-visual-studio-2022 VS C++ build tools])
* Microsoft Visual Studio ([https://visualstudio.microsoft.com/downloads/#visual-studio-community-2022 Full install], and [https://visualstudio.microsoft.com/downloads/#build-tools-for-visual-studio-2022 VS C++ build tools])
Line 24: Line 31:
(Optional)
(Optional)
* [https://git-scm.com/download/win GIT runtime]
* [https://git-scm.com/download/win GIT runtime]
= Guides =
Okay! Now we're getting somewhere. The following guides will instruct you on how to build the LEAP framework that the Puppetry viewer relies on.
{{KBtip|If you don't understand one guide, try another!}}
*<b>[https://github.com/secondlife/leap/blob/main/puppetry/README.md Linden Lab Official Guide]</b>
*[https://gist.github.com/FelixWolf/364e8f598717537eabdd790d2369181a Chaser Zaks' guide]
*<sup>[https://bitbucket.org/lindenlab/leap/src/main/puppetry/README.md Old LL Official Guide]</sup>
= Plugins =
Great! So we've got the LEAP framework installed. Now we need a plugin to interface with LEAP to control Puppetry!
== Webcam Puppetry ==
'''Author:''' Linden Lab
'''Description:''' Use your webcam to translate your movements in real life into Second Life!
'''LEAP Plugin:''' webcam_puppetry.py
'''Link:''' [https://github.com/secondlife/leap/tree/main/puppetry/webcam LEAP Repo.]
=== Requirements ===
* An OpenCV-compatible webcam. ''(Most are, but there are some exceptions)''
=== Caveats ===
* OBS Virtual Camera never initializes. (This is an [https://github.com/opencv/opencv/issues/19746 OpenCV bug]).
* Slower webcams may fail to initialize in time, causing the plugin to close with a failure. (This is a bug - can be worked around by changing <code>Line 51</code> in <code>camera.py</code> from <code>self.device = cv2.VideoCapture(self.capture_id)</code> to <code>self.device = cv2.VideoCapture(self.capture_id, cv2.CAP_DSHOW)</code> )
* The default framerate of Webcam Puppetry is a maximum of '''10 fps'''. This can be changed by modifying <code>Line 104</code> in <code>webcam_puppetry.py</code> from <code>UPDATE_PERIOD = 0.1</code> to <code>UPDATE_PERIOD = 0.04</code>. This will change the Puppetry framerate to be a maximum of '''25 fps'''.
== Blender SL Puppetry ==
'''Author:''' Chaser Zaks
'''Description:''' Animate your avatar by manipulating a Blender armature!
'''LEAP Plugin:''' puppetstream.py
'''Link:''' [https://github.com/FelixWolf/blender-sl-puppetry Github Repo.]
=== Requirements ===
* [https://www.blender.org/ Blender]
* [https://github.com/secondlife/python-llbase llBase] [https://pypi.org/project/llbase/ (Pypi)]
=== Caveats ===
* None known.


= Puppetry-enabled locations =
= Puppetry-enabled locations =
Line 29: Line 81:


Currently, only a few regions on the [[Preview Grid|Beta grid (Aditi)]] have puppetry enabled:
Currently, only a few regions on the [[Preview Grid|Beta grid (Aditi)]] have puppetry enabled:
*[secondlife://util.aditi.lindenlab.com/secondlife/Castelet/128/128/27 Castelet (Meeting Space)] - User Group region
*[[File:Parcel_lght_G.png]] [secondlife://util.aditi.lindenlab.com/secondlife/Castelet/125/65/39 Castelet (Meeting Space)] - [[Puppetry User Group]] region
*[secondlife://util.aditi.lindenlab.com/secondlife/Bunraku/128/128/27 Bunraku (Sandbox)]
*[[File:Parcel_lght_G.png]] [secondlife://util.aditi.lindenlab.com/secondlife/Bunraku/128/128/27 Bunraku (Sandbox)]
*[secondlife://util.aditi.lindenlab.com/secondlife/Marionette/128/128/27 Marionette (Sandbox)]
*[[File:Parcel_lght_G.png]] [secondlife://util.aditi.lindenlab.com/secondlife/Marionette/128/128/27 Marionette (Sandbox)]

Latest revision as of 15:34, 22 December 2022


KBwarning.png Warning: The Puppetry system is still in a pre-release state, and as such the instructions will change. Be careful that the guide you follow is up-to-date with the current Puppetry viewer.]

As it stands right now, the puppetry viewer isn't that easy to set up for the average user. This page will hopefully help people find resources to allow them to get the puppetry system running on their computer.

This guide should be followed in a linear fashion for the easiest setup experience - also see Guides for more info.

This article valid as of 22/12/2022 (dmy).

Viewers

First things first, we'll need to download a Puppetry-enabled viewer. Below lists currently-known Puppetry-compatible viewers.

Dependencies

Before we continue, we'll need to download and install a couple of additional things that the Puppetry viewer relies on.

KBcaution.png Important: These dependencies assume that you are running Windows on your machine. Dependencies will be different if you use MacOS or Linux.
KBwarning.png Warning: Python versions above 3.10 are unsupported at this time due to dependencies (Mediapipe)
KBwarning.png Warning: While a Python runtime is available from the Microsoft Store, this version is incompatible with the Puppetry viewer. Only use the version from the Python website (linked above).

(Optional)


Guides

Okay! Now we're getting somewhere. The following guides will instruct you on how to build the LEAP framework that the Puppetry viewer relies on.

KBtip2.png Tip: If you don't understand one guide, try another!

Plugins

Great! So we've got the LEAP framework installed. Now we need a plugin to interface with LEAP to control Puppetry!

Webcam Puppetry

Author: Linden Lab

Description: Use your webcam to translate your movements in real life into Second Life!

LEAP Plugin: webcam_puppetry.py

Link: LEAP Repo.

Requirements

  • An OpenCV-compatible webcam. (Most are, but there are some exceptions)

Caveats

  • OBS Virtual Camera never initializes. (This is an OpenCV bug).
  • Slower webcams may fail to initialize in time, causing the plugin to close with a failure. (This is a bug - can be worked around by changing Line 51 in camera.py from self.device = cv2.VideoCapture(self.capture_id) to self.device = cv2.VideoCapture(self.capture_id, cv2.CAP_DSHOW) )
  • The default framerate of Webcam Puppetry is a maximum of 10 fps. This can be changed by modifying Line 104 in webcam_puppetry.py from UPDATE_PERIOD = 0.1 to UPDATE_PERIOD = 0.04. This will change the Puppetry framerate to be a maximum of 25 fps.

Blender SL Puppetry

Author: Chaser Zaks

Description: Animate your avatar by manipulating a Blender armature!

LEAP Plugin: puppetstream.py

Link: Github Repo.

Requirements

Caveats

  • None known.

Puppetry-enabled locations

Once you're set up, you'll want somewhere to test!

Currently, only a few regions on the Beta grid (Aditi) have puppetry enabled: