nyuuzyou/wikis huggingface dataset:
Case Study - Cracked glass using materials

This case study by Crazy Mole explores the creation of a cracked glass texture using normal and specular maps (materials) for Second Life. The end result of this case study can be purchased for free from the Second Life Marketplace at: https://marketplace.secondlife.com/p/Cracked-glass-case-study-by-Crazy-Mole/5417411
== Making the diffuse glass texture ==
Using your favorite drawing program, create a texture with the dirt and details you like for the glass and add an alpha layer to it with a gray scale of your choice. Do this by applying a gray setting of, for example, 126,126,126 in the RGB color setting. Fine tuning can eventually be done in Second life after the texture is uploaded.
== Making a Normal map ==
In the same program, make a gray-scaled layer that represents the damage done to the glass (or any other effects you like). Shading represents depth; white is the maximum height and black is the maximum depth. Make a normal map from that image. In Photoshop, you can use the NVidia normal map plug-in.
== Making the Specular map ==
In the same way as the normal map, create a grayscale specular map where white represents the glossiest parts and black represents matte (not shiny) parts.
== Export the Materials ==
Save the specular, normal and diffuse maps, as .png files and upload them to Second Life.
== Apply the materials ==
In Second Life, import a mesh or create a primitive. Place the materials textures in their proper slots on the Texture tab of the Build Tools window. Set the alpha channel in the texture slot to alpha blending and use the transparency option to set the transparency to your preferred glass-like level. In the shininess slot, use Glossiness to adjust the glossiness effect when under direct lighting using the Specular map, and use Environment to set the reflectiveness of the entire object to the environment around it. Play with the settings to get different effects; the numbers range from 0 to 255 for both.
Case Study - Katana using normal and specular maps

Category:Materials
This case study explores how June Dion used normal and specular maps to add significant detail to a mesh object imported from LightWave. The completed product is available for purchase on the Second Life Marketplace at https://marketplace.secondlife.com/p/BR-Materials-Katana/4922401.
== Modeling and Template Texture ==
	First, create a mesh object in LightWave Modeler. For this study, we're using a basic fantasy-style katana. During the same step, we've also created a UV map for the object. You will need 2 versions of the model; one with triangle polygons and one with quad polygons. Triangle polygons are necessary for baking textures, and will also help to keep clean shading in Second Life.
== Baking Textures ==
To bake textures, import the model to LightWave Layout, then select the model on Camera > Surface Baking Camera. Render the UV and save the image. Use this image as a base for your normal and specular maps as well as the object's texture.	
== Creating the Normal Map ==
	Now we're going to use bump displacement to add the appearance of detail to the model. Make a grayscale texture to represent the bump details that will overlay the existing textures; in this case, we're using a net pattern on the hilt of the sword. Apply SubPatch on the quad polygon model, then export to LightWave Layout.
In the Surface Editor, apply the grayscale bump map as a Bump texture. Go to Object Properties > Deform and turn on Bump Disp to display the deformation of the model. You can adjust the Distance parameter to refine the shape. This display looks rough, but you can use Geometry > Render Subpatch for render output.
== Exporting the Normal Map ==
To export the normal map, you need a plugin called DP Kit. Download and install it if you do not already have it.
In the Surface Editor, open the Node Editor, then select DP Kit > Tools > Normal Cast. On the settings panel for Normal Cast, select the UV and Projection Distance, then connect to Diffuse Shading. Export the normal map with Camera > Surface Baking Camera.	
== Creating and Exporting the Specular Map ==
	To create a specular map, create another grayscale texture and use a paint program to design your pattern. Use white for shiny areas and black for matte areas. For this example, most of the model will be shiny.
== Exporting to COLLADA and importing to Second Life ==
Export the triangle-polygon model to COLLADA format using a COLLADA exporter plugin. Import the model and your textures to Second Life, then edit the model and use the Textures tab of the Build Tools to apply your base texture, normal map, and specular map to the finished object
Case Study - Sequined bear using materials

