nyuuzyou/wikis huggingface dataset:
Puppetry Setup

Category:Puppetry
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 // (dmy).
= Viewers =
First things first, we'll need to download a Puppetry-enabled viewer. Below lists currently-known Puppetry-compatible viewers.
*Linden Lab Official Viewer (Second Life Project Puppetry branch)
*Firestorm Test viewer (self-compile)
= Dependencies =
Before we continue, we'll need to download and install a couple of additional things that the Puppetry viewer relies on.
* Microsoft Visual Studio (Full install, and VS C++ build tools)
* cmake
* Python (Official runtime, available on website)
(Optional)
* 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.
*Linden Lab Official Guide
*Chaser Zaks' guide
*Old LL Official Guide
= 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 ===
* Blender
* llBase (Pypi)
=== 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:
* [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)]
* [secondlife://util.aditi.lindenlab.com/secondlife/Marionette/128/128/27 Marionette (Sandbox)]
Puppetry User Group

This is a new (September 2022) User Group to discuss the Puppetry technology recently added to Second Life.
Puppetry is described in a blog post and is an experimental feature that allows hardware and other software to connect to Second Life and provide animation data for an avatar. This might be from a script, external hardware, motion capture and such.
The Puppetry User Group will meet every 2 weeks on the aditi beta grid. 
Thursday	13:00-14:00	SLT on [secondlife://Aditi/secondlife/Castelet/128/130/40 Aditi grid, Castelet region]
PurgeInventoryDescendents

==Message Layout==
{
	PurgeInventoryDescendents Low NotTrusted Zerocoded
	{
		AgentData		Single
		{	AgentID		LLUUID	}
		{	SessionID	LLUUID	}
	}
	{
		InventoryData	Single
		{	FolderID	LLUUID	}
	}
}
==Usage and Notes==
Category:Messages
Push

=== Feature Design Document ===
(none)
=== Functional Spec ===
* You can push physical object by walking or flying your avatar into them.
* You can push much harder if you are in running mode. World menu > Alway Run or ctrl-R toggles run.
* You can push objects by dragging physical objects that collide.
=== Test scripts ===
* Make a physical object and walk into it. It should move.
* Make a physical object drag it into another physical object or your own avatar. The target object or avatar should move.
* Bump into another avatar with yours. If you bump someone too hard, they will get a report of it in Help menu > "Bumps, Pushes & Hits..."
=== Discussion for future improvements ===
(none)
=== Relationship to other features ===
 List of features that need to be tested when this feature changes, and why. 
Physics - collisions are handled by the physics engine.
=== User Guides ===
(none)
PyOGP Client Library File System

When using buildout, the PyOGP development sandbox file system has the following structure:
* bin - contains all executable which might be provided by the library eggs. Also contains the buildout script, needed for updating packages. Also contains some sample scripts. 
* bootstrap.py - only used for the buildout bootstrapping process.
* buildout.cfg - the buildout configuration file.
* develop-eggs - contains links to eggs which are in development right now (usually links to src/)
* eggs - contains the eggs (python packages) which are installed locally in this buildout
* parts - used by buildout for downloading and installing packages
* src - contains the actual source code of the library, test harness and so on.
== The src directory ==
The src/ directory contains all the packages we are developing right now. These packages are also called Python Eggs.
Each package usually has a namespace like 'pyogp.lib.base'. This can later be used like this:
 from pyogp.lib.base import *
Other packages can claim part of the same namespace like 'pyogp.lib.somethingelse' without being in the same directory as it would be the case usually in Python. This is a feature of Python Eggs and explained here.
Because of this the packages are named like their namespace. The contents of these packages is also following this path structure and 'pyogp.lib.base' for instance looks like this:
 pyogp/
 pyogp/lib
 pyogp/lib/base
The actual code is to be found in 'pyogp/lib/base'. All the other directories should not be touched unless you know what you are doing.
The current packages in source are:
 pyogp.lib.base
 pyogp.lib.client
 pyogp.apps
== More info on packages ==
Python eggs in src/ are usually subversion externals, meaning that they are just referenced. You can see the externals used in src/EXTERNALS.txt. This gives us the flexibility to use the source checkout of those eggs in different buildouts with different configurations and additionally also to use packages from other repositories if needed.
The top directory of each egg (pyogp.lib.base in our example) also contains a file called 'setup.py' which is a configuration file for that egg. You can read about these files in the Distutils and setuptool documentation.
Category: Pyogp_Client_Lib
Category:Pyogp_Kitchen_Sink
PyOGP Inworld Meetings

We meet regularly to discuss PyOGP, its status, and future work. This meeting occurs at Enus' office hours.
== Related Chat Logs (older) ==
Pyogp discussion transcripts
* April: AW Groupies 29 April
* May: AW Groupies 20 May · Which LInden Office Hours 22 May
* June: Zero Linden Office Hours 19 June AW Groupies 24 June Zero Linden Office Hours 24 June
* July 
** Enus office hours 18 25
** Pyogp Daily Meeting: 14 15 16 21 16 23 28 30
* August
** Enus office hours 1 8 15 29
** Pyogp Daily Meeting 06 13 18 20
* September 
** Enus office hours 12
** Pyogp Daily Meeting 8
* October
** Enus office hours 10 17 31
* December
** Enus office hours 5 19
2009
* March 27
Category: Pyogp
In-world meetings
Pyogp/Design Decisions

==ZCA==
=== There is no ZCA in pyogp ===
==Buildout==
It is being considered whether we want to do away with buildout. Perhaps some day we shall, but it works, and there is no urgency.
===Arguments===
#Setting up path – we can use buildout to setup our path automatically for development. Without buildout, we would have to set the path ourselves, which would be difficult because of the dependencies and the relation to the system we are on.
#Setting up the environment – can use buildout to automatically fetch the dependencies we rely upon (downloading eggs, getting svn projects, etc)
Category:Pyogp
Pyogp/OGP Beta Support

Pyogp is an open source client library and test harness code base being developed jointly by AWG members and Linden Lab. It is a young effort yet, but tests ought to be able to be run against an OGP enabled grid in the next few days (some are already running!). Login tests from a client's perspective are partially complete, as are protocol specific test cases. The client library fully supports authenticating on the agent domain hosted on aditi, and more, at this time. We look forward to being able to put pyogp to good use in helping test the OGP Beta in the upcoming weeks.
----
At a high level, pyogp.lib.base can handle login just fine. Locklainn is working on enabling UDP and circuit code handling to enable (among other things) teleport and hence teleport tests. Tao Takashi continues with great initiative and support of Linden Lab's goals of having pyogp help support the testing of the OGP Beta and the OGP effort overall. Enus is just doing what he can to get things ready asap, and Infinity is working on tests per User:Infinity_Linden/OGP_Test_Cases. Sai has an updated version of this document at User:Saijanai_Kuhn/OGP_Test_Cases.
An initial set of tests are available at Pyogp/Client_Lib/testing#Interop_tests. Some more effort in cleaning up and adding more content would be useful.
----
To learn more about the details of pyogp, see:
:* Pyogp is the project home on the wiki
:* Pyogp/Client_Lib/testing, especially the sections pertaining to interop.
:* Pyogp/Client_Lib/The_Development_Sandbox describes how to build the application
:* Lots more goodies (curious about ZCA?) can be found at Pyogp/Links
:* Want to play? Pyogp#How_To_Contribute
Category: Pyogp
Pyogp/Roadmap

== Meta Issues ==
# Update and maintain the published docs at:
## pWiki Pyogp Tech Overview
# we need to spend time improving unit test coverage very soon
# we need to use pylint to help clean up pyogp
# we need to come up with pyogp specific coding guidelines (Done - PyOGP_Coding_Guidelines)
## wiki page indicating style, naming conventions, docstring standards, and examples of adding code (in the lib context)
== Functional Changes ==
# PyOGP Application support 
## adding application level events throughout
## Raise an application event when disconnected
# Messaging changes
## add a MessagingManager, refactor UDPDispatcher and EventQueueClient to purely parse/pack data, and handle messaging concerns in this new class
### incorporate message.xml handling
## remove packets.py and refactor accordingly (Done)
## Merge UPDPacket and Message (Done)
## merge packet_handler and event_queue_handler (Done)
## fix http://jira.secondlife.com/browse/PYO-62 (kotler) (Done)
# update the event handler (Done)
## create a generic event message class with name and payload (Done)
## add convenience methods (e.g. to_llsd(), to_dict())
# Functional Additions
## teleport
##* teleport to region/x/y/z (Done 2009-06-15)
##* teleport to landmark (Done 2009-09-01)
##* receive teleport request
##* accept teleport request
##* accept god teleport request
##* teleport status (Done 2009-06-15)
## L$
##* Send money (Done 2009-06-17)
##* money balance updates (Done 2009-06-17)
## Actions
##* Sit on ground (Done 2009-07-07)
##* Sit on target
##* Stand (Done 2009-07-07)
##* Gestures
## Friends
##* List of friends (Done 2009-06-15)
##* offline/online notifications (Done 2009-06-15)
##* send/accept friend invite
##* de-friending
## Parcels
##* parcel update events (media)
## Voice
##* Voice URI (Can be done using caps; should we bother with it outside a sample?) (Sample added 2009-10-13)
##* Voice credentials (Sample added 2009-10-13)
## Object Tracking
##* Avatars (name cache)
## Appearance management (e.g. avoid having to bake locally)
##* Initialization of appearance manager and required messages (Done)
##* Requesting cached Texture ids(Done)
##* VisualParams classes (Done)
##* AgentSetAppearance (Done)
##* Fetch own avatar visualParams from wearables (Done)
##* Cases where sim does not have cached TextureEntry(ObjectUpdate) or TextureIDs (AgentCachedTextureResponse) 
##* Attachments
##* Animations
## a thousand other things
=== Apps to develop using pyogp ===
# build a regression test suite using pyogp
# create a viewer proxy using pyogp
# create something akin to libomv's TestClient
Pyogp Client Lib/Login Test Script

=Eventlet httpc version=
import os.path
if os.path.exists("../setup_path.py"):
	execfile("../setup_path.py")
import time
from indra.base import llsd
from eventlet import api, httpc, util
util.wrap_socket_with_coroutine_socket()
loginparams={'password' : 'pass', # md5-password '$1$' + md5hash
 'lastname' : 'last',
 'firstname' : 'first',
}
llsdloginparams = llsd.format_xml(loginparams)
headers = {"content-type" : "application/llsd+xml"}
try:
 response = httpc.post('https://login1.aditi.lindenlab.com/cgi-bin/auth.cgi', llsdloginparams, headers)
 loginurl = response.read()
except httpc.Found, e:
 loginurl = e.location()
print loginurl
data = {'caps': {'place_avatar' : True}}
data = llsd.format_xml(data)
headers = {"content-type" : "application/llsd+xml"}
response = httpc.post(loginurl, data, headers)
request = response.read()
print request
=Urllib2 version=
import os.path
if os.path.exists("../setup_path.py"):
	execfile("../setup_path.py")
import time
from indra.base import llsd
import urllib2
from eventlet import util
util.wrap_socket_with_coroutine_socket()
loginparams={'password' : 'pass', # md5-password '$1$' + md5hash
 'lastname' : 'last',
 'firstname' : 'first',
}
llsdloginparams = llsd.format_xml(loginparams)
headers = {"content-type" : "application/llsd+xml"}
request = urllib2.Request('https://login1.aditi.lindenlab.com/cgi-bin/auth.cgi', llsdloginparams, headers)
# todo: handle non 302 cases! there's plenty, and lots are test cases
# per the protocol, a successful authentication returns a 302 with the seedcap embedded in the headers 
class RedirectHandler(urllib2.HTTPRedirectHandler):
 def http_error_302(self, req, fp, code, msg, headers):
 #parse the redirect, grabbing the seed cap url from the headers
 if True:
 print ''
 print 'contents of response = '
 print headers
 print msg
 print ''
 
 # per the protocol, the seedcap is in the 'location' in headers
 return headers['location']
# post to auth.cgi, ignoring the built in redirect
opener = urllib2.build_opener(RedirectHandler())
try:
 seed_cap = opener.open(request)
except urllib2.HTTPError, e:
 print 'HTTP Error: ', e.code
except urllib2.URLError, e:
 print 'URL Error: ', e.reason
print seed_cap
data = {'caps': {'place_avatar' : True, 'event_queue' : True}}
data = llsd.format_xml(data)
headers = {"content-type" : "application/llsd+xml"}
request = urllib2.Request(seed_cap, data, headers)
response = urllib2.urlopen(request)
request = response.read()
print request
Q&A

1) Corporate fire walls, (possible external hosting of SL to get round this)
>> See Knowledgebase article: https://support.secondlife.com/ics/support/KBAnswer.asp?questionID=4355
>> Also, consider joining the mailing list slcorporateuse.com: https://lists.secondlife.com/cgi-bin/mailman/listinfo/slcorporateuse and posting questions to it.
2) Security of data. We will host confidential meetings in SL. But all the
presentation material and files will be uploaded onto your servers in order
to
do this. How secure are you? How can I convince my corporate IT Police that
this is good enough?
>> We encrypt all transaction to and from the client. 
3) How can I get a staff of thousands into SL with avatars all ready to go?
>> The Registration API lets you create and register as many accounts as you want. For more information: https://wiki.secondlife.com/wiki/RegAPI
4) With respect I think your Welcome Island was better before it's recent
change. The Welcome Island at Dell is now the best intro to SL, but it
currently crashes.
>> The previous orientationisland stations are in your Inventory in SL (Click Inventory. Click on the triangle in front of Library, then Objects. About 6 down, you'll see "Orientation stations w/ notecards". Inside are the current Orientation Island stations.) We plan to release the current OI contents soon for anyone to be able to customize and reuse to create their own orientation experience. Many businesses have already created their own orientation experience in Second Life. Tied with the Registration API, this enables you to create a custom, branded experience from your website into your Second Life properties.
5) Instability and regular crashing. When trying to organize meetings for
management and large groups of people the constant plague of crashing does
make SL appear
as it is not really up to the job we require from it. How can we improve
this? Better hardware? Our own central hosted version of SL? Better web
bandwidth?
>> We've focused a lot of work on improving stablity over the last 6 months. There are two parts to this issue: stability of the Second Life grid itself, which is much better than last fall, with only regular maintenance updates and occasional grid restarts. The other part is stability of the Second Life client. The most common problems are graphics-card related. See: http://secondlife.com/corporate/sysreqs.php. Whenever possible, turning on system crash reports (in your preferences) helps give us information to improve client stability.
6) Do you have any special resources or contacts to help companies set up
facilities in SL?
>>Linden Lab provides support though the Concierge program for businesses that are buying and owning land and through the Developer Program for businesses that are creating their own content. In general, we recommend that businesses consider contracting with one of the many Developers who have experience in Second Life and can provide support, marketing, planning, and ongoing event, logistics and community support for your presence in Second Life: http://secondlife.com/developers/directory.php.
Q&A Sessions: Can't Attend? Post Your Question Here!

