Cool VL Viewer forum

View unanswered posts | View active topics It is currently 2023-02-09 07:01:28

Reply to topic  [ 4 posts ] 
New v1.30.1 experimental branch 
Author Message

Joined: 2009-03-17 18:42:51
Posts: 5135
Reply with quote
Once again, the Cool VL Viewer is the first TPV to provide you with support for SL's latest feature... This time, the new experimental v1.30.1.0 release published today implements the all new "Puppetry" support.

Note that it was a rather big backport, because many of the classes used by the puppetry feature were not used (and thus not implemented) by the Cool VL Viewer. Of course, I also fixed and improved a few things, especially with regard to Linux support.

As far as the Puppetry features themselves are concerned, you will find a new "Puppetry" sub-menu in the "Advanced" -> "Character" menu, and here are the changes I made, when compared with LL's implementation:
  • I added a kill switch ("Use puppetry when available" menu entry which toggles the "PuppetryAllowed" debug setting), so that you may toggle Puppetry support in real time.
  • For Linux, the puppetry plugin launch feature supports non-executable script plugins (my code uses the shebang line in the script to launch the proper interpreter for that script). Since LL's provided test script files are not executable, this feature saves you from using 'chmod +x' on those scripts...
  • I added Lua, and batch file puppetry scripts support for Windows (i.e. lua.exe would be used when launching a *.lua plugin script, and *.bat and *.cmd files would cause cmd.exe to be launched to interpret them).
  • The camera number setting has been moved away from the Puppetry menu and instead uses a "PuppetryCamera" persistent debug setting.
  • A "PuppetryCameraOption" debug setting was added, so that you may change (or disable entirely, when that setting is set to an empty string) the option used in the command line of the puppetry plugin script, instead of having it hard-coded to "--camera <camera_number>". My code also allows to use an option in the form "--option_name=<camera_number>" (simply leave the "=" sign at the end of the option name set in "PuppetryCameraOption").
  • There is no support for a viewer command line "--leap" option like in LL's viewer, but there is a new "PuppetryLastCommand" debug setting which stores the last (successful) plugin command line and you may relaunch the latter via the "Launch previous plug-in" menu entry.
  • Unlike what happens in LL's viewer, the "Use server echo on self" option in the menu is remembered via a new "PuppetryUseServerEcho" debug setting (with LL's viewer, server echo is always disabled at launch of a plugin).
  • Due to a last minute change by LL for the UDP data packing of puppetry joint parameters, I implemented a dual support for the old and new packing methods, so that the viewer stays compatible with LL's current puppetry viewer and the upcoming ones. If you do not see other users' puppetry animations playing, it means their viewer is using a different packing method: simply toggle the "Use old UDP data packing" menu entry accordingly...
  • EDIT: Added in v1.30.1.1: AgentPuppetryStart() and AgentPuppetryStop() Lua functions. See the Lua user manual for full details.

Note that by lack of a camera, I did not test puppetry with one, but all the provided example Python scripts do work just fine with the Cool VL Viewer. To test them yourself, install LL's plugins this way (here, for Linux):
git clone
cd leap
pip-3 install -e .[puppetry,opencv]
(note that I use 'pip-3' here because my Linux distro got both Python 2 and 3 installed; it could be named 'pip3' or just 'pip' in your distro).

You may then launch, from the viewer, any of the example plugins available in the leap/puppetry/ sub-directories.

See LL's documentation for more information and hints.

2022-09-17 10:13:48
Profile WWW

Joined: 2011-10-07 10:39:20
Posts: 171
Reply with quote

For Windows the Python 3 pip install needs CMake in the PATH and a working Compiler to build some of the dependencies (dlib), as far as i could tell.
Its probably a good idea to install the python modules in a venv ( to not mess up the system python install.
And pip can already directly use git links anyway, so no need to clone & cd first.

PS C:\Users\Me> $env:PATH += ";C:\Program Files\CMake\bin"
PS C:\Users\Me> C:\Python310\python.exe -m venv c:\devel\puppetry
PS C:\Users\Me> C:\devel\puppetry\Scripts\Activate.ps1
(puppetry) PS C:\Users\Me> python -m pip install -U wheel pip
Successfully installed pip-22.2.2 wheel-0.37.1
(puppetry) PS C:\Users\Me> python -m pip install -e git+[opencv,puppetry]
Obtaining leap[opencv,puppetry] from git+[opencv,puppetry]
  Cloning to c:\devel\puppetry\src\leap
  Running develop for leap
Successfully installed Click-8.1.3 Pillow-9.2.0 PyGLM-2.5.7 absl-py-1.2.0 attrs-22.1.0 certifi-2022.9.14 charset-normalizer-2.1.1 colorama-0.4.5 comtypes-1.1.14 contourpy-1.0.5 cycler-0.11.0 dlib-19.24.0 dnspython-2.2.1 eventlet-0.33.1 face-recognition-1.3.0 face-recognition-models-0.3.0 fonttools-4.37.2 greenlet-1.1.3 idna-3.4 kiwisolver-1.4.4 leap-0.0.1 llbase-1.2.11 matplotlib-3.6.0 mediapipe-0.8.11 numpy-1.23.3 opencv-contrib-python- opencv-python- packaging-21.3 protobuf-3.20.2 pygrabber-0.1 pyparsing-3.0.9 python-dateutil-2.8.2 requests-2.28.1 six-1.16.0 urllib3-1.26.12

I guess i need to get my camera working to give it a try.

2022-09-17 17:55:12

Joined: 2009-03-17 18:42:51
Posts: 5135
Reply with quote
kathrine wrote:
For Windows the Python 3 pip install needs CMake in the PATH and a working Compiler to build some of the dependencies (dlib), as far as i could tell.
Yes, I was describing the procedure for a Linux distro, which normally have all these (cmake, gcc, python3, pip3, etc) installed by default... :P

Mac users would also likely need proper MacPorts' of cmake, python3, etc, as well as XCode to compile dlib...

2022-09-17 21:49:49
Profile WWW

Joined: 2009-03-17 18:42:51
Posts: 5135
Reply with quote
In today's v1.30.1.2 release, libepoxy is being used to replace the old OpenGL wrapping method.

Please, do report here any rendering discrepancy or compatibility issue when compared with v1.30.0 releases.

Also, since there si for now no ARM64 build of libepoxy, v1.30.1 cannot any more be compiled for ARM64 Linux (*). This will change as soon as an ARM64 build of libepoxy is made available.

(*) In fact, it could still be built, but only by using system libraries (via the "--usesystemlibs" option of and on the condition libepoxy (and preferably the latest, v1.5.10 version) is installed on your system; such a build would likely only work on your own ARM64 system however.

2022-10-01 09:40:08
Profile WWW
Display posts from previous:  Sort by  
Reply to topic   [ 4 posts ] 

Who is online

Users browsing this forum: No registered users and 3 guests

You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.