Category:Materials
== Required materials ==
* A materials-enabled Second Life viewer (3.6.0 or later, in beta as of 2013-06-04), and a graphics card capable of using the Advanced Lighting Model in Graphics Preferences
* A free basic graphics tool, such as Microsoft Paint
* A mesh or prim based model with modify rights
* Get the completed bear from the Marketplace to see how it looks inworld!
== Step 1: Generate a specular map using MS Paint ==
Thanks to Runitai Linden for his help with the normal and specular map creation!
# Start MS Paint
# Use a black background and white foreground
# Create a pattern of slightly differently sized and shaped circles/ovals in white
# Save the specular map texture
== Step 2: Generate a normal map using MS Paint ==
DISCLAIMER: Using MS Paint to make normal maps may be somewhat silly, but can be fun if you just want to play around. To make accurate normal maps, use tools such as Blender, xNormal, Photoshop, or 3D Studio.
# Save your specular map with a new name for your normal map (so you don't overwrite the specular map).
# Set the background color to (128,128, 255)
# Find a normal map to use the color picker on, such as the sample normal map on Wikipedia.
# Select one of the colors on the hemisphere normal map, and do color fill on several of the white ovals, spread out over the map.
# Select another color and do the same for more ovals
# Keep selecting colors until all dots have been filled in with a color
# Save your normal map
== Step 3: Apply textures to model ==
# Start the materials-enabled viewer
# Upload (Build->Upload-Image) your normal and specular maps (and any diffuse maps you'd like to use)
# Rez your model
# Edit and select the face(s) you'd like to apply sequins to
# On the texture tab, choose Materials->Bumpiness (normal) and click on the texture to choose your normal map in the texture picker
# On the texture tab, choose Materials->Shininess (specular) and click on the texture to choose your specular map in the texture picker
# For the normal and specular map, make sure you have the same scale. Play around with these values to see what works for you. (Rotation and offset should be the same as well, but aren't very relevant to this example.)
# Select the diffuse texture you'd like to use. In the case of my bear, I used the chainmail and fishnet textures from the library, plus a plain black color for the eyes and nose. Be creative!
# Check out your final product--adding a nearby movable light will make the sequins pop.
CatAnimationOverride

==Animation Overrides and Poseballs==
Name 	Creator 	Description
AO Overriding Pose Ball	Jesse Barnett 	No more turning your AO off and on when you sit down
Be happy 	Emmas Seetan 	Basic smile attachment script, makes your avatar smile.
*DS*_Single_AO-Sit 	Daemonika Nightfire 	Posescript for use with or without AO and with or without Animation. With the menu it is possible the seated Avatar to move.
Hold Teddy Script 	Toady Nakamura 	Put in object to wear with an animation to animate avatar.
Posing Stand 	Bella Clarity 	Just a pose script to edit attachments more easily.
Zero Lag Poseball 	Jippen Faddoul and Daemonika Nightfire	A simple poseball with no lag
Facial expressions 	Dora Gustafson 	Wearable, Sit on or attach, JSON structured dialog-menu with all 19 facial expressions
CatArtificialIntelligence

==Artificial Intelligence==
Name 	Creator 	Description
Chatbot 	Anonymous 	Compile and run the LSL you type on a channel, faster than you can thru the 2007-08 SL GUI.
Hierarchics 	Nexii Malthus 	Advanced script to create an efficient self-aware hierarchic structure.
Hierarchics2	Nexii Malthus 	Second generation, one script per object. Only two functions, can be embedded in others. Uses the new llSetLinkPrimitiveParamsFast/llGetLinkPrimitiveParams functions.
Pathfinder 	Babbage Linden	A potential field based pathfinding library.
CatAvatar