Q&A Sessions
The next Q&A Session is Support Portal Changes with Maurice Linden. This Q&A is scheduled for Monday, March 24, 2008 at 12 Noon SL Time.
If you are unable to attend please post your question here for inclusion in the Q&A session. You can read responses on the VTeam Blog when the Q&A transcript is posted. All questions will be pulled for inclusion 1 hour prior to meeting time. Questions added after that will not make it into the session.
==Q&A Questions==
i have created an account in second life but i cannot actively participate in anything. when i try to go for shopping then they ask me to create an account. what shall i do to enter the secondlife world using my avatar?
QA Portal

== Welcome to the Quality Assurance Portal==
Welcome to the Wiki Pages for the Second Life Quality Assurance Team, A place for us to share the latest news and information about Beta Releases, Information on how we handle Bug Reports and how you can now help us in that process with the Public Issue_tracker
And now we have our test scripts located back on a public wiki you're more than welcome to improve and update them, or write new ones of your own to help us better test Second Life.
{| width="100%"
|-
|valign="top"|
== Quality Assurance ==
* Bug Reporting 101
* Preview Grid
* Preview Grid Common Questions
* Beta Server Office Hours
* What Is Our Antivirus Protection Policy
* Bug triage
* Fixing_bugs
* Security_issues
* Debug Help
* Linguistic QA with the Second Life Viewer
== Release Details ==
* Known Issues
* Beta Release Notes
* Beta Common Questions
== Test Plan Formats ==
To make our Beta cycle more effective, it is hoped that those who are interested will take the time to update and improve old scripts, and take the initiative to create some tests of their own that may be integrated into the test suites.
* Quality Assurance Testing Format
* Quality Assurance Example Script
The section on the right contains our public test scripts, these are always in need of being updated and improved upon, as features are changed or added.
|valign="top" width="50%"|
== Test Plans ==
The Quality Assurance department at Linden Lab has opened up a large portion of our tests for resident review and resident updates.
If you're interested in helping with our Beta Releases, and making Second Life even better, go ahead and give it a try!
That's right, you may now help guide our testing.
* Building and Editing Tests
* Core Functionality Tests The Invisible underpinnings of Second Life
* Economy Tests
* Groups Tests
* In Progress Tests that need to be written/updated.
* Land Tests Estates, Regions and Parcels.
* Movement and Navigation Tests
* Performance Tests Framerate and Network performance.
* Permissions Tests
* Pre-Release Tests Tests that must be run before every Release.
* Scripting Tests LSL and all.
* User Interface Tests
* User to User Interaction Tests
Category:Portals Category:QA Portal Category:Quality Assurance Category:Bug Tracker
__NOTOC__
QtWebKit

QtWebKit is an HTML rendering library, which incorporates WebKit into Nokia's Qt. Linden Lab is working with Torch Mobile to integrate WebKit into Second Life.
* QtWebkitWin32BuildInstructions Windows build instructions.
* WebKit_worklist Todo list.
== Getting the source ==
The source code for this port is available via Git:
* Browse the source
* Changelog
*# Get Git - clients available for Windows, Mac and Linux.
*# Run the following commands:
*#; git clone git://code.staikos.net/llmozlib
*#; cd llmozlib
*#; git checkout -b qtwebkit origin/qtwebkit
That should give you a couple of the very latest source code.
Category:Open Source Portal
Qt Webkit OSX Build Instructions

1) Get Qt and set environment variables.
Download Qt from trolltech.com
Extract it somewhere such as
$HOME/dev/qt-4.5/
Then set the environment variable QTDIR to point to that location.
 cd $HOME/dev/qt-4.5/
 export QTDIR=`pwd`
 export PATH=$PATH:$QTDIR/bin
