Austin Tate's Blog

Subscribe to Austin Tate's Blog feed Austin Tate's Blog
Individual Blog Entries - CC-BY-NC
Updated: 57 min 49 sec ago

For the Love of Fashion

2023, March 29 - 14:01

This event is part of a year-long celebration marking sixty years of research into computer science and AI at the University of Edinburgh. Starting in 1963 with a small group of machine intelligence pioneers, and computer science innovators, the University has 60 years of achievements to celebrate during 2023, and its leadership in future technologies to share. More information about the celebration: https://edin.ac/60-years-computer-science-ai

Our love of fashion is driving an unsustainable system of manufacturing, distributing and disposing of our clothing that is impacting our planet. How can we change our behaviour and the system for the love of the planet? What does the data tell us, how can we harness new technology such as Artificial Intelligence, robotics and informatics, and creative tools such as Augmented and Virtual Reality. What is the role of 3D environments, games and NFTs in fashion?

https://efi.ed.ac.uk/events/for-the-love-of-fashion/


Metaverse Fashion Week 2023

2023, March 28 - 16:42

Metaverse Fashion Week 2023 (#MVFW23) took place in a variety of virtual worlds and platforms including Spatial (https://spatial.io) in a space ghosted by Luis Fern and Metamundo which can be visited with Ready Player Me (https://readyplayer.me) avatars. This follows the 2022 event (blog post here).

MVFW23 MAD Global Curates

https://www.spatial.io/s/MVFW23-MAD-Global-Curates-6420c0f06127ed8eaffb047b





Including digital fashion artwork (MP4 – stream.mux.com) by Francesca Rosella (Cutecircuit) using MidJourney AI.

MVFW Exclusible x Polycount Web3 Couture

https://www.spatial.io/s/MVFW-Exclusible-x-Polycount-Web3-Couture-641e240e4f058f43042d7a20


MVFW Tommy Hilfiger Monolith

https://www.spatial.io/s/MVFW-Tommy-Hilfiger-Monolith-642217d890a2f49f474391e4

MVFW – Eter Studio x Simes

https://www.spatial.io/s/MVFW-Eter-Studio-x-Simes-6400f3073aa2f200e9748050

Club Vogue Singapore and thedrip.boutique

https://www.spatial.io/s/Club-Vogue-Singapore-63208a322beec8000135ef2c

Clue Vogue Singapore in Spatial includes a display of the top three finalists of the Vogue Singapore x Metaverse Fashion Week Digital Fashion Competition and a range of purchasable virtual clothing from thedrip.boutique

https://vogue.sg/vogue-singapore-metaverse-fashion-week-digital-competition/



Club Vogue Singapore in Spatial.io Real Life and Virtual Fashion

Runway Magazine Fashion Trends

https://www.spatial.io/s/Runway-Fashion-Magazine-Gallery-632a5ee2959f240001c95cab

MFH x Dollhouse presents Digital Fashion Week

https://www.spatial.io/s/MFH-x-Dollhouse-presents-Digital-Fashion-Week-Hw3-HUG-FQ-64038d2cf0a902db0d6bbd6f

Ruth2 v4 Rigging

2023, March 25 - 16:14

Sean Heavy has documented a process to add an armature/rig to the Ruth2v4 open source mesh avatar and to export components of the avatar for Second Life and OpenSim using the Onigiri Blender add-on. These notes are to provide some initial help while the process is being tested. The blog post will likely evolve as the process is tested and refined.

Using Onigiri add-on for Blender available at https://github.com/nessaki/Onigiri
You only need the Onigiri.zip file to use as the add-on.

From the Ruth2 repository at https://github.com/RuthAndRoth/Ruth2 obtain ./Mesh/Ruth2_v4/Ruth2v4Dev.blend

Steps 1-14 is just a one time setup for rigging:

  1. Open the Ruth2v4Dev.blend file.
  2. Save it somewhere safe or a temporary location for testing.
  3. Select the mesh object Ruth2v4; copy & paste it.
  4. Rename the pasted version to Ruth2v4_ForRigging, to avoid confusion.
  5. Hide all but the object Ruth2v4_ForRigging, also to avoid confusion.
  6. In the Onigiri menu->Rig Creation tab, click on “Enable additional choices”.
  7. Click on “Add Female Default Devkit Rig” to create a rig for Ruth.
  8. It helps if you select the new rig; go to the “Object Data Properties” tab (looks like a guy running); click on “Viewport Display”; check “In Front” to see the rig easier.
  9. Select the object “Ruth2v4_ForRigging”.
  10. Go to the “Skinning/Weights” tool in Onigiri.
  11. With “Ruth2v4_ForRigging” selected, click on “Lock Mesh(s)”. This should put it’s name in that field.
  12. Select the Onigiri rig.
  13. With the Onigiri rig selected, click on “Lock Weight Sources”. This will parent the armature to the mesh.
  14. Note that this newly rigged mesh will not work well in SL/OS. Some parts are not rigged correctly, but this does not matter since we won’t be using this rig in SL/OS.

Save this as a .blend file so it is available with these setup steps already completed.

These instructions are for rigging the actual mesh objects for use in SL/OS:

  1. Go to the “Skinning/Weights” tool in Onigiri and keep the newly created mesh, “Ruth2v4_ForRigging”, and it’s rig visible.
  2. Make visible the next mesh or meshes you want to rig for SL/OS (say Ruth2v4Business + Ruth2v4Hands).
  3. Select it/them (e.g. Ruth2v4Business + Ruth2v4Hands).
  4. With your yet to be rigged mesh object(s) selected (e.g. Ruth2v4Business + Ruth2v4Hands), click on “Lock Mesh(s)” in Onigiri. This should put its name or a number of meshes in that field.
  5. Select the mesh “Ruth2v4_ForRigging” (not the rig, just the mesh) and click on “Lock Weight Sources”. This should put it’s name in that field, but not attach the rig yet (unlike before).
  6. Click on “Parent Armature Only”
  7. This will rig your mesh object (e.g. Ruth2v4Business + Ruth2v4Hands) for SL/OS.
  8. Select this mesh object(s) (e.g. Ruth2v4Business + Ruth2v4Hands) and click on “Export Mesh For SL / Opensim” in the Onigiri “Mesh Export” tab.
  9. Name the exported Collada file and save it. You should be able to import this DAE file into SL/OS.

Repeat these last 9 steps for all mesh objects you want to rig and import to SL/OS.

SL/OS Mesh Import Settings:

  1. Model name should be set to something sensible.
  2. You could set the level of Detail for “Lowest” to 0 and under Physics set that to Lowest.
  3. Under Rigging, “Include skin weight” should be ticked (as it is by default).
  4. “Include joint positions” does not need to be ticked (as it also is by default).
  5. Then hit “Calculate weights & fee” and upload.
  6. Attach the uploaded mesh to a suitable attachment point.
  7. Texture it with Bakes (Head, Upper and Lower as appropriate) or suitable textures.
  8. Optionally add the Ruth2v4 scripts from the Ruth2 GitHub repository or as available inworld via the Ruth2v4 Second Life Marketplace distribution and on the RuthAndRoth region in OpenSim/OSGrid to connect up with the Ruth2v4 HUD.

Virtual World Best Practice in Education 2023

2023, March 23 - 16:00


The 16th Virtual World Best Practice in Education 2023 online conference titled “Uncommon Realities” took place in Second Life on 23rd March to 25th March 2023. The event organised by https://www.vwbpe.org/ focuses on the use of immersive virtual environments for educational purposes including virtual and augmented reality.

Opening Event


Tom Boellstorff (avatar: Tom Bukowski) Keynote
“Making the Metaverse a Common Reality”







Linden Lab Chat with Grumpity Linden and Patch Linden

A chat and look at upcoming features of Second Life with Linden Lab’s VP of Product Grumpity Linden and VP of Product Operations Patch Linden.


Second Life Mobile Viewer (based on Unity) preview video at https://www.youtube.com/watch?v=1tjRlVwlAXA

Second Life is 20 years old this year and the SL 20 Birthday event is on June 22nd and 23rd, 2023.

Stylianos Mystakidis (Avatar: Stylianos Ling) Keynote
Metaverse: Pandora’s Pithos or Panacea for Education?
7+1 Uncommon Truths about the Edu-Metaverse

Stylianos Mystakidis is a Tutor Counsellor at the Hellenic Open University, Greece


Ready Player Me Avatars in Second Life and OpenSim (Onigiri)

2023, March 21 - 15:01

Update August 2023: A big advantage of new PBR Viewers is that the Ready Player Me .gltf file can be used to load all the PBR materials, their properties and constituent textures in one bulk upload. Use Build -> Upload -> Materials and select the avatar .gltf and then use the drop down menu to select the “Bulk Upload All” option.

This blog post describes a process to take Ready Player Me (https://readyplayer.me) avatars via Blender and the Onigiri add-on to use in Second Life and OpenSim. Onigiri is a fork of the GPLv3 licenced Bento Buddy around version 3.0.5.0 (2-Feb-2022) with some assets replaced. Onigiri is a type of Japanese rice ball (see Wikipedia).

Prepare the Resources

  1. Obtain and install Blender (https://blender.org).
  2. Obtain Onigiri (https://github.com/nessaki/Onigiri). Only the Blender add-on install ZIP file is required, the rest is source code only used to build the add-on. Get it via https://github.com/nessaki/Onigiri/blob/main/Onigiri.zip. Install it as a Blender add-on via Edit -> Preferences -> Add-ons.
  3. Some data files used by Onigiri may be needed to make the conversion process easier.
    1. Go to the Onigiri “data” directory which is usually located at something like
      C:\Users\…\AppData\Roaming\Blender Foundation\Blender\…\scripts\addons\Onigiri\data
      This location can be overwritten when you update Onigiri so save a copy of the changes/additions mentioned below for future use.
    2. Observe that the readyplayerme.onim is 3KB (in Onigiri 3.5b). Copy mixamo_no_prefix.onim (29KB) to readyplayerme.onim instead as that gives a better conversion. Ready Player Me avatars have a Mixamo compatible skeleton/armature.
    3. Ready Player Me avatars can be downloaded in a “T-Pose” which is a good basis for the conversion but also splaying the fingers on the hands works better. From https://openvce.net/resources/downloads/ReadyPlayerMe/Onigiri/ download ReadyPlayerMe-T-Pose-Splayed-Hands-Only.bpl and also put it in …\addons\Onigiri\data.
  4. Ensure you have a Ready Player Me avatar to download via https://readyplayer.me).

Workflow for Conversion

  • Obtain Ready Player Me avatar .glb URL.
  • Download avatar URL with ?textureAtlas=none&textureSizeLimit=1024&textureFormat=png&pose=T on the end.
    • Smaller clothing textures can be obtained in the .glb download by using textureSizeLimit=512 or leaving it out (usually means 512).
    • You can get the “Full” .glb download which includes all “morphTargets” for facial and mouth animation (unused in this conversion process) by using
      ?morphTargets=ARKit,Oculus+Visemes,Default&textureAtlas=none
      &textureSizeLimit=1024&textureFormat=png&pose=T
    • Smaller clothing textures can be obtained in the .glb download by using textureSizeLimit=512 or leaving it out (usually means 512).
    • The default of &lod=0 is used. You can alternatively get reduced triangle mesh avatars via &lod=1 or &lod=2.
    • You can get smaller compressed textures with &textureFormat=jpeg.
  • Start Blender and delete any initial content (e.g. cube), the default camera and light.
  • Import .glb to Blender and check avatar is in T-Pose.
  • Extract all the textures. One quick way to do that is to save the project as a .blend file first, then go to File -> External Data -> Unpack Resources and select “Use files in current directory (create when necessary)”.

Set Finger Pose to Second Life/OpenSim Splayed Fingers

The Ready Player Me T-Pose has the fingers in a line. Second Life and OpenSim T-Pose rest pose has the fingers widely splayed. This can be fixed by applying the finger splaying mentioned earlier which is limited to the fingers and thumbs of the avatar.

  • Use Onigiri’s Animation -> Enable the Pose Library and then load the ReadyPlayerMe-T-Pose-Splayed-Hands-Only.bpl pose library file and applying the pose to the avatar (note to make the Pose Apply button to be active you might have to click off the Armature in the Blender Outliner and and back on it).

Convert Avatar Rig/Armature for Second Life/OpenSim

  • Under Onigiri’s Character Converter, load the readyplayerme.onim map and click Convert
  • Use Onigiri to export for Second Life/OpenSim (select all three options including Project Full Rig).
  • Import the Collada (.dae) file produced to Second Life/OpenSim. Name the mesh something sensible. Set the Lowest Level of Detail to 0. Select Physics as “Lowest”. In Rigging tick both “Include Skin Weights” and “Include Joint Positions”. If you leave out Include joint positions, the avatar may look spindly.

Prepare the Avatar within Second Life/OpenSim

  • Attach the uploaded mesh avatar (e.g. to Avatar Center)
  • Change the Description field of the avatar mesh to include the licence information:
    CC BY-NC 4.0 https://readyplayer.me
  • As with any mesh avatar in Second Life or OpenSim, you will need to add an “Alpha Mask” to make sure the underlying standard avatar does not show through the mesh. This should make all parts transparent (Lower, Upper, Head, Eyes and Hair)

Texture the Avatar in Second Life or OpenSim

  • Texture the mesh faces using the Diffuse textures and Normal Maps (for bumpiness). The shininess/metallic textures don’t work well and may be omitted

Texture with diffuse textures and add bumpiness “normal” textures to the mesh inworld. You probably don’t want to use (yet) the Metallic/Roughness/Shininess (PBR) where that is provided for some faces as they can be a bit too glossy. Though Physics Based Rendering (PBR) is under development for Second Life, so you may wish to keep the textures to hand.

To texture the teeth you may need to Disable the Camera Constraints (Preferences -> Advanced) to be able to swing the camera inside the mesh head to select that mesh part.

The hair colour is a simple coloured image. You can alternatively change the hair colour using the “Blank” texture and setting a colour.

Avatar .glb files that are downloaded may have a single face with three textures that represent the texture (diffuse), normal map and metallic/shininess (PBR), or maybe have multiple faces for hair, face, skin, top and bottom. The single face format does not allow hiding of the hair, glasses, etc for in world customisation as described below.

Optimising and Re-using Textures

If multiple Ready Player Me avatars share the same face, eyes, teeth body, hair and perhaps items such as glasses. The diffuse and normal map textures for these can be reused rather than uploading and using a new asset each time. This will save upload fees, but also allow for texture sharing or reuse for efficiency. The different textures for the outfit top, bottom, dress and/or footwear can then be used with these shared elements. The skin and hair colour textures can also be replaced by the standard blank texture and coloured to match to further save on the use of different textures.

Hand Relax Background Pose

  • You could add a hand relax low priority pose into the mesh.
  • To “relax” the hands when not in a pose you could use the RuthAndRoth “bentohandrelax” script and “bentohandrelaxP1” animation. These are available in the Ruth2 v4 and Roth2 v2 distributions in Second Life and OpenSim or via the (GitHub RuthAndRoth “Extras” repository Animations Directory).

In-world Customisation

A number (but not all) the “Edit Shape” sliders work on Ready Player Me avatars to adjust the general shape.

Some parts such as the hair, accessories such as glasses, etc. can be “unlinked” to be separate wearable items or just set to 100% transparent so that the underlying avatar shows through (such as setting a bald head). This can allow some measure of in-world customisation. This also allows standard avatar attachments such as mesh and flexi hair to be added on without initially uploading a bald headed Ready Player Me avatar.

The head and body parts and textures cannot be altered. Facial hair, eyebrow details, make-up, etc are all baked onto the skin textures which have a unique mapping for Ready Player Me avatars. Hence tattoos and other elements that can be applied to skins in Second Life or OpenSim will not work.

The eye texture can be changed, even to a Bakes on Mesh (BoM) Eye (ensure you use an underlying avatar mask that allows the eye to show in that case). The normal eye texture iris image is slightly larger than the standard Ready Player Me one, so you may wish to adjust the image horizontal and vertical scale to (say) 1.1.

Licencing

Ready Player Me avatars are licensed as CC BY-NC 4.0.

Onigiri is based on a fork of Bento Buddy (a charged for Blender add-on) and uses the same basic Python scripts as is permitted under the Blender add-on licence, though it uses its own assets such as icons.

Alternative Routes

An alternative route to convert Ready Player Me avatars for use in Second Life and OpenSim is to use the Bento Buddy Blender add-on as described in this blog post. Though Bento Buddy is also GPL licenced, the latest versions of Bento Buddy (1-Jan-2023 onwards) requires a current paid for licence to the Bento Buddy “Expression” service to allow the export of the Collada (.dae) outfit file.

Blender Nodes – Resources

2023, March 18 - 10:47

This blog post provides links and resources related to the use of “Nodes” and their “Noodle” links to create workflows in Blender, especially for creating PBR Materials with Albedo images, Metallic, Roughness and Height Maps/Normals.

Learn the BASICS of Material Shading in Blender – YouTube by Brandon’s Drawings

How to setup PBR textures in Blender by Daniel Grove Photo: In this video you’ll learn the fundamentals of nodes, materials, and using image maps to create realistic surfaces for your models. I’ll also show you how I modify my textures with nodes for further flexibility and unique looks.

ORM Textures In Blender by Chevifier: ORM textures is a technique used to store multiple PBR textures values into 1 texture on each RGB channel. This save both on storage space and easier texture management. For example instead of having 5+ textures you would generally only have 3.(Color/Albedo), ORM and Normal Map). ORM corresponds to ambient Occlusion, Roughness and Metallic. But you can store them in any order.

Example material use for testing… freepbr.com space-crate1-pbr

Sample PBR Materials

Cuteulula Artis Roller Coasters

2023, March 13 - 15:17

I have posted before about Cuteulala Artis’s roller coaster builds in OpenSim, her free to use (in OpenSim only) Optera coaster, and her CuteulalaPark region on OSGrid.

hop://hg.osgrid.org:80/CuteulalaPark/304/475/22

Via her MeWe posts, Cuteulala recently made available on OAR similar to the OSGrid Theme Park 2 region and then an update exclusively for use in the DreamGrid distribution of OpenSim.


Cuteulala Park 2 Availability, Terms of Use and Licence

Cuteulala Artis on MeWe 6-Mar-2023:

Hi there!! As a thanks to Outworldz I decided I am gonna donate the Cuteulala Park 2 to DreamGrid for all to use. This means I will cease sales of this OAR! So I will instead accept donations to this link here. While I am not comfortable selling things I will instead have donations to my payee’s PayPal account instead. You will be able to download all my OARs but have the option to donate or not. I think this is the best action so that more people can enjoy the work for free.

This is a 2×2 Region theme park optimized for YEngine.

The terms are as follows:

  • NOTICE: Script Timer must be 0.05 or Lowest so that the sensors can be fast enough to stop and start the fast moving trains!
  • None Monetary use. No Second Life Import of any kind. Opensim ONLY.
  • You can edit / change the work with the code without SALE and only personal use. You can use it in a commercial grid without monetary and ALL CREDITS OF ORIGINAL CREATOR (Cuteulala Artis) must be present in the sim.
  • Add a link to the free OAR preferably at the spawn point and to the location of this post.

Fred Beckhusen will add the OAR to the main oar segment in DreamGrid. I will no longer be selling OARs and will have a donation. Previous commercial buyers of the OAR do reserve there normal rights to commercial usage of course! Donations can be sent here. https://paypal.me/cuteulala. Also note: No I am NOT a guy. I have a representative payee who gets my checks from social security and manages all my bills. Money goes to him then me to protect clients.

Themepark_2023-01-16_01_30_45.oar (219.49 MB)

If you have access to this original version for OpenSim please delete the “Pedestrian Controller” (located at <407, 229.656, 21.3352>) as it should not have been included for licencing reasons.

Cuteulala Park 2 Minor Update

This version is the one now available and is for exclusive use on DreamGrid installations of OpenSim. It fixes some errors with scripts and removes some assets not meant to be released to the public. The Pedestrian Controller is removed. If you have taken a copy of this item delete it as its not authorized for release. Usage of the scripts and its assets isn’t permitted.. yet.

Say thanks with a optional donation: https://paypal.me/cuteulala

READ FIRST: Restriction to exclusive use on DreamGrid distributions of OpenSim
[Text, Thumbnail Image, OAR (as .tgz)]

Winxtropia+Themepark_2023-03-12_00_19_29(2X2).oar (217.73 MB)

Godot Engine – Resources

2023, March 8 - 17:21


This blog post is to provide resources and links related to the MIT Licenced open source Godot Game Engine.

As an initial test I imported a glTF 2.0 mesh file created from my Blender version of Supercar 2023. Godot prefers glTF versus file formats like FBX and has inbuilt importers for glTF and its binary form glb, though with addon importers like FBX2glTF (which is offers) other formats can be handled.

The mesh can be imported into the scene by dragging the item from the “Filesystem” panel to the “Scene” panel. A tip to be able to edit child parts of an imported mesh (such as the Supercar above) is to right click on it when in the Scene and tick “Editable Children” and then “Expand/Collapse Branch”.

Tutorial Videos

Adding an Avatar to a Godot Scene

https://docs.godotengine.org/en/stable/getting_started/first_3d_game/02.player_input.html

AI@Edinburgh Achievements and History

2023, March 5 - 15:09

In response to a colleague’s request for pointers to early AI achievements in Edinburgh I provided a few links and resources that may be useful. This blog posts lists some of them…

We carefully preserved an archive of project materials and documents from all of the previous AIAI’s work over a period of four decades (in Informatucs Forum room IF2.22 in the now enlarged AIAI and formally looked after by its director, currently Jacques Fleuriot)… https://www.aiai.ed.ac.uk/resources/

I have over the years also tried to preserve some of the history, as did Jim Howe.. these links might be relevant…

Jim Howe’s history of AI at Edinburgh… https://www.inf.ed.ac.uk/about/AIhistory.html

My list of the various AI groups since 1963…
https://blog.inf.ed.ac.uk/atate/2019/10/30/artificial-intelligence-and-its-applications-institute/

Donald and others have given a number of talks on early AI history and pioneering AI work at Edinburgh and in the UK… https://www.aiai.ed.ac.uk/events.html
https://www.aiai.ed.ac.uk/events/ccs2002/ (AI – Recollections if the Pioneers)

Some specific deployed applications of AI technology created by AIAI are listed via the menu down the left hand side if this page at… https://www.aiai.ed.ac.uk/achievements.html

Freddy Robot project summary page… https://www.aiai.ed.ac.uk/project/freddy/

My owns summary of AI planning work my group has been involved in over 5 decades… also now preserved on GitHub and in its “Arctic Code Vault“… https://www.aiai.ed.ac.uk/project/plan/

We also created the AI Planning MOOC to preserve a range of material, demonstrations, code and interviews… https://www.aiai.ed.ac.uk/project/plan/ooc/

There are also a few things going on here just now that could be relevant… as its the 60th anniversary of Donald setting up the first AI group at Edinburgh (EPU)… https://www.ed.ac.uk/c/60-years-computer-science-ai

Second Life PBR Materials tests

2023, March 3 - 16:05

A development of Second Life is introducing Physical Based Rendering (PBR) materials based on the glTF specification. Some links and resources are in my earlier blog post.

Test Materials with Metallics, Lights and Emission

Ready Player Me Avatar with All Channel PBR Materials

Bistro Interior by Nagachief Darkstone

Supercar Mesh

I tested out some of my previous complex mesh models, which use the old style texturing and shininess. This is how they render in the test PBR viewer without applying any new materials or properties.


Inworld Review with Ai Austin and Humbletim

2023, February 26 - 22:00

Talk from and about virtual worlds & immersive spaces. With Mal Burns, Thirza Ember & James Atlloud. Produced by Metaworld Broadcasting. the 26th February 2023 edition had guests Ai Austin and Humbletim. The intended discussion topic was Virtual World Viewers, though the actual topics range more widely about virtual worlds developments and uses.

This blog post provides some notes, resources and links provided by Ai Austin to help in the discussion.

Firestorm Viewer and OpenSim Core Developers

  • Jessica Lyon, Willow Wilder, Whirly Fizzle, Ansariel Hillier, Cinders Roxley, Beq Janus and team.
  • OpenSim Core devs:
  • Early days with Adam Frisby and Justin Clark-Casey
  • Melanie Thielker
  • Diva (Crista Lopes, University of California, Irvine)
  • Robert Adams (MisterBlue)
  • Kevin Cozens
  • Leal Duarte (Ubit Umarov)

VR developments – 2007 to date

https://blog.inf.ed.ac.uk/atate/2022/02/20/vr-viewers/

  • 2007 3D stereoscopic University of Michigan
  • 2011 3D anaglyph (red/cyan glasses) Kirsten’s Viewer
  • 2014 David Rowe (CtrlAltStudio) 3D anaglyph, Nvidia 3D active shutter, Oculus Rift.
  • 2014 VoidPointer Linden – LL Oculus Rift Project Viewer.
  • 2016 Other 3D injection approaches such as VorpX.
  • 2019 Peter Kappler VR Mod – minimal approach. GHA build process by @thoys and @humbletime

LL “almost there” in 2014 but gave up with FPS concerns. I speculate it was some broken final commits around October 2014 after VoidPointer left the project that were shown and not liked in LL at the time.
https://blog.inf.ed.ac.uk/atate/2014/09/05/oculus-rift-dk2-linden-lab-rift-project-viewer/

I am NOT a fan of assuming all user interaction will be via VR HMDs. I prefer mostly 2D UI with occasional entry into VR when relevant. Good example is the OpenSim RGU Oil Rig for immersive oil rig worker training.
https://blog.inf.ed.ac.uk/atate/2017/06/07/virtual-oil-rig-enhancing-higher-education/

Development Milestones and Disruptive Times

LGPL Viewer Licence was a big spur. Prior to that OpenSim devs were serious about NOT looking at LL viewer code and reusing some simple assets such as default textures before that.

  • 0.8.2.1 -> 0.9.0.* transition (serious object rez issues, caused some grid to delay upgrade for a long time).
  • Estate Management (caused some users and grids to delay viewer upgrade for some time).
  • Mesh (Collada).
  • Bakes on Mesh (worked surprisingly well for majority of functionality without change).
  • EEP.
  • Coming up: PBR, Puppetry.

OpenSim Advantages

NPC mechanism is easier to use and more flexible than LL Animesh and was introduced much earlier. Good for educators.

hop:// Protocol- “nearly” working

I am a big fan of hop, and try to encourage its use and development where I can. I think its the simplest, most easily understood mechanism for defining locations and providing web and viewer clickable links to go to locations on any one OpenSim grid and across the Hypergrid.

hop is now well supported via Firestorm, and some other viewers (like Alchemy), with recent improvements by Beq Janus on the Firestorm team. A few remaining issues have JIRA entries and may one day be addressed. The top one is an issue where a hop region name is a partial match for more than one other region on the grid.
https://jira.firestormviewer.org/browse/FIRE-31368

Wishlist for the Future (SL and OpenSim)

Mobile “Viewer”

There have been several attempts to provide continuing access to Second Life even when not on a capable machine on which the full viewer can run. This usually involves at least maintaining avatar to avatar to group orientated communication. But some viewer for mobile devices also allow for more types on interaction.

OpenSim Only Viewer?

  • Too small a community and too many variants to go for just an Opensim Viewer.
  • Standards development will mean more sharing of assets. glTF is an example… with Robert Adams/MisterBlue developing a bridge. OARConv and Unity direct view with libremetaverse library in Crystal Frost viewer by Berry Bunny, etc.

FairShare – Resources

2023, February 17 - 20:18

This blog post provides links and resources related to “FairShare” an experimental idea originated by Philip Rosedale (pioneer of Second Life and its digital currency – the Linden Dollar) to look at digital currencies in and between small cooperative groups.

Supercar in Spatial

2023, February 14 - 21:43

Using the Spatial Creator Toolkit for Unity (see this blog post for resources) I have imported the Blender/FBX version of our Gerry Anderson’s Supercar model into a scene which can be visited by multiple simultaneous users with any Ready Player Me avatar (or one can be created on the fly as a guest).



Second Life PBR – Resources

2023, February 9 - 20:43


Example PBR Materials (Chrome and Brass) on Door Knobs

Physics Based Rendering and glTF materials use is coming to Second Life and a project viewer already exits for testing things using the Beta Grid. This blog post is to gather resources relevant to using PBR in Second Life.


Second Life University – PBR Materials with Runitai and Kyle Linden – 9-Feb-2022

Second Life – Les Salines – February 2023

2023, February 8 - 21:58

Once again, I was inspired by one of Inara Pey’s excellent Second Life destinations reviews to visit another nice build in Second Life, this time of a late Nineteenth Century western town in the “Nowhere” region of the Mohave Desert.
http://maps.secondlife.com/secondlife/Les%20Salines/116/113/27



Roblox – 2023 NFL Concert

2023, February 8 - 09:55

After checking out Roblox in July 2022, I returned to look at the “Rhythm City” experience created by Warner Brothers to accompany the 2023 NFL incorporating a motion captured virtual concert by Saweetie. More details here.



Second Life Mole Day 2023

2023, February 5 - 21:00

I joined the “Mole Day” celebration on 5th February 2023 to thank the Moles for all they do on behalf of Second Life residents. The Moles are the builders and maintainers of the shared spaces in Second Life, and provide the “Linden Homes” such as my houseboat.

Firestorm VR Mod 6.6.8

2023, January 31 - 17:15

Up to Firestorm 6.6.8 if you see errors like “missing vcruntime.dll”, “missing msvcp.dll” or the application is not starting at all, then please download and install Visual C++ Redistributable for Visual Studio (link for 64-bit operating systems). This issue will be fixed for Firestorm 6.6.9 onwards.

Firestorm VR Mod is a version of the popular Firestorm Viewer for Second Life and OpenSimulator with modifications to provide VR capabilities for VR Head Mounted Displays (HMDs) via SteamVR. Firestorm VR Mod is now available from https://github.com/humbletim/firestorm-gha/releases (Assets)

For Firestorm VR Mod community support use the Discord Discussion Channel:
P373R-WORKSHOP by p373r_kappler [Invite]

Table of Contents Usage Settings Troubleshooting Black in HMD SteamVR Popup Fn Keys Default View FPS Advice Xbox Controller 3D SpaceNav Source Code VRLand Test

Firestorm 6.6.8 + P373R VR Mod: This build includes P373R’s VR Mod 6.3.3 changes merged into the Firestorm 6.6.8.68380 release branch. The VR Mod approach takes a minimalistic approach to inserting VR capabilities into the viewer in order that the maintenance overhead is decreased and the potential longevity of the approach is increased. VR Controller support is not included.

Download the release installer (for Windows only) from the “Assets” list at the bottom of the entry for the latest version available at https://github.com/humbletim/firestorm-gha/releases/


Firestorm VR Mod is created using “GitHub Actions” (GHA) thanks to @humbletim and @thoys. Minor manual changes are made for the VR Mod 6.3.3 code for the merge, which otherwise continues to be suitable. Some of the code for performance metrics wants to be just ahead of rendering, which is where the VR Mod inject points also wanted to be. Since they are independent it’s just a matter of explaining to git they are unrelated and can exist in any order. The cmake scripts are also amended to auto-include openvr.dll.

The App name has been changed to “FirestormVR” and the Program Files and AppData directories changed so the installation can exist side-by-side with stock Firestorm if desired. Settings are stored in the different default user folder C:/Users/<name>/AppData/Roaming/FirestormVR_x64. Cache is also stored in a different default user folder C:/Users/<name>/AppData/Local/FirestormVROS_x64.

U S A G E

VR Mode instructions are available via prompts in the viewer or via information on https://gsgrid.de/firestorm-vr-mod/. In short…

  • Press CTRL+TAB to load or unload the SteamVR driver. Do this each time you want to enter VR mode after starting up.
  • Press TAB key to enable and disable VR mode.
  • Press F5 to open the settings menu, you should see a text menu in the middle of the screen. The settings menu works only when VR mode is enabled.
  • Press F6 to increase the selected value. Press F7 to decrease the selected value.
  • Press F5 again to switch to the next menu entry.
  • By pressing F5 on the last menu entry the menu will close and save the settings in a config file which is located in
    C:\Users\your_user_name\AppData\Roaming\FirestormVR_x64\vrconfig.ini
    and which can be edited directly. Pressing TAB for VR mode reloads the config file.
  • Hold F3 to see some debug info (example here).
  • Press F4 to disable and enable HMD’s direction changes. It may be better to disable the HMD’s direction interface when editing and flying with the camera. This may be subject to change in future versions.
  • In the camera floater two buttons has been added to offset the HMD’s base rotation.
  • Moving the mouse to the corners or the sides will shift the screen to this direction so menus can be accessed more easily.

For issues on some specific headsets you might wish to try the Firestorm VR Mod Discord Channel: P373R-WORKSHOP by p373r_kappler [Invite]. Peter Kappler also offers the following advice…

  1. Firestorm VR Mod works best while sitting and using mouse and keyboard.
  2. WindowsMixedReality users may need to press windows key + Y to unlock the mouse when the HMD is worn.
  3. If your VR hardware cannot maintain constant 90 FPS you could try enabling motion reprojection in your HMD. In WindowsMixedReality it can be done by uncommenting “motionReprojectionMode” : “auto”, in the config file located at “C:\Program Files (x86)\Steam\steamapps\common\MixedRealityVRDriver\resources\settings\default.vrsettings”. This will make the HMD interpolate between frames and create a smoother experience. Vive and Oculus should have similar functionalities which can be accessed from SteamVR settings. For Vive it is called Motion Smoothing.

S E T T I N G S

VR Mode Setup

Firestorm VR Mod installs into its own folder and uses its own user Settings directory so that the VR Mod viewer can be installed alongside the standard Firestorm viewer. Note that if you want to import existing Firestorm accounts/settings you have to manually copy them over between AppData/Roaming/Firestorm_x64 and AppData/Roaming/FirestormVR_x64 folders.

As usual, Ctrl+TAB initially sets up SteamVR (and HMD support as needed), TAB is used to toggle VR mode on or off, F5 lets you select and step through the various VR HMD or user specific settings for IPD, texture shift to register the left and right eye images, and focal distance to change depth perception, etc. F6/F7 are used to increment and decrement each setting selection.

Peter Kappler suggested the following process to establish suitable settings for your HMD:

  1. Set IPD to 0 (zero)
  2. Then adjust Texture Shift until image is sharp and focused
  3. Then adjust IPD which separates your cameras to left and right to get a good 3D effect

Hovertips

If you see a lot of hover tips showing under the mouse it could be that the debug setting “ShowHoverTips” is set to TRUE (the default) which may show something constantly under the mouse even for inert unscripted objects. You can turn that off via Debug Settings or via Preferences > User Interface > 3D World > Show Hover Tips. Via that same preferences panel, you might alternatively prefer to lengthen the delay before hover tips are activated.

Chat Bubbles

In VR Mode it may be useful to show local nearby chat in “bubbles” over each avatar’s head. This can be done via Preferences > Chat.


T R O U B L E S H O O T I N G

Misaligned VR Cursor

Note from Gaffe on Discord: Firestorm VR Mod’s VR cursor will have a small-to-extreme offset on Windows in particular if you are using Windows UI Scaling with any settings OTHER than 100%. To fix the VR cursor offset, set the Windows UI Scaling for your primary display to 100%

Jumbled VR Initialisation Text:

I have noted that Ctrl+Tab to start the SteamVR/HMD device software sometimes shows jumbled letters for the VR driver initialisation message, and once that occurs using Tab to launch VR mode does not give a VR display in the HMD.

After some experimentation, I found that after starting Firestorm VR Mod, rather than going straight to Cltrl+Tab to set up for VR devices, I first dismiss the onscreen message with Tab, and THEN do a Ctrl+Tab after which the full message without missing letters immediately appears, and SteamVR/Oculus is launched and when the Tab is then used the VR mode works properly. This may be a temporary situation and could be related to driver updates or SteamVR changes, but if you see the same thing, try the Tab and then Ctrl+Tab sequence once or twice to see if that also works for you.

Missing Menus and Buttons in Centred VR View

If you notice that the top menu bar and bottom and side button areas do not show in your headset when you are in VR Mode and your view is centred (i.e. mouse is positioned centrally in the 2D view) it may be that the VR settings you chose for Texture Shift and Texture Zoom need to be adjusted, or set to zero.

All Black HMD Display or Black Edges or Strips in HMD Display

An all black display in the VR HMD was an issue in earlier versions and is mostly resolved now… but it can still occur with some headsets. In case you encounter issues with a black HMD display… Peter Kappler suggests the following:

  • Create a program-specific profile for the viewer in your graphic card settings and enable FXAA.
  • Second Life only supports FXAA. Other types of Anti-aliasing can be disabled.

Firestorm VR Mod shifts the display in VR mode to an edge if the mouse or pointer is placed towards an edge or corner of the viewer window. This is to allow easier access to menus, user interface buttons and HUDs. It can be confusing though if you enter VR mode and find that part of the view is black. It is usually because the mouse is placed towards a corner or edge. Just move the mouse back to the centre of the screen and the full VR view should appear.

SteamVR Reset/Quit Screen Shows in HMD

When you switch to VR mode (after activating VR with Ctrl+TAB and using TAB), you may see a “Next Up… Firestorm” message or a SteamVR popup screen to “Reset the View” and “Quit SteamVR”. This has been observed to occur on the first run of a newly installed viewer. It can usually be dismissed with your controller if that is active, but if not the screen may continue to show the popup in VR mode in the HMD. Try another round of ctrl+TAB and TAB or if that does not work try stopping and restarting the viewer to clear this. These glitches may be more to do with legacy OpenVR + the latest SteamVR updates rather than Firestorm or VR Mod code changes.

Function Keys and Gestures

If you have issues with some of the Function keys (F5 or other Firestorm VR Mod keys) not working… look to see if the F keys involved are mapped to active “Gestures”. You can find a list of the gestures you currently have active and the keys associated with them using the “Gestures” toolbar button… or the Comm -> Gestures menu item (Ctrl+G shortcut).

Reset Default View in Firestorm Viewer

If your camera viewpoint appears to be wrong… type ESC or Shift + ESC a few times. That should reset your camera view. You could also try CTRL + 9, which does the same thing.

A D V I C E    O N    F R A M E    R A T E

You do need to ensure you have a good frame rate to have a comfortable VR experience. The Firestorm VR Mod Viewer will not work well if the Second Life/OpenSim region you visit cannot normally be displayed in 2D with a decent frame rate. In VR mode you can assume you will get 50% or less of the frame rate that shows on the 2D normal screen. At low frame rates bad flickering or texture tearing will occur in VR mode. My suggestion is to look at the frame rate (in Firestorm it is displayed in the upper right hand corner of the viewer) and to adjust the graphics settings (especially draw distance, shadows and quality sliders) until you have around 100fps (and definitely more than 50fps) and then try VR.

You may need to disable “vsync” in Settings -> Graphics -> Hardware as if this is on (the default) the FPS is capped to the frame rate of your 2D monitor (often 60fps, meaning in VR you would get less than 30fps).

Firestorm includes an “Improve Graphics Speed” performance tool and facilities to autotune the FPS which may be helpful. See advice on FPS improvement and the new “Performance Floater” and “FPS Autotune” capabilities in <a href="http://“>Beq Janus’s Blog Post (21-Mar-2022).

To improve frame rate (FPS) you might opt to set shadows to “None”, Water reflections to “None: Opaque” and use a reasonably low draw distance appropriate to the scene. Also close viewer UI windows and tools and detach any HUDs you are not actively using. The rendering of Linden Water, the water surface and its effects, can significantly reduce frame rates. Setting water reflections to “None; opaque” which gives a big FPS boost whilst still leaving the water looking okay. In an extreme situation, and in an environment that makes sense such as a meeting room, disabling Linden Water entirely can boost frame rates. Do that via Advanced -> Rendering Types -> Water. If the Advanced menu is not shown use Settings -> Advanced -> Show Advanced Menu or World -> Show More -> Advanced menu.

Peter Kappler also suggests: Particles… a fireplace is going to eat 20 to 30 fps! So turn them off for VR.

Tips from David Rowe for using the CtrlAltStudio VR Viewer (which is no longer maintained) may also be relevant:

  1. To improve your frame rate, reduce your draw distance and/or tweak other display settings such as advanced lighting model, shadows, FOV, pixel density, etc.
  2. Make sure you don’t have Preferences > Graphics > Rendering > Limit Framerate enabled.
  3. To display avatar chat above avatars use Preferences > Chat > Visuals > Show chat in bubbles above avatars.
  4. With floating text you may want to adjust the distance the floating text fades at so that distant text is not so annoying in VR mode: Preferences > User Interface > 3D World > Floating text fade distance.

C O N T R O L L E R S

Currently, specialised VR Controllers are not supported, but a range of game controllers and 3D navigation devices do work where supported by the normal viewer code.

Xbox One Controller

An Xbox One controller as used with the Oculus Rift (or an Xbox 360 controller) can be enabled, as usual, in Firestorm via Preferences -> Move & View -> Movement -> Joystick Configuration -> Enable Joystick.

You will probably find the controls are under or over sensitive, or some buttons and triggers don’t do what you expect. See this blog post and the image here (click for a larger version) for some suggestions as to how to amend the settings…
https://hugsalot.wordpress.com/2012/12/03/joystick-settings-for-firestorm-with-xbox-360-controller/

You might want to enter “-1” rather than axis “5” as an indication that axis is not mapped. With the setup suggested the “A” button toggles between the normal avatar view and “FlyCam” mode allowing you to move the camera separately to the avatar.

3D SpaceNavigator or SpaceMouse

As with all versions of Firestorm, the viewer supports other forms of “joystick”. One is the 3Dconnexion SpaceNavigator (aka SpaceMouse) which is a “3D mouse” supporting both avatar motion and by clicking the left hand button the separate “FlyCam” camera control.

My recommendation is to install the SpaceNavigator just by plugging it into Windows and receiving default Windows drivers for the device. I do not install any special SpaceNavigator drivers as suggested on the Second Life Wiki, some of which are incompatible with Second Life viewers.

S O U R C E

This version of Firestorm VR Mod 6.4.12.62831 is based on the Firestorm source code at Commit r63477:5b44308aee43 (Wed, 02 Dec 2020 21:32:05). Firestorm source is available at https://vcs.firestormviewer.org/phoenix-firestorm. Look under “Commits” and select the branch for Firestorm_6.4.12 (link here).

With Firestorm VR Mod Peter Kappler uses a coding approach which injects VR capabilities into the Firestorm Viewer to make the mod easier to maintain in future and for others to repeat or adapt. The source is available from his web page at https://gsgrid.de/firestorm-vr-mod/ [Local Copy].

Impressively, the source is written in a way that it requires only some editing in the llviewerdisplay.cpp and adding 2 files to the project. All changes are marked with #####P373R##### comments. Peter also included the openvr header and lib files you will need in the rar. For information about the rest of the files you will need, read how to compile Firestorm at https://wiki.firestormviewer.org/fs_compiling_firestorm.

Note that the VR Mod source remains stable since version 6.3.3 and that no changes are needed for insertion into later versions of Firestorm to date.

The GitHub Actions (GHA) source by @HumbleTim used to combine Firestorm source and Peter Kappler’s P373R VR Mod addons and build it using Visual Studio 2019 is available via https://github.com/humbletim/firestorm-gha.

V R L A N D – T E S T   A R E A

VRLand on OSGrid is a metrics area for performance testing and to establish virtual field of view in your VR headset.

hop://hg.osgrid.org:80/RuthAndRoth/16/16/1000

More detail at: https://blog.inf.ed.ac.uk/atate/2016/07/20/vrland-a-community-and-test-region-for-virtual-reality-in-virtual-worlds/

You can also pick up a VR Headset attachment for your avatar in OpenSim on the OSGrid on both the RuthAndRoth and (if available) the VRLand regions. Or in Second Life pick up the VR HMD on the Second Life Marketplace. The 3D models of the Oculus Rift were provided for free use by William Burke (MannyLectro) and imported to OpenSim by Michael Cerquoni (Nebadon Izumi) and Second Life by Ai Austin.

Pages