==Avatar and Groups==
Name 	Creator 	Description
NameTest 	Oz Linden 	Given an old name, display the current name for the same avatar
Display Names to Key 	Joran Yoshikawa 	Simple way to get UUIDs from displaynames
*DS*_Display-Username_Online_Indicator	Daemonika Nightfire	This simple hover text-based script is used to shop owners in Second Life, customers at the current display name and user name to display publicly. Additionally shows the status of the Userkey and online. Furthermore, there are click of a chat link that opens the profile owner.
Find Avatar Key 	Huney Jewell 	Explores UUID of avatar whose name is said in local chat or who touches the prim.
Group Information v1.0 	Tyrennic Rivera 	When clicked the prim will show group information (set on the prim) from the official Second Life Search page.
Group key finder 	Emmas Seetan 	Touch to find the key of the group
Hello Avatar 	Linden Lab 	SL's default script.
Hello Avatar Companion 	Chase Quinnell 	Companion to the original Hello Avatar script
Name2Key in LSL 	Maeva Anatine 	Get the Name2Key feature inside your scripts. Works even on lastly subscribed avatars.
Online Indicator 	Kristy Fanshaw 	Will show if the user is online or not. Displays users profile picture and allows to send IM's to user. Also gives a link to open the users profile
Open Group Join 	Alicia Stella 	User Touches Object to Join Group from Group Info window, (no bot.)
Resource Impact Calculator 	SmarTek Engineer 	Use to control the lag caused by avatars, maximizing sim's performance.
Scripted Attachment Detector 	 	A script that will display avatars wearing scripted attatchments in hovertext. This may be worn as an hud or rezzed.
Show Agent Script Count and memory 	PixelProphet Lane 	Fast and efficient method to display the amount of scripts and memory usage for an agent
Under Age Boot 	Chance Unknown 	Security device example to teleport home accounts below a minimum age limit; can be useful in combating free griefer accounts.
Unmutable Descript Nagger 	Bobbyb30 Zohari 	To nag avatars to take off their scripted attatchments.
UUID Song Generator 	 	Translates a UUID into a simple song and plays it.
CatBuilderTools

==Builder Tools==
Name 	Creator 	Description
Builder's Buddy Tool 	Newfie Pendragon 	Script to easily move/rotate large builds that exceed the linkable size limit (30 meters).
Kilt / Skirt Editor 	Brangus Weir 	This changes all the parameters of all the flexis in the link set in one swell foop!
Spiral Staircase Generator	Meyermagic Salome	Generates nice looking spiral staircases without much hassle.
CatCamera

==Camera==
Name 	Creator 	Description
Camera following prim	Dale Innis 	Pair of scripts to make a prim follow your camera position around (for lights etc).
Camera Sync 	Meyermagic Salome and Nomad Padar	A system to synchronize the cameras of two avatars.
Capture Camera View 	Dora Gustafson 	Sit on the prim, move camera, touch the prim to capture camera view or release view
CatColors

==Colors==
Name 	Creator 	Description
Color Changer 	Void_Singer 	Dialog driven color changer. Supports 16million+ colors, web color codes, multiple targeted prims, with save and recall.
Color Changer Plus	Neo Calcutt 	A color changer with 14 colors, a random function, and a custom vector function.
Color Conversion 	Sally LaSalle 	Convert between Red Green Blue (RGB) and Hue Saturation Value (HSV).
ColorConvert 	Siann Beck 	Convert color values to vector from RGB, hex or HTML color name.
Color script 	Masakazu Kojima	Script for changing colors trough a listener with pre-defined colors.
FadeEasy 	Nika Rugani 	The easy way of fading objects in or out (Using llSetLinkAlpha)
Rainbow_palette 	Rui Clary 	Build a color picker, using only one prim, and a few lines of code.
CatConversions