2) Get llmozlib and checkout the qtwebkit branch
 cd $HOME/dev
 # note if you hasve write access and want to make changes, 
 # use git+ssh://git@code.staikos.net/srv/git/llmozlib
 git clone git://code.staikos.net/llmozlib
 git checkout -b qtwebkit origin/qtwebkit
3) Apply locally maintained Qt patches
 cd $QTDIR
 
 # the patch files are numbered in the order they should be applied, so this should do the right thing
 for patchfile in /path/to/llmozlib/llmozlib2/qt_patches/[0-9]* /path/to/llmozlib/llmozlib2/qt_patches/qtwebkit-[0-9]* ; do
 	echo applying "$patchfile"
 	patch -p1 <"$patchfile"
 done
4) Compile Qt
 cd $QTDIR
 ./configure -opensource -no-framework -fast -no-qt3support -prefix $PWD -static -release -no-xmlpatterns -no-phonon -universal -sdk /Developer/SDKs/MacOSX10.4u.sdk/
 make
If you have a multi-core machine, you can speed the make up substantially by using the '-j' argument. On a 4-core machine, I use 'make -j4'.
For some reason, this doesn't seem to build libJavaScriptCore.a. I also had to do the following:
 cd $QTDIR/src/3rdparty/webkit/JavaScriptCore
 make
5) build llmozlib2.dylib with XCode:
 cd $HOME/dev/llmozlib/llmozlib2/
Create a symlink to QTDIR in the same directory as llmozlib2.xcodeproj (this allows the xcode project to find it easily):
 ln -s $QTDIR QTDIR
build the "llwebkitlib" configuration of the "llmozlib2" target
(note especially: the default configuration is "Release". Be sure
to specify "llwebkitlib" as the configuration):
 xcodebuild -project llmozlib2.xcodeproj -target llmozlib2 -configuration llwebkitlib
6) build ubrowser with xcode:
Get the GLUI Framework (the one tested to work is at http://lukecyca.com/wp-content/uploads/2008/12/GLUI-Framework-2.35.tgz)
run "update-mac-symbols.sh"
 ./update-mac-symbols.sh
build the "Release" configuration of the "llmozlib2" target:
 xcodebuild -project llmozlib2.xcodeproj -target llmozlib2 -configuration Release
now build ubrowser
 cd tests/ubrowser
 xcodebuild -project ubrowser.xcodeproj -target ubrowser -configuration Release
 open build/Release/ubrowser.app