{"id":6894,"date":"2022-09-05T00:35:38","date_gmt":"2022-09-05T05:35:38","guid":{"rendered":"https:\/\/blog.zoha-islands.com\/?p=6894"},"modified":"2022-09-05T00:35:38","modified_gmt":"2022-09-05T05:35:38","slug":"linden-lab-unveils-puppetry-project","status":"publish","type":"post","link":"https:\/\/zoha-islands.com\/blog\/linden-lab-unveils-puppetry-project\/","title":{"rendered":"Linden Lab Unveils Puppetry Project"},"content":{"rendered":"<h3 class=\"entry-header\">to Animate Avatars With Webcams &amp; Mocap Equipment in Real Time<\/h3>\n<div class=\"entry-content\">\n<div class=\"entry-body\">\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone  wp-image-6905\" src=\"https:\/\/zoha-islands.com\/blog\/wp-content\/uploads\/2022\/08\/pupet-1.jpg\" alt=\"\" width=\"650\" height=\"377\" \/><\/p>\n<p>Impressive unveiling by Linden Lab just now &#8212; real time puppetry for Second Life avatars:<\/p>\n<blockquote>\n<p>We have been working on this feature for some time and now we are ready to open it up to the Second Life community for further development and to find out what amazing things our creators will do with this new technology&#8230; The codebase is alpha level and does contain its share of rough edges that need refinement, however the project is functionally complete and it is possible for the scriptors and creators of Second Life to start to try it out.<\/p>\n<\/blockquote>\n<p>This is not just a lightweight &#8220;wave into your webcam and your avatar waves too&#8221; technology (which has existed for many years) but is meant to integrate much more devices &#8212; and the <em>whole<\/em> avatar:<\/p>\n<\/div>\n<br \/>\n<div class=\"entry-more\">\n<blockquote>\n<p>We are excited about Puppetry\u2019s potential to change the way we interact inside Second Life. For example, using a webcam to track your face and hands could allow your avatar to mimic your face animations and finger movement, or more natural positioning of the avatar\u2019s hands and feet against in-world objects might also be possible. \u00a0Alternative hardware could be used to feed information into Second Life to animate your avatar &#8211; a game controller or mocap equipment. \u00a0There&#8217;s a lot to explore and try, and we invite the Second Life community to be involved in exploring the direction of this feature.<\/p>\n<\/blockquote>\n<p>What&#8217;s even more exciting is that Second Life avatars recently got a Bento skeleton update, which makes them extremely articulate. You can see that in recent SL pics featured by Cajsa, where an avatar&#8217;s fingers down to individual joints are highly expressive.<\/p>\n<p>Read about the announcement here,<\/p>\n<div>\n<div class=\"ipsFlex ipsFlex-ai:center ipsFlex-fw:wrap ipsGap:4\">\n<div class=\"ipsFlex-flex:11\">\n<h1 class=\"ipsType_pageTitle ipsType_largeTitle ipsContained_container\"><span class=\"ipsType_break ipsContained\"> Introducing Second Life Puppetry <\/span><\/h1>\n<\/div>\n<\/div>\n<\/div>\n<hr class=\"ipsHr\" \/>\n<div class=\"ipsPageHeader__meta ipsFlex ipsFlex-jc:between ipsFlex-ai:center ipsFlex-fw:wrap ipsGap:3\">\n<div class=\"ipsPhotoPanel ipsPhotoPanel_tiny ipsFlex-flex:11\">\n<div>\n<p class=\"ipsType_reset ipsType_blendLinks\">Entry posted by Linden Lab <time title=\"08\/30\/2022 06:40  PM\" datetime=\"2022-08-30T18:40:00Z\" data-short=\"17 hr\"><br \/><\/time><\/p>\n<\/div>\n<\/div>\n<div class=\"ipsFlex-flex:01 ipsResponsive_hidePhone\">\n<div class=\"ipsFlex ipsFlex-ai:center ipsFlex-jc:center ipsGap:3 ipsGap_row:0\">\u00a0<\/div>\n<\/div>\n<\/div>\n<div data-followapp=\"blog\" data-followarea=\"entry\" data-followid=\"11527\" data-controller=\"core.front.core.followButton\">\u00a0<\/div>\n<div class=\"ipsType_richText ipsType_break ipsContained\">\n<div data-controller=\"core.front.core.lightboxedImages\">\n<p><img decoding=\"async\" loading=\"lazy\" class=\"ipsImage ipsImage_thumbnailed alignnone\" src=\"https:\/\/content.invisioncic.com\/Mseclife\/monthly_2022_08\/image1.thumb.png.572e5659f636fd96f5b66cc671e5d61e.png\" alt=\"image1.png\" width=\"1000\" height=\"530\" data-fileid=\"178750\" data-ratio=\"53.00\" data-unique=\"gzyhdp9yk\" \/><br \/><em>Photo by Alexa Linden<\/em><\/p>\n<h2>The idea<\/h2>\n<p>Wouldn\u2019t it be cool if you could animate your avatar in real time? \u00a0What if you could wave your arm and your avatar could mimic your motions? \u00a0Or imagine if your avatar could reach out and touch something inworld or perform animations? \u00a0Linden Lab is exploring these possibilities with an experimental feature called \u201cPuppetry.\u201d<\/p>\n<p>We have been working on this feature for some time and now we are ready to open it up to the Second Life community for further development and to find out what amazing things our creators will do with this new technology.<\/p>\n<p>The codebase is alpha level and does contain its share of rough edges that need refinement, however the project is functionally complete and it is possible for the scriptors and creators of Second Life to start to try it out.<\/p>\n<p>See the section below \u201cHow to participate\u201d to learn how to use Puppetry yourself.<\/p>\n<h2>Take a Look<\/h2>\n<p>We have some basic things working with a webcam and Second Life\u00a0but there&#8217;s more to do before it&#8217;s as animated as we want.<\/p>\n<h2>Puppetry Technology<\/h2>\n<p>Puppetry accepts target transforms for avatar skeleton bones and uses <a href=\"https:\/\/en.wikipedia.org\/wiki\/Inverse_kinematics\" target=\"_blank\" rel=\"nofollow noopener\">inverse kinematics<\/a> (IK) to place the connecting bones in order for the specified bones to reach their targets. \u00a0For example the position and orientation \u201cgoal\u201d of the hand could be specified and IK would be used to compute how the forearm, elbow, upper arm, and shoulder should be positioned to achieve it. The IK calculation can be tricky to get right and is a work in progress.\u00a0<\/p>\n<p>The target data is supplied by a plug-in that runs as a separate process and communicates with the viewer through the <a href=\"https:\/\/bitbucket.org\/lindenlab\/leap\/src\/main\/\" target=\"_blank\" rel=\"external nofollow noopener\">LLSD Event API Plug-in<\/a> (LEAP) system. \u00a0This is a lesser known functionality of the Viewer which has been around for a while but has, until now, only been used for automated test and update purposes.<\/p>\n<p>The Viewer transmits the Puppetry data to the region server, which broadcasts it to other Puppetry capable Viewers nearby. \u00a0The receiving Viewers use the same IK calculations to animate avatars in view.<\/p>\n<p>For more details about the Puppetry technology, take a look at the Knowledge Base article <a href=\"https:\/\/wiki.secondlife.com\/wiki\/How_Puppetry_Works\" target=\"_blank\" rel=\"nofollow noopener\">Puppetry : How it Works<\/a><\/p>\n<h2>Uses and Possibilities<\/h2>\n<p>We are excited about Puppetry\u2019s potential to change the way we interact inside Second Life. \u00a0For example, using a webcam to track your face and hands could allow your avatar to mimic your face animations and finger movement, or more natural positioning of the avatar\u2019s hands and feet against in-world objects might also be possible. \u00a0Alternative hardware could be used to feed information into Second Life to animate your avatar &#8211; a game controller or mocap equipment. \u00a0There&#8217;s a lot to explore and try, and we invite the Second Life community to be involved in exploring the direction of this feature.<\/p>\n<h2>How to participate<\/h2>\n<p>The Puppetry feature requires a project viewer and can only be used on supporting Regions. \u00a0Download the project Viewer at the <a href=\"https:\/\/releasenotes.secondlife.com\/viewer.html?_gl=1*1svze9f*_ga*MTI1MTAyNjcyMS4xNTQ0NTMyNzI5*_ga_T7G7P6DCEC*MTY2MDMzNjQzNy4xMjYuMS4xNjYwMzM2NDg3LjEw\" target=\"_blank\" rel=\"nofollow noopener\">Alternate Viewers<\/a> page. \u00a0Regions with Puppetry support exist on the \u00a0<a href=\"https:\/\/wiki.secondlife.com\/wiki\/Preview_Grid\" target=\"_blank\" rel=\"nofollow noopener\">Second Life Preview Grid<\/a> and are named: Bunraku, Marionette, and Castelet.<\/p>\n<p>When using the Puppetry Viewer in one of those regions, if someone there is sending Puppetry data you should see their avatar animated accordingly. \u00a0To control your own avatar with Puppetry it&#8217;s a bit more work to set up the system. \u00a0You need: a working Python3 installation, a plug-in script to run, and any Python modules it requires. \u00a0If you are interested and adventurous: please give it a try. \u00a0 More detailed instructions can be found on the <a href=\"https:\/\/wiki.secondlife.com\/wiki\/Puppetry_Development\" target=\"_blank\" rel=\"nofollow noopener\">Puppetry Development<\/a>\u00a0page.<\/p>\n<h2>What&#8217;s next<\/h2>\n<p>We look forward to seeing what our creators do with the new Puppetry technology. Compared to other features we have introduced, it\u2019s quite experimental and rough around the edges, so please be patient! \u00a0We will keep refining it, but before we go further we wanted to get our residents\u2019 thoughts.<\/p>\n<p>We will be hosting an open discussion inworld on <strong>Thursday, Sept 8 1:00PM SLT<\/strong> at the <strong>Bunraku, Marionette,<\/strong> and <strong>Castelet<\/strong> regions on the <a href=\"https:\/\/wiki.secondlife.com\/wiki\/Preview_Grid\" target=\"_blank\" rel=\"external nofollow noopener\">Preview Grid<\/a>. \u00a0 \u00a0We&#8217;re also happy to talk about this at the upcoming <a href=\"https:\/\/wiki.secondlife.com\/wiki\/Linden_Lab_Official:User_Groups\" target=\"_blank\" rel=\"external nofollow noopener\">Server User Group or Content Creator meetings<\/a>.\u00a0 Come by, let us know what you think, and hear about our future plans!<\/p>\n<\/div>\n<\/div>\n<p>and compare\/contrast with <a href=\"https:\/\/nwn.blogs.com\/nwn\/2022\/04\/vrchat-avatar-dynamics-tutorial-youtube.html\" target=\"_blank\" rel=\"nofollow noopener\">VRChat&#8217;s recently launched Avatar Dynamics project<\/a>.<\/p>\n<p>My immediate guess is that most Second Life users won&#8217;t use avatar puppetry for most occasions &#8212; after all, gesticulating into your webcam or with a mocap suit quickly gets exhausting &#8212; but it will still be a huge breakthrough for live performers at music\/dance\/theater shows, along with conference presenters. And yes, for that other use case you thought of first.<\/p>\n<p>Have a great week from all of us at Zoha Islands\/Fruit Islands<\/p>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>to Animate Avatars With Webcams &amp; Mocap Equipment in Real Time Impressive unveiling by Linden Lab just now &#8212; real time puppetry for Second Life avatars: We have been working on this feature for some time and now we are ready to open it up to the Second Life community for further development and to &hellip; <a href=\"https:\/\/zoha-islands.com\/blog\/linden-lab-unveils-puppetry-project\/\" class=\"more-link\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":6907,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[2,3,4,5,6],"tags":[],"_links":{"self":[{"href":"https:\/\/zoha-islands.com\/blog\/wp-json\/wp\/v2\/posts\/6894"}],"collection":[{"href":"https:\/\/zoha-islands.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/zoha-islands.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/zoha-islands.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/zoha-islands.com\/blog\/wp-json\/wp\/v2\/comments?post=6894"}],"version-history":[{"count":0,"href":"https:\/\/zoha-islands.com\/blog\/wp-json\/wp\/v2\/posts\/6894\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/zoha-islands.com\/blog\/wp-json\/wp\/v2\/media\/6907"}],"wp:attachment":[{"href":"https:\/\/zoha-islands.com\/blog\/wp-json\/wp\/v2\/media?parent=6894"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/zoha-islands.com\/blog\/wp-json\/wp\/v2\/categories?post=6894"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/zoha-islands.com\/blog\/wp-json\/wp\/v2\/tags?post=6894"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}