==Conversions==
Name 	Creator 	Description
StringIsNum 	Zion Tristan 	Return TRUE if a string based input consists entirely of a whole number, and return FALSE otherwise.
Base2Dec 	Siann Beck 	Convert a number to decimal from any base.
BinaryDecimalConverter	Soundless Smalls	Converts a binary value to a decimal value and vice versa.
Float2Hex 	Strife Onizuka 	Very useful for transporting floats.
Object to Data 	Xaviar Czervik 	Turns an object into text (and back). Allows people to transfer objects through notecards (or otherwise).
UUID2Channel 	Project Neox 	Optimised version of the original key2channel generators.
CatDialogs

==Dialogs==
Name 	Creator 	Description
Bookmark URLs 	Rolig Loon 	Dialog driven HUD reads bookmarked URLs from notecards and navigates directly to them with user's in-world browser.
Dialog Control 	Nargus Asturias 	A (not-so) simple dialog & menu control script. Call dialog and receive selected value via link_message(), with built-in timer and link_message() notification on time out. Supports multi-pages dialog and numeric property dialog. Button text and dialog's returned value can differ.
Latest version also has Dialog Menus Control built-in; which allow multi-level menus through SL dialog system.
Dialog Menus (multiuser) 	SimonT Quinnell 	Menu dialog handler that supports multiple menus open at once from the single script. Displays multi-page menus if necessary as well as allowing for fixed header and footer buttons. Timeouts as well as Text and button size limits are handled.
Dialog Number Pad 	DoteDote Edison 	Use a dialog to accept positive integer input from users.
Inventory_Based_Menu 	Revolution Perenti	Inventory Based Menu System.
lsDialog 	Kephra Nurmi 	Universal notecard driven menu dialog system.
Real Object Inventory To Dialog	PixelProphet Lane 	Display any amount of items contained in an Object in a Dialog, regardless of item name length.
sbDialog 	Siann Beck 	A simple replacement function for llDialog. It re-orders the button list so that the button values, as passed to it, display left-to-right, top-to-bottom. It also opens a listen on the specified channel, and returns the handle.
CatEfficiency

==Efficiency Testing==
Name 	Creator 	Description
Code Racer 	Anonymous 	Race two versions of code forever, to see which runs faster.
Code Sizer 	Anonymous 	Count the bytes compiled from source code, to measure how to write small code.
Efficiency Tester	Xaviar Czervik	Tests the speed of a function.
Speed Tester 	 	Similar to the Efficiency Tester, this script allows you to test the speed of a particular function or snippet with multiple trials giving min/max/avg/median and the standard deviation.
CatEncryption

==Encryption==
Name 	Creator 	Description
ARCFOUR Strong Encryption Implementation	Nekow42 Zarf 	An LSL implementation of ARCFOUR, the most popular stream cipher still in use. It is licensed under a Creative Commons Attribution 3.0 license.
Basic Encryption Modules 	Beverly Larkin 	Basic encryption scripts, allows you to encrypt a float and shout it to another prim on a randomly chosen channel.
Encrypted Region-wide chat 	Kireji Haiku (talk|contribs)	Encrypted Region-wide chat
Password Generator 	Syntrax Canucci 	This is an over-complicated, semi-complex password generator, which goes through multiple steps.
Random Password Generator 	Jor3l Boa 	Generate Random passwords based on String Length.
SHA-1 Hash 	Strife Onizuka 	Performs a SHA-1 Hash on an input text. Similar to MD5 only (slightly) more secure.
SHA-2 Hash 	Strife Onizuka 	Performs a SHA-2 Hash on an input text. Similar to SHA-1 only (slightly) more secure.
XTEA Strong Encryption Implementation 	Morse Dillon 	An LSL implementation of XTEA (eXtended Tiny Encryption Algorithm). This is the first known public release of a 'real' strong encryption implementation in LSL and is released under the GNU General Public License (GPL).
CatGames

==Games==
Name 	Creator 	Description
Minesweeper 	Xaviar Czervik	A simple minesweeper game.
Open Zyngo Skin Installer	Tmzasz Luminos	A Simple Script designed to install skins on the popular Skill machines.
Skillingo AntiHack Script	Tmzasz Luminos	A simple Protection script for skillingo thats modifyable to work with other machines.
Skunk Money 	Hank Ramos 	Fun gambling machine of yesteryear, which only supports freeplay now due to SL regulations against gambling.
SLetanque 	Babbage Linden	An LSL petanque game.
Tic Tac Toe 	CG Linden 	Step by step demo on how to implement a larger scripting project
CatHUD

==HUDs (Heads Up Displays)==
Name 	Creator 	Description
SLateIt 	Babbage Linden	An augmented virtual reality HUD.
Target Crosshair HUD	Ackley Bing 	HUD targets nearby players names, profiles and user key.
OpenLayout 	Nexii Malthus 	Script that allows window HUDs to be repositioned, featuring drag & drop edge snapping. Using listeners it can cooperate with other OpenLayout standard HUDs and snap to their edges as well.
CatHousing

==Housing, Windows, Doors==
Name 	Creator 	Description
Curtain script 	Zilla Larsson 	A simple script to retract/stretch curtains, blinds, bedcovers and more
Keypad Door 	Tdub Dowler 	Door and keypad with changeable code. Follow instructions carefully!
One Script, many doors 	Kyrah Abattoir 	Door script able to manage more than 50 linked doors from a single script instance.
Simple Elevator in a Box 	Hank Ramos 	Simple elevator example.
Simple Pay Door 	Giygas Static 	Simple door you pay to get access.
Smooth Rotating Door 	Toy Wylie 	A script for doors that open and close smoothly using llTargetOmega
Smooth Rotating Linked Door With Hinge	Lyn Mimistrobell	A script for linked uncut (mesh) doors that smoothly rotates around a virtual hinge without the use of timers
Smooth Sliding Door 	SimonT Quinnell 	A script for sliding doors that open and close smoothly using llMoveToTarget. Asjusts for prim orientation.
Touch_Toggle_Light 	Toady_Nakamura 	Touch to change from dark to light. Use framework for other on/off projects.
Window Control 	Emmas Seetan 	For window opacity, helpful for buildings.
CatInterpreters

==Interpreters and Emulators==
Name 	Creator 	Description
Assembly-Like Programming Language	Xaviar Czervik	A compiler that runs assembly-like programs.
Computer:jaycoonlanguage 	jayco121 Bing 	A language written in LSL that is meant for my computer (available at the shop).
Scheme Interpreter 	Xaviar Czervik	A scheme interpreter capable of handling most scheme expressions, including lambda and lists.
Brainf*** Interpreter 	Subus Tremor 	A Brainf*** interpreter capable of handling short correct Brainf*** code.
RPN Interpreter 	Subus Tremor 	A RPN (reverse polish notation) interpreter for calculation of rpn expressions.
CatLand

==Land==
Name 	Creator 	Description
No Auto-Return 	Bella Clarity 	To stop your long and hard builds from getting returned in sandboxes (only single prims, though!).
No Auto-Return NR 	Jor3l Boa 	This really works (29-05-09), needs a nearby region to do the trick and avoid auto return. (Tested on Blue and Rausch)
No Auto-Return (Multi)	Xaviar Czervik	A revision of Bella's that works for multi-prim objects.
CatLibraries

==Libraries==
Name 	Creator 	Description
Associative Array (Dictionary) Emulator	Alynna Vixen 	This library provides a set of functions for using a list as an associative array where string based keys can refer to one or more variant elements.
BigNum Library (RSA Encryption) 	Xaviar Czervik 	A BigNum Library for dealing with big numbers! Specialized for modular multiplication, and RSA encryption.
Combined Library 	Strife Onizuka 	Library of mostly encoding and decoding functions, some more useful then others.
* String functions: Replace / Trim right / Trim left / Trim both
* Unicode conversion: UTF8 to Unicode / Unicode to UTF8
* List functions: Replace / Compare
Geometric Library 	Community Project	A substantial amount of various geometric functions for intersection and other purposes of 3D maths.
Interpolation Library 	Nexii Malthus 	A small set of interpolation functions.
LibObj 	 	A library to manage state in LSL using an object-oriented approach.
LibraryDisplayLandScreenshot 	Jon Desmoulins 	A modified version of LibraryDisplayProfilePic using the new PARCEL_DETAILS_ID Implemented in Server v1.36
Linkset Indexing 	Nexii Malthus 	Functions for indexing a linkset by patterns or names down to their linkset numbers.
Wiki3DBuilder Wiki3DBuilder1.0 	Salahzar Stenvaag	Allows a group of people to collectively build up complex 3D mindmaps with connected concepts. Uses particles for connections and low prim usage. Nodes can be textured, colored, changed form size moved collectively by everybody and can distribute notecards, landmarks, URL, objects, textures. I provide two version 0.1 and 1.0 and probably next version will communicate with moodle and sloodle external websites.
SL Mail V1.2 	Flennan Roffo 	Second Life mail client V1.2 (released sept'07). Send and receive mail from within Second Life from and to any address. With Address Book function and many chat commands. V1.3 is upcoming soon!
CatLists

==Lists==
Name 	Creator 	Description
List2CSV 	Kunnis Basiat 	List2CSV & CSV2List that include preserving type and escaping characters.
list_cast 	Fractured Crystal	Casts a list of strings into the type they appear to be. Designed for preprocessing user input for feeding into llSetPrimitiveParams
List: Find Last Index 	Void Singer 	Returns the last index of searched item in a source list. (backwards version of llListFindList)
List: Multi Find 	Void Singer 	Returns the first found index of multiple search items in a list. (Multi-item version of llListFindList. Fwd and Rev versions included)
List: Reverse 	Void Singer 	Returns an input List in reverse order
ParseString2List 	Strife Onizuka 	Same as llParseString2List and llParseStringKeepNulls, but not limited to 8 spacers or separators. Thus substitute a call to the llParseString2List and llParseStringKeepNulls functions by a call to ParseString2List whenever you have more than 8 separators or more than 8 spacers.
TightList 	Strife Onizuka 	Tight List is a family of functions for encoding lists as strings and then decoding them back into lists.
There are two flavors: TightList and TightListType. TightListType preserves types and uses a 6 char header, while TightList uses a 1 char header that doesn't preserve type.
Count Occurrences in a list	Dora Gustafson 	Look for and count anything, that can be an element, in a list. Two scripts, one straight and one recursive
CatLoggers

==Loggers and Chat Relays==
Name 	Creator 	Description
Chat Logger (GPL) 	Nobody Fugazi 	Chat logger which requests permission from participants before recording them.
Chat Relay 	grumble Loudon 	A Chat relay which can be routed using a path header and won't echo.
Conversation Relay	Jippen Faddoul 	Chat relay which requests permission from participants before relaying their messages. Also includes their attachments. (ToS compliant).
Describe Chatter 	Anonymous 	Chat to see yourself as others do.
Email2IM 	DoteDote Edison	Send IMs to SL friends via email (translate emails from friends into IMs).
CatMath

==Mathematics==
Name 	Creator 	Description
Prefix Calculator 	Xaviar Czervik	A calculator that evaluates expressions in prefix notation. 
+ 3 4 = 5. * + 1 2 + 3 4 = 14.
Mandelbrot Explorer 	Babbage Linden	An interactive fractal explorer.
Matrix Functions 	KyleFlynn 	A set of 3x3 matrix functions, multiplication, division, inversion, transposition, etc.
Pseudo-random Number Generator 	Xaviar Czervik	Generates a Pseudo-random number between -0x7FFFFFFF and 0x7FFFFFFF
Random Gaussian Number Generator	Vlad Davidson 	Generates a random number drawn from a normal (Gaussian; bell-curve) distribution, based on a specified mean/stdev