Second Life – Duet Using Suno.ai
https://maps.secondlife.com/secondlife/Yawgoo/84/96/2992
An installation by technorabbit in Second Life. Replicants Duet between Deckard and Rachel inspired by Bladerunner
Information from YouTube Video description: This demonstration makes use of https://suno.ai to generate the voices and backing track for a duet between Deckard and Rachel inspired by Bladerunner. Various sub-themes were combined into a poem. A chorus or two were used to rewrite the poem into a song, which was then fed into Suno.AI to generate the audio. The arm and lip movement was derived from automated closed caption tooling.
While suno.ai might have done the singing, the lyrics come from human sources; and then there is costuming, direction, post-production, scouting venues, and many more aspects than the singing. The video is shot in Second Life because 3D settings and production costs are so low — there are just so many creative and fully built out venues available.
Three Hills Grid – Pandora
There are many wonderful Na’vi/Avatar themed virtual world regions in Second Life and OpenSim. See some examples in my log posts https://blog.inf.ed.ac.uk/atate/?s=na’vi
A new one for my exploration is the Iknimaya region on Three Hills Grid, an OpenSim DreamGrid-based installation. Explore the region, its flora, fauna and the clans of Iknimaya. Pick up some of the free items of Na’vi apparel.
https://opensimworld.com/hop/83767
hop://three.hills.grid.outworldz.net:8002/iknimaya/107/121/23
Blender – Fix Mirrored Parts Shading Issues
I am getting shading/colour issues on glTF exports of parts in Blender models that were probably created in the far distant past as a mirror of an airplane wing or piece on one side transposed to the other. The “broken” parts sometimes look dark or black in Blender at other times they may be normally coloured. For some parts I was just able to duplicate and mirror the part again in Blender 4.1.1 to replace a broken object and that worked fine. But some parts cannot be mirrored.
I can’t see what the difference is between each side, but when I export to glTF (for example) in the Khronos viewer the parts shows as a grey colour versus the proper colour of the other side. I checked and there is no negative scale on the piece. I also flipped face normals (both ways!) but that made no difference.
I have checked a glTF export of the Blender model in the Khronos glTF Sample Viewer and in the tool’s Debug Settings the faulty part does have different “Shaded Normals”, “Geometry Normals”, “Geometry Tangents” and “Geometry Bitangents”.
I wonder if anyone has seen this and knows the trick to correct it?
Ideally I want to be able to fix the model in Blender, be able to export as glTF and have that work in the Khronos glTf Sample Viewer without shading issues. The have a process clear enough ton be able to repeat on other models with similar issues. As well as document that process here to help others in future.
X-15 Rocket Plane Test Model
This occurs on multiple Blender models, but one sample X-15 rocket plane model that exhibits this behaviour is the “X-15-1” by TaffGoch on 3D Warehouse
https://3dwarehouse.sketchup.com/model/a3a3a3d2ccc590eeaef99de91a3e555/X-15-1
Khronos glTF Sample Viewer and Debug Views
Discussions and Online Suggestions
https://forum.unity.com/threads/symmetric-models-with-mirrored-normal-maps-shader-fix.65859/
https://www.reddit.com/r/opengl/comments/sectzr/i_suspect_the_loaded_model_tangent_bitanget_and/
These posts clearly are exploring the right area, so it is likely its something to do with normals, tangents and bitangents! But all the suggest I tried in here (that I can understand) have not worked, eves the idea of exporting via FBX and reimporting.
glTF Abstract Art – Exploded Oil Rig Model Parts
Exploded Oil Rig Model Parts in Second Life Project Gltf Development 7.1.7.9103672349 (16-May-2024)
When a glTF model is loaded into the Second Life glTF mesh capable viewers that are under development the parts can be stretched out, rotated or misaligned. This occurs right up to 17-May-2024 e.g. in in Second Life Project Gltf Development 7.1.7.9103672349. But the effect produced is almost like an abstract painting.
The issue is being corrected and the model loads without distortion in glTF Upload version – Second Life Test 7.1.7.9121781241 (17-May-2024)
Test at 4-Jun-2024
Second Life Release 7.1.8.9296076745 (Materials Featurette Release Candidate) still has the exploded parts issue. Second Life Project Gltf Development 7.1.8.9309468311 (Test Viewer) displays the Oil Rig correctly.
OpenSim – Server Quick Start
OpenSimulator (often shortened to OpenSim) is an open source virtual world platform which implements most of the Linden Lab Second Life virtual world protocols and extends it in some ways convenient for educational and other extended uses. This blog post describes a quick start to get a locally hosted server up and running.
Simple Start (standalone on localhost using SQLite)
Use last formal release in precompiled binary from http://opensimulator.org/wiki/Download#Current_release
Unzip it and run bin/OpenSim.exe and answer the questions for the initial region and admin avatar setup. Except for specifying an initial region name most can just be set to their defaults. Don’t leave the initial user password blank as viewers usually insist in a password being entered to login.
Use localhost:9000 as the grid name to login. If necessary add this to the grids available in any OpenSim capable viewer (such as Firestorm via Viewer -> Preferences -> OpenSim).
Latest Dev Master Version (standalone on localhost using SQLite)
Download latest Dev Master source from http://opensimulator.org/viewgit/?a=shortlog&p=opensim
runprebuild and compile using Dotnet8 (Visual Studio 2022 Community Edition).
See https://blog.inf.ed.ac.uk/atate/2024/04/21/opensim-using-net-8-0/
Rename bin/OpenSim.ini.example to OpenSim.ini
Rename bin/config-include/FlotsamCache.ini.example to FlotsamCache.ini
Rename bin/config-include/osslEnable.ini.example to osslEnable.ini
Rename bin/config-include/StandaloneCommon.ini.example to StandaloneCommon.ini
Run bin/OpenSim.exe and answer the questions for the initial region and admin avatar setup. Except for specifying an initial region name most can just be set to their defaults. Don’t leave the initial user password blank as viewers usually insist in a password being entered to login. Note through that if yo forget this you can use the “reset user password” OpenSim console command to set any user password afterwards.
Use localhost:9000 as the grid name to login. If necessary add this to the grids available in any OpenSim capable viewer (such as Firestorm)
Getting fancier – mods to OpenSim.ini:
uncomment line [Messaging] StorageProvider = OpenSim.Data.MySQL.dll for messaging support.
Add Content – OARs and IARs
Content can be added via OpenSim Archives (OARs) and Inventory Archives (IARs). E.g. to load the OpenVCE OAR… use this command in the OpenSim.exe console:
load oar https://openvce.net/resources/downloads/opensim-openvce.oar
You can then pick up a box with sample avatars, etc.
Enabling Hypergrid
Can be added in so long as you have an externally accessible IP or domain name. Canyouseeme.org provides a web page that will display the current IP address your network is on. You usually have to set up the firewall and port forwarding on your internal network and router to the computer you are using to host OpenSim.
There are “Dynamic DNS” services that map a such as Outworldz.net that provide a facility to set up stable domain names where your own IP address might be frequently changing. See this link for more details. That facility is also built into Fred Beckhusen’s DreamGrid distribution of OpenSim.
Firestorm grids.xml at May 2024
Firestorm has a file named grids.xml giving an initial list of grids which can be selected in the “Grid” drop down menu for login. As at May 2024 it has about 25 OpenSim grids and the Second Life main (Agni) and Second Life Beta (Aditi) grids. Firestorm provided a web page where grid owners could ask for entries to be added (no longer active). But over the years the grid.xml list has contained little used and even no-longer exiting grids. The Firestorm development team commented that it was difficult to know which entries to add or remove and felt it would be something that the OpenSim community itself might be able to manage or assist with. This blog post provides resources that may be useful.
Latest Firestorm GitHub source location of grids.xml:
https://github.com/FirestormViewer/phoenix-firestorm/blob/master/indra/newview/app_settings/grids.xml
Grid Manager Grid List Presentation Process
user_settings grids.user.xml is seeded from app_settings grids.xml (minus all DEPRECATED entries) on first actual login (or change in the Preferences -> OpenSim grid list). New grid entries you add are placed in that file. Grid Manager entries you delete are marked as “USER_DELETED” in grids.user.xml and are hidden from the grids list presented to the user.
user_settings grids.remote.xml is created each time you run Firestorm and set from a remote file named http://phoenixviewer.com/app/fsdata/grids.xml on the Firestorm servers. It allows the Firestorm team to be able to remotely add new grids to the viewer grid manager without having to issue viewer updates. See https://wiki.firestormviewer.org/fsdata_communications
Each entry has a timestamp and that is used to determine the correct version of a given grid to use. That allows the Firestorm team to update on the website (historically) which would override the locals, but the more usual case is the locals override the server.
Any change to the app_settings grids.xml needs to be made also at http://phoenixviewer.com/app/fsdata/grids.xml or the remote entries will continue to show in the Grid Manager unless the user has explicitly deleted them in the Preferences -> OpenSim Grid manager list.
Firestorm app_settings: %programfiles%\FirestormOS-Betax64\app_settings
Firestorm user_settings: %AppData%\Roaming\Firestorm_x64\user_settings
Adding a Grid to the Grid list which Firestorm Uses
Firestorm menu Viewer -> Preferences -> OpenSim allows grids to be added just by entering their loginURI. This then asks the grid itself (which must be online at the time) for other information as needed.
Firestorm also provides a way for any grid owner or user to provide a link which when clicked will automatically add the grid to the list to be used by Firestorm for grid selection:
hop:///app/gridmanager/addgrid/http%3A%2F%2Fyour-grid.com%3A8002
Note the use of three slashes. The hop:// protocol is normally registered to launch the Firestorm viewer at the time it is installed. secondlife:// may also be used but you may have registered that to a Second Life only viewer. The last part of the URL is the URL-encoded grid login URL with : (%3A) / (%2F) and spaces (%20) encoded. Note the port is required even if the loginuri for the grid leaves it optional :80.
grids.xml as at Firestorm 7.1.7.73900 Beta (13-May-2024)
OpenSim Grids:
alternatemetaverse.com:8002
astralia.eu:8002
cc.opensimulator.org:8002
craft-world.org:8002
discoverygrid.net:8002
fireandicegrid.net:8002
gaynations.org:7002 (DEPRECATED)
goto.theencoreescape.com:8002
grid.3rdrockgrid.com:8002
grid.avacon.org:8002
grid.kitely.com:8002
grid.virtualife.cloud:8002
grid01.from-ne.com:8002 (DEPRECATED)
hypergrid.org:8002 (closed in June 2022)
islandoasisgrid.biz:8002
lfgrid.com:8002
login.aviworlds.com:8002
login.digiworldz.com:8002
login.francogrid.org:80
login.greatcanadiangrid.ca:8002 (DEPRECATED)
login.osgrid.org
login.ufsgrid.com:8002 (DEPRECATED)
login.zetaworlds.com
login.zonenations.com:8002
login.main.mobiusgrid.us:8002 (DEPRECATED)
partydestinationgrid.com:8002
tanglegrid.net:8002
thekazgrid.com:8002
grid.alifevirtual.com:8002 (DEPRECATED)
www.alifevirtual.com:8002
grid.avatarconnection.com:8002 (DEPRECATED)
grid.roleplayworlds.net:8002 (DEPRECATED)
inworldz.com:8002 (DEPRECATED)
login.avination.com(DEPRECATED)
login.danger.osgrid.org (DEPRECATED)
reactiongrid.com:8008 (DEPRECATED)
login.aurorascape.com:8002 (DEPRECATED)
vidadupla.com.br:8002
Second Life Grids:
util.aditi.lindenlab.com (Beta)
util.agni.lindenlab.com (Main)
Tidy Up Stages and Process
The initial idea is to simply do a tidy up and not try to remove any active entries already there.
- Leave all entries “as is” if the grid is not closed and if their loginURI or root web site is accessible, even if some are showing certificate or other issues currently. See checks below.
- List closed or inaccessible grids as “DEPRECATED”.
- PR 15 Addition (top recently active grid on Hypergrid Business OpenSim Statistics) – grid.wolfterritories.org:8002
- Add localhost:9000 to defaults grid list for easy “out of the box” OpenSim initial setups.
- Make a change to the splash page for Second Life Beta Grid. See below. NOT ENACTED after discussion and improvement to Firestorm custom splash page.
Other checks will depend on OpenSim community feedback and usage statistics and should be left to a later stage.
Entries No Longer Accessible marked as DEPRECATED
The following Grids had issues on test, but most had their base domain name still active. Only those actually closed down or whose domain is now not related to the OpenSim Grid will be removed in this phase.
3rd Rock Grid at grid.3rdrockgrid.com:8002
(Certificate error, web site still exists)
(Grid has indicated it is closed from May 2024)
(Community move to regions on ZetaWorlds.com)
Francogrid at francogrid.org
(Servers down since March 2022, site hopes to reopen)
Island Oasis at islandoasisgrid.biz:8002
(URL issue? Chrome security check issue)
Metropolis Metaversum at hypergrid.org:8002
(Grid closed in June 2022)
Tangle Grid at tanglegrid.net:8002
(Grid closed. Domain name for sale)
The Encore Escape at goto.theencoreescape.com:8002
(theencoreescape.com domain name sold to a legal business)
Virtuallife World at grid.virtualife.cloud:8002
(URL issue for loginpage page but server responds)
Zone Nations at login.zonenations.com:8002
(URL issue for loginpage page but server responds)
Hence only 3rd Rock Grid, Metropolis Metaversum, Tangle Grid and The Encore Escape should be marked as DEPRECATED at this stage. ZetaWorlds.com is being used as a 3rd Rock Grid community hub and some members have moved to (see this HG Safari Blog Post. It is already in the grid.xml list.
In case any of the four removed grids are needed in future, these are the “addgrid” links which will add them back to the Firestorm Grid Manager list.
3rd Rock Grid: grid.3rdrockgrid.com:8002
Metropolis Metversum: hypergrid.org:8002
TanGLe Grid: tanglegrid.net:8002
The Encore Escape: goto.theencoreescape.com:8002
hop:///app/gridmanager/addgrid/http%3A%2F%2Fgrid.3rdrockgrid.com%3A8002
hop:///app/gridmanager/addgrid/http%3A%2F%2Fhypergrid.org%3A8002
hop:///app/gridmanager/addgrid/http%3A%2F%2Ftanglegrid.net%3A8002
hop:///app/gridmanager/addgrid/http%3A%2F%2Fgoto.theencoreescape.com%3A8002
See this Wik page: https://github.com/metaverse-crossroads/hypergrid-junction/wiki/Links-to-Add-Grids-for-Viewers
Inclusion by Default of localhost:9000
I think it is useful to include the default (essentially “as it come out of the box”) locally hosted standalone variant of OpenSim (loginURI: localhost:9000), as that is a mode that an initial OpenSim server user may first try.
Refinement of handling of Second Life Beta Grid Entry/Splash Page (Aditi)
Firestorm uses a custom “loginpage” entry/splash page for the main (Agni) grid at https://phoenixviewer.com/app/loginV3/ rather than the usual Linden Lab provided entry at http://viewer-login.agni.lindenlab.com/
But it also uses this same URL for the Second Life Beta grid (Aditi) which I think is not as helpful as the display of a Beta grid specific entry page that is used from http://viewer-login.agni.lindenlab.com when the Second Life Beta grid is selected gives more useful user information when the Second Life Beta grid is selected.
This is part of the advice from the Discord Second Life Server “#viewers” channel on 17-May-2024 by Journey Bunny… To implement this the agni web page has a whole host of elements of class or id “non-prod-grid-msg”
Update 18-May-2024: NOT ENACTED after discussion and improvement to Firestorm custom splash page as in the following image:
Second Life Beta Grid loginpage: https://phoenixviewer.com/app/loginV3/
Second Life Main Grid loginpage: https://phoenixviewer.com/app/loginV3/?grid=Aditi
Potential resources to get input from the OpenSim Community
- Hypergrid Business – OpenSim Statistics
- OpenSim Wiki – Grid List
- GitHub Organization – Metaverse-Crossroads (Hypergrid Junction Repository)
- Discord – OpenSimulator Channel [Invite]
- OpenSim Mailing Lists (opensim-dev, opensim-users)
- Example requests to add to Firestorm grids.xml List – GitHub Pull Request 15, JIRA FIRE-32421
- Hypergrid Travellers: HG Safari, Hypergrid Adventurer’s Club and Discord (Hypergrid Explorers & Creators)
Update 2-Jun-2024: Firestorm Grid Add Mechanism Changed
On 2-Jun-2024 the Firestorm 7.1.8 Beta changed to include a mechanism for adding grids based on the Hypergrid Business monthly updated grids list. The page presented to the user when adding a grid uses a Python script to take the information in the Hypergrid Business monthly updated active grids list. The contents shown can be filtered by typing any partial grid name. Information on how to add your grid to this list is provided here. The web page presented is directly accessible at: https://phoenixviewer.com/app/fsdata/fs_grid_builder.html
Batmobile 3D Model
Based on Batmobile on Sketchup by Sam146 (https://sketchfab.com/sam146)
https://sketchfab.com/3d-models/1966-batmobile-744a9b83b392454897d296c2919f1f91
Blender import of Collada original model and textures, conversion to power of 2 textures, flipping many normals to regularise the appearance of the model and additions to more closely resemble the 1966 TV series Batmobile. glTF exportfor use in various platforms including Second Life.
Batmobile in Second Life glTF Mesh Viewer
Metaverse Crossroads
Metaverse Crossroads is a GitHub Organization to collect together a range of resources to help promote Metaverse and linked virtual world activities and experiences. It was created by @Humbletim.
https://github.com/metaverse-crossroads
Early work includes a fix (Github link) to improve the handling of the hop:// protocol (see this blog post) for teleports between different grids and regions via the Hypergrid in response to a number of Firestorm JIRA issues (FIRE-31368,
FIRE-29276).
glTF Exports from Unity
Testing glTF Export capability in Unity via glTFast. To install the Unity glTFast package, follow these steps:
- In your Unity project, go to Windows > Package Manager.
- On the status bar, select the Add (+) button.
- From the Add menu, select Add + package by name. Name and Version fields appear.
- In the Name field, enter com.unity.cloud.gltfast
- Select Add.
- The Editor installs the latest available version of the package and any dependent packages.
In the project select the item(s) you wish to export and right click on that or choose from menu Assets > Export glTF > choose .glb or .gltf.
ISS
ISS: glTF summary: 1626041 bytes JSON + 129848428 bytes buffer, 5660 nodes ,669 meshes ,862 materials ,332 images
RGU Oil Rig
RGU Oil Rig: glTF summary: 9567175 bytes JSON + 69171695 bytes buffer, 12157 nodes, 9400 meshes, 4408 materials, 90 images
Pisten Bully 100 and 300
Pisten Bully 100: glTF summary: 2273440 bytes JSON + 34579260 bytes buffer, 3874 nodes, 3158 meshes, 55 materials, 10 images
Pisten Bully 300: glTF summary: 1441536 bytes JSON + 10762811 bytes buffer, 2533 nodes, 1506 meshes, 35 materials, 10 images
Fallingwater
Fallingwater: glTF summary: 5183165 bytes JSON + 21756759 bytes buffer, 37292 nodes, 1589 meshes, 89 materials, 52 images
Power of 2 Images
It is sometimes the case that images have to have each side be a power of 2 to load correctly. There is a tool that can be used on images to do this. Use it prior to exporting the glTF from Unity to ensure that texture images will be portable.
- Power of 2 Image Resizer for Windows by RyanAWalters on GitHub
- https://github.com/RyanAWalters/PowerOf2ImageResizer
- After installing, you can right click on an image or set of selected images and use “Resize Image(s) to Power of 2”.
PalmPilot
I got my first PalmPilot in 1997. Purchased at CompuTown in Market Street, San Francisco. And via various models (IIIc, Tungsten C and others) I still use my Palm Tungsten T5 today (in 2024). This blog post provides some links and resources relating to Palm devices.
- Wikipedia- List of Palm OS devices
- Palm OS and the devices that ran it: An Ars retrospective – Blog Post by Cameron Kaiser, 25-Apr-2024.
Palm Desktop 4.1.4E for Windows
This software enables Palm devices to HotSync with Windows Desktop right up to 2024. A Palm Desktop Version 6.2 is also available online.
- https://palmdb.net/app/palm-desktop
- https://www.companionlink.com/support/kb/How_To_Set_Up_Palm_Desktop_On_Windows_10_and_Windows_11
Palm Emulators
Fantasy Faire 2024 in Second Life
Twenty regions for the Fantasy Faire April 18 to May 5, 2024 in Second Life to support American Cancer Society’s Relay For Life fundraising.
https://fantasyfairesl.wordpress.com/2024/04/18/welcome-home-to-the-fairelands/
OpenSim using .NET 8.0
From 21st April 2024 OpenSim is using .NET8.0. The NET8.0 SDK, runtime and necessary compiler tools can be made available by installing or updating to Visual Studio 2022 Community Edition version 17.9.6 or later and installing the .NET SDK 8.0.
To opt out of Microsoft gathering of .NET 8.0 compile information use Right click on “This PC” icon -> Properties -> Advanced System Properties -> Environment Variables and add or change DOTNET_CLI_TELEMETRY_OPTOUT to 1 or true. This must be done BEFORE installing the .NET 8.0 SDK (or rerun the installer after setting the variable).
Install the .NET 8.0 SDK from https://dotnet.microsoft.com/en-us/download/dotnet/8.0
Then on the OpenSim source use runprebuild.bat and compile.bat
Thunnus Bay in Second Life
Thunnus bay is a Fantasy Fair 2024 (Relay for Life) region in Second Life. It uses atmospheric visuals and environment, a superb soundscape and a range of charity shopping experiences.
http://maps.secondlife.com/secondlife/Thunnus%20Bay/99/156/63
ESA Lunar Horizons in Fortnite
ESA Blog Post on Lunar Horizons in Fortnite, 11-Apr-2024
The European Space Agency (ESA) Lunar Horizons experience is available in Fortnite, where it launched using code 3207-0960-6428 or by searching for ‘Lunar Horizons’ in Discover. Released on 11-Apr-2024, the game was created by Epic Games, ESA and Hassell, in collaboration with Buendea and Team PWR.
The game play is the usual formula of quests to gather resources and tools and build things. The player’s clothing would not let them last long on the Moon, but maybe a space suit is available.
glTF Mesh Tests in Second Life
Linden Lab is in the process of adding glTF 3D model support to Second Life, starting initially with PBR materials and moving on to full mesh and scene import. As part of this effort a test viewer is available that lets you locally load a glTF mesh or scene (multiple meshes). The contents are visible only to yourself and not saved. @davep (Runtai Linden) has stated that the eventual aim is to be able to import anything as it shows in the Khronos glTF Model Viewer or in Adobe Substance.
The tests following were carried out on Second Life Test 7.1.6.8639241871. Remember this is early days and it will be some time before this capability makes it way into normal use in Second Life (and possibly at some stage OpenSim).
glTF Mesh Loading Method
Though the method by which glTF meshes are loaded will change, for test purposes the following procedure should be used.
- Create a simple prim, such as a cube and scale it to 1.0m. The scale is used to set the scale of the mesh that will be imported. So 0.5m would be 50% scale. 1.0m would be 100% scale.
- Edit the cube to select it as the target to attach the glTF mesh.
- Use Develop -> Render Tests -> glTF Scene Preview to select a .gltf or .glb file containing your model.
- Rotate or move the object as necessary. Also scale as you wish.
- Make the root prim be 100% transparency to hide it.
- You can link other prims or mesh objects to the newly loaded mesh if you wish (e.g. to add scripted seats to a vehicle).
A short video by @davep (Runtai Linden) shows the process [Video (MPEG4) via Discord]
Potted Plants Meshes
Sketchfab – Optimized Potter Plants by by Nicholas-3D (@Nicholas01)
Suggested by @davep (Runtai Linden) as a free test mesh.
https://sketchfab.com/3d-models/optimized-potted-plants-967b4bf23fac4098993776fcfc2d3318
Ready Player Me glb Avatars
Ready Player Me (https://readyplayer.me) avatars are made available as .glb meshes, ready rigged (with Mixamo compatible skeletons) and PBR materials. They appear to load fine in the test viewer. Of course the rigging is not operational at this stage.
This avatar is available in .glb format via
https://models.readyplayer.me/6619152aaaa958d48f2143ee.glb
Supercar Mesh
I tested with my usual Gerry Anderson’s Supercar detailed mesh (around 250K triangles) which in its .glTF or .glb format works fine in the Khronos glTF Model Viewer. In the Khronos glTF Model Validator it gives a warning that the texture images are not set at a power of 2 for each side.
- The textures initially did not load, but when converted to a power of 2 for each side they did load fine.
- Textures are not a power of 2 and do not load. A set of replacement textures that are Power of 2 are provided. These can be replace the textures created on glTF export from Blender.
- Each side has 9 yellow cooling vanes, some did not show in early tests.
- There is a chrome fuel filler cap on the rear fuselage top. Only the left side showed in early tests.
- The nose spike and ball are showing near the centre of the model in early tests.
- Parts of the wing structure and its spike do no show in early tests.
- The rear fuselage aerial is out of position in early tests.
- The black seal at the front of the canopy is out of position in early tests.
- A large cylinder appears in the middle of the model in early tests.
- Many parts are grey. The canopy and lights transparency is not retained. Most of the simple colouring and alpha applied to parts that do not have textures is not showing in early tests.
The Supercar model as it appears in the Khronos glTF Model Viewer is as follows:
The large cylinders that appear in the imported model appear to come from parts added late to the model, and which were created at the top level of the model parts list. They were then reparented to a relevant parent part. It could be that some sort of modifier application was not done in a uniform way. For the core Supercar model they were the end stops for the lower fuselage piping and the seven Hidem bands on the front seat. For some of the addon parts lie the rocket gun and magnetic grabs some parts also appear as large cylinders or large boxes. Applying all modifiers to some part (like the lower fuselage piping end stops) fixed some of these issues, but not all. Setting the part origins to the their geometry centre does not seem to be a fix.
Update 18-Apr-2024 – Second Life Test 7.1.6.8728758920 on Aditi Beta Grid Rumpus Room 2024
The update to Second Life Test 7.1.6.8728758920 has improved the preview loading of glTF meshes with most objects correctly rendering in position and scaled properly (just a few items that seem to not have “All Transforms” applied or parenting issues remain). But the main advances is that now all textures and colours are correctly applied.
Update: 19-Apr-2024 – Second Life Test 7.1.6.8757430447 – glTF Mesh Element Editing
Version Second Life Test 7.1.6.8757430447 starts to provide an ability to edit separate parts of a glTF model.. Movement of parts is possible, but not yet separate rotation or scaling.
Black Rock Lab Mesh and Mike Mercury Statue Meshes
The Black Rock Lab (BRL) glTF meshes exported from the Blender models for exterior and interior and the Mike Mercury Statue also import and preview reasonably well after applying all transforms to the parts. Textures are largely missing as they will not (yet) be power of 2.
Update: 29-Apr-2024 – Second Life Release 7.1.7.8852879962
As at Second Life Release 7.1.7.8852879962 on 29-Apr-2024 Supercar, Mike Mercury figure and Black Rock Lab interior and exterior are all rendering quite well. The Black Rock Lab textures are not yet showing as many are not set to a power of two.
glTF Mesh Data
Supercar with Extended Wings
-
Meshes (Nodes): 1501
Vertices: 510174
Triangles: 273230
Opaque Materials: 54
Transparent materials: 4
Supercar with Both Wings, All Accessories and Blast Wall
-
Meshes (Nodes): 1549
Vertices: 545014
Triangles: 293157
Opaque Materials: 2
Transparent materials: 0
Mike Mercury Figure
-
Meshes (Nodes): 4
Vertices: 42606
Triangles: 24415
Opaque Materials: 63
Transparent materials: 4
Black Rock Lab Exterior
-
Meshes (Nodes): 891
Vertices: 68412
Triangles: 39037
Opaque Materials: 31
Transparent materials: 1
Black Rock Lab Interior
-
Meshes (Nodes): 1415
Vertices: 455142
Triangles: 181935
Opaque Materials: 88
Transparent materials: 0
Convai Characters for Virtual Worlds
Convai (pronounced “convey”) enables virtual world and game characters with human-like conversation capabilities. They can be integrated into various platforms including Unity, Roblox and Second Life. On some platforms Ready Player Me avatars can be used.
https://www.convai.com/
Discord Support Channel
Convai Connect
Sample Convai bots to chat to on beach at Darcy’s Clubhouse in Second Life
http://maps.secondlife.com/secondlife/Darcys%20Clubhouse/184/20/22
Taking to the Surf
[02:49] Ai Austin: Hi there
[02:49] BukowskiDude: Heyo!
[02:49] BukowskiDude: What’s the good word, my friend?
[02:49] BukowskiDude: Stoked to be here at your service, ready to talk story or catch a wave.
[02:49] BukowskiDude: What’s on your mind?
[02:49] Ai Austin: I wonder what is the best way to surf here?
[02:49] BukowskiDude: Man, surfing’s not just about the physical, it’s a mental game, a spiritual journey.
[02:49] BukowskiDude: The best way to catch a wave here at Castaway Cove?
[02:49] BukowskiDude: It’s all about feeling the rhythm of the ocean, respecting the tides, and letting the board become an extension of your soul.
[02:49] BukowskiDude: The waves will teach you if you’re willing to listen.
[02:49] BukowskiDude: Ready to learn?
[02:50] Ai Austin: Yes
[02:50] BukowskiDude: Right on!
[02:50] BukowskiDude: So, are you familiar with surfing, or should I share some tips on how to get started with the island’s unique waves?
[02:50] Ai Austin: Just surfed for real a few times on small waves.
[02:50] BukowskiDude: That’s cool, man!
[02:50] BukowskiDude: So, for these waters, remember to paddle out past the break, find your spot where the waves start to form, and then, when you feel that energy beneath you, that’s the time to pop up and ride the line.
[02:50] BukowskiDude: It’s all about balance and reading the sea.
[02:50] BukowskiDude: The more you do it, the more you’ll understand the rhythm of this place.
[02:50] BukowskiDude: Ready to catch a wave?
[02:50] Ai Austin: yes
[02:50] BukowskiDude: I dig your enthusiasm!
[02:50] BukowskiDude: If you need a board, just let me know.
[02:50] BukowskiDude: Otherwise, I’ll be right here, watching the sets roll in.
[02:50] BukowskiDude: So, are we heading out?
[02:50] Ai Austin: yes
[02:51] Ai Austin: I need a board
[02:51] BukowskiDude: All right, let’s do this!
[02:51] BukowskiDude: Remember, the key is to flow with the ocean’s song.
[02:51] BukowskiDude: I’ll lead you to the water’s edge, and from there, it’s just you, the board, and the great blue expanse.
[02:51] BukowskiDude: No worries, I’ll get you set up.
[02:51] BukowskiDude: Follow me, and let’s paddle out to where the magic happens.
[02:51] BukowskiDude: Just stay ready to catch that wave!
[02:51] BukowskiDude: Ready to ride?
[02:51] Ai Austin: yes
[02:51] BukowskiDude: Hang tight, I’m on it.
[02:55] Ai Austin: Right, that was rad man
[02:55] BukowskiDude: stoked I could help, man!
[02:55] BukowskiDude: Now you’re ready to carve the sea and dance with the waves.
[02:55] BukowskiDude: If there’s anything else you need, just let me know.
[02:55] BukowskiDude: Otherwise, may the surf be with you!
Convai Characters in Unity
Plugin and demo download link – https://docs.convai.com/api-docs/plugins-and-integrations/unity-plugin/downloads
Using the sample Unity project provided you can interact with the “Amelia Johnson” avatar (you need to move close enough that the interaction box appears) via a headset in voice (holding down the “T” key) or via text chat (use ESC, click mouse over text chat box and type there). You can also ask her to open or move the box and ball, etc.
Then use of a Ready Player Me avatar in the demonstration scene…
Convai Mobile Playground
Convai NPCs in Second Life
Can Convai’s Intelligent Bots Help Grow Second Life’s User Base? – Blog post in New World Notes by Wagner James “Hamlet” Au, 21-Mar-2024.
Convai’s AI-Powered Second Life Bots – Blog post in New World Notes by Wagner James “Hamlet” Au, 26-Mar-2024.
Snowy Valley Cafe in Second Life
Visit the Snowy Valley Cafe in the Sansara Snowlands regions, a build by Sashe Silver.
http://maps.secondlife.com/secondlife/Nakiska/25/164/57
You can travel there via the Okemo, Nakiska, and Southern Railway (ONSR) maglev and rail network.
At the other end of the ONSR rail line near the Wengen Station you can find a Linden Chalet info hub and a ski lift to take you up the mountain. On the lake to the North West of the Wengen Station you can go ice skating. And in the surrounding mountains there is plenty of room to go downhill skiing.
http://maps.secondlife.com/secondlife/Wengen/20/214/86
http://maps.secondlife.com/secondlife/Toggenburg/45/236/203
Aurelias Fables in Second Life
A Second Life build by JuicyBomb (GoGo) and her collaborators. This is an update on an area I previously visited in Winter (see this blog post).
Firestorm VR Mod 6.6.17
Download link: https://github.com/humbletim/firestorm-gha/releases/
Firestorm VR Mod 6.6.17.70368 is the final Pre-PBR (Pre Physically Based Rendering) Viewer.
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).
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. This is experimental. Firestorm VR Mod is now available from https://github.com/humbletim/firestorm-gha/releases
For Firestorm VR Mod community support use the Discord Discussion Channel:
P373R-WORKSHOP by p373r_kappler [Invite]
Firestorm 6.6.17 + P373R VR Mod: This build includes P373R’s VR Mod 6.3.3 changes merged into the Firestorm 6.6.17.70368 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.
The Firestorm VR Mod viewer (for Windows only) is available as an .exe installer or as a .7z zipped file which can be unzipped to any directory and run from there without an install. If required, a free .7z unzip utility is available at https://www.7-zip.org/. Download the release for the latest version at https://github.com/humbletim/firestorm-gha/releases/
You need to install your usual VR Headset drivers and SteamVR. Firestorm VR Mod when run uses SteamVR which will launch any necessary VR headset specific underlying drivers.
Firestorm VR Mod is created using “GitHub Actions” (GHA) thanks to @humbletim and @thoys. Minor changes are made to the original VR Mod 6.3.3 code for the merge, which otherwise continues to be suitable.
The build uses the open source openal.dll audio library for sound and builds in the openvr_api.dll library for VR HMD connection.
Firestorm VR Mod has its own app and channel names “FirestormVR” and the install directory changed to “FirestormOS-VR-GHA” so the installation can exist side-by-side with stock Firestorm if desired. Settings and cache are shared with standard Firestorm. If you installed Firestorm VR Mod from an earlier version (up to 6.6.8) you can delete the now unused settings and cache directories: %APPDATA%\FirestormVR_x64 and %LOCALAPPDATA%\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 the config file which is located in
“C:\Users\your_user_name\AppData\Roaming\Firestorm_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…
- Firestorm VR Mod works best while sitting and using mouse and keyboard.
- WindowsMixedReality users may need to press windows key + Y to unlock the mouse when the HMD is worn.
- 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
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:
- Set IPD to 0 (zero)
- Then adjust Texture Shift until image is sharp and focused
- Then adjust IPD which separates your cameras to left and right to get a good 3D effect
@Sgeo on Discord provided a tool to help in calculating the settings for Firestorm VR Mod.. at least to give you a starting position to adjust to your taste…
Source of the calculator is at https://github.com/Sgeo/firestorm-vr-calculator
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%
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.
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).
Adjust Over-the-Shoulder Camera View to Suit Yourself
Sometimes in VR mode the camera will be too high or far back from the avatar. If so, press Esc a couple of times, then Shift+Esc a couple of times, or Ctrl + 9 resets the camera to its default position. Shift + scroll mouse button moves camera up and down. You can also set specific Debug Settings (Ctrl+Alt+Shift+S) for camera positions, e.g. “CameraOffsetRearView”. If that doesn’t help, see http://wiki.secondlife.com/wiki/Camera_Control
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:
- 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.
- Make sure you don’t have Preferences > Graphics > Rendering > Limit Framerate enabled.
- To display avatar chat above avatars use Preferences > Chat > Visuals > Show chat in bubbles above avatars.
- 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.
Firestorm source is available at https://github.com/FirestormViewer/phoenix-firestorm. Look under “Commits” and select the branch for the specific Firestorm version required.
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 Microsoft Visual Studio is available via https://github.com/humbletim/firestorm-gha.
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/1000More 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.
F5 Settings for Specific VR HMDs
- Oculus Rift DK1
- IPD = 65.0 (default)
- Focus Distance = 10.0
- Texture Shift = 0.0
- Texture Zoom = 0.0
- FOV = 100.0
- Oculus Rift CV1
- IPD = 65.0 (default)
- Focus Distance = 10.0
- Texture Shift = 25.0
- Texture Zoom = 0.0 (others report 86-200 works)
- FOV = 100.0
WebRTC – Resources
There is a proposal to replace Vivox voice with open-source WebRTC facilities. This blog post provides links and resources related to the use of WebRTC in Second Life and potentially in OpenSim.
- https://webrtc.org/
- Second Life Wiki – WebRTC Voice – Early access test viewers and test regions.
- Canny Feedback for /webrtc-voice
- Second Life Third Party Viewer Developers (TPVD) meeting on 15-Mar-2024, Announcement of WebRTC plans and Timescales Blog Post by Inara Pey.
OpenSim Requirements
Félix (Chaser.Zaks) on the Second Life Discord channel on 17-Mar-2024 said: “Server side shouldn’t be too complicated. You should just need a ICE and TURN server (see definition). ICE being the server that helps establish connections between two clients, and the TURN server being the relay between two clients The TURN would probably have some HTTP caps on it to do area isolations, LSL interfacing, etc and what not from the simulator side.”
MisterBlueGuy on the OpenSimulator Discord Channel on 30-May-2024 added: “For OpenSim (and thus SL), will probably be that the region would return to the client (probably in the login response) an URL to the ICE server to talk to along with some auth token. The client would talk to the ICE server to get the TURN server to connect through. So OpenSim would have to add some sort of ICE server (pretty simple as I did one for the Vircadia/Overte project) and either run TURN server for the grid or use one of the many available servers.”
An example free TURN (and STUN) service is available:
- OpenRelay for WebRTC TURN and STUN services – https://www.metered.ca/tools/openrelay/
Update 15-May-2024: Test Region on Second Life Main Grid
Second Life Community Blog – Coming to an Agni region near you, an update on changes to Voice! 15-May-2024