Austin Tate's Blog

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

glTF Exports from Unity

2024, April 29 - 18:00

Testing glTF Export capability in Unity via glTFast. To install the Unity glTFast package, follow these steps:

  1. In your Unity project, go to Windows > Package Manager.
  2. On the status bar, select the Add (+) button.
  3. From the Add menu, select Add + package by name. Name and Version fields appear.
  4. In the Name field, enter com.unity.cloud.gltfast
  5. Select Add.
  6. 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.

PalmPilot

2024, April 25 - 16:15

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.

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.

Palm Emulators

https://www.theverge.com/2022/11/25/23478396/internet-archive-palm-pilot-emulation-games-apps-dope-wars

Fantasy Faire 2024 in Second Life

2024, April 24 - 15:18


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

2024, April 21 - 10:15

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

2024, April 19 - 14:45

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

2024, April 11 - 20:00

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

2024, April 11 - 12:00

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.

  1. 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.
  2. Edit the cube to select it as the target to attach the glTF mesh.
  3. Use Develop -> Render Tests -> glTF Scene Preview to select a .gltf or .glb file containing your model.
  4. Rotate or move the object as necessary. Also scale as you wish.
  5. Make the root prim be 100% transparency to hide it.
  6. 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.



  1. The textures initially did not load, but when converted to a power of 2 for each side they did load fine.
  2. 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.
  3. Each side has 9 yellow cooling vanes, some did not show in early tests.
  4. There is a chrome fuel filler cap on the rear fuselage top. Only the left side showed in early tests.
  5. The nose spike and ball are showing near the centre of the model in early tests.
  6. Parts of the wing structure and its spike do no show in early tests.
  7. The rear fuselage aerial is out of position in early tests.
  8. The black seal at the front of the canopy is out of position in early tests.
  9. A large cylinder appears in the middle of the model in early tests.
  10. 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

2024, March 27 - 16:19

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

2024, March 26 - 14:52

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

2024, March 21 - 09:56

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).

https://maps.secondlife.com/secondlife/Aurelias/96/170/28

Firestorm VR Mod 6.6.17

2024, March 17 - 12:00

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]

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.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…

  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

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

@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.

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).

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:

  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

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

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.

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.

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

2024, March 17 - 11:24

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.

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

Teleport to “WebRTC Voice 1”


Scalextric – Le Mans 1966 Ford GT40 (C2529A)

2024, March 7 - 14:53

Scalextric Le Mans 1966 Ford GT40 3 Car Set created for the Goodwood Festival of Speed 2003. Manufactured approx. 2003. The cars are weathered to their race finish appearance.

  • First: Ford GT40 Mk.II No.1 – Bruce McLaren and Chris Amon
  • Second: Ford GT40 Mk.II No.1 – Ken Miles and Denny Hulme (Gulf Colours)
  • Third: Ford GT40 Mk.II No.5 – Ronnie Bucknum and Dick Hutcherson


Images from Ebay Items Purchased.

Scalextric Le Mans 1966 GT40s with Lights

The Scalextric Le Mans 1966 GT40s are equipped with front lights as they run.

Scalextric Track Length Calculator

https://www.drivearchive.co.uk/scalextric/

Based on the Scalextric Speed Hunters set basic figure of eight layout the two tracks lengths are identical at 15ft 11in. Adding eight radius 2 45° curves suitably positioned makes the layout be 21ft 11in, still with identical lane lengths. Adding a further ten standard straights makes the layout be 33ft 4in and both lanes have identical length.

OpenXR – Resources

2024, March 6 - 10:00

OpenXR is an API managed by the Khronos Group which provides a cross-platform way for applications to interact with immersive devices. This includes virtual reality (VR) headsets, augmented reality (AR) devices, motion controllers and more.

It may in time replace OpenVR and the openvr_api.dll library as a means of connecting applications like Firestorm VR Mod via SteamVR to VR Head Mounted Displays (HMDs).

The Nature Collective in Second Life

2024, March 1 - 11:38

Following a snapshot posted by @Wurfi on Twitter/X I thought “The Nature Collective” virtual world build by Emm Vintner and her team on Gealain region in Second Life would be worth exploring.

http://maps.secondlife.com/secondlife/Gealain/21/134/108

Kemlo and Krillie

2024, February 19 - 09:11

       

This is a blog post under development. It describes a background storyline for exploring AI tools for creators (leonardo.ai, scenario.com).

The Kemlo series is a collection of children’s science fiction and adventure novels written by E. C. Eliott published in 1954 to 1963. More information in this blog post. The new storyline is loosely based on the Kemlo books and takes place a few years after the adventures in the book series. This might lead one day, maybe, to a new Kemlo story and VR experience.


Situation – It is the month of May in a year in the future. Earth has an outer space presence in Earth Orbit, on the Moon and beyond. International United Nations entities are now preferred to nationalistic governments and other authorities. Education, cultural and Internet services are freely available everywhere funded by proportional contributions by all countries. Grants support the provision of equipment to access these resources where circumstances require it. The Internet is now a safe and welcoming place since the introduction of an international requirement for strong privacy protections and open source for any major platform. A Universal Basic Income is provided to everyone both on world and off world.

Belt K – An Earth orbit space habit spread over 20km including habitation, living spaces, educational areas, recreation, physical conditioning areas, manufacturing, solar power generation and storage, space agriculture and hydroponics in large domes (automatically positioned to maximise crop growing quality and time). Robotics and droids are used throughout the Belt. Children born on Belt K are given names starting with “K”.

Education – Space-born children begin their education and practice simulated space operations very early. Classrooms and experience areas allow for e-Learning (enhanced learning), VR immersion and simulated field trips including holographic spaces and linked teleoperations of devices in many locations. Kids in the Belt call the facilities “sKool”. Belt residents engage in lifelong learning and training opportunities.

Space Operations Training – By the age of 11 many children have usually become familiar with space vehicle operations through simulation and play and can already use autonomous space scooters with confidence. At 13 children can take a basic flight operations test so that they can use the unsupervised mode on space scooters with appropriate oversight by the Belt K Operations Authority. At 15 they are allowed to use space scooters with limited unsupervised operations. At 18 with a pilot’s license they can use space runabouts. Belt children usually achieve their spacecraft qualifications very soon after their relevant birthdays as they make use of e-Learning, simulators and VR ahead of time. At age 20, for those wanting to use space transports professionally, they can obtain a Space Operations License (SOL) from the Space Transport Authority (STA) via exams and after logging flight experience. The SOL is renewable annually.

Spacecraft – Space Scooters (SS) for intra-habitat local transport and exploration, Space Runabouts (SR) for in orbit travel, Space Transports (ST) managed by the Space Transport Authority (STA) are the workhorses for orbital and Earth-Orbit operations for cargo and passengers, and Experimental Spacecraft (SX).

Space Scooters (SS) – small two to four seat personal spacecraft for travel within a Belt. Highly automated with remote supervisory capability for younger travellers.

Space Runabouts (SR) – two seat or larger spacecraft for travel around and between the Satellite Belts. Automation is used for safety. Fully autonomous versions provide a taxi service.

Robotic Assistants (RA) – a range of intelligent agents which are implemented in a distributed fashion. They can be personalised and embedded in a range of physical forms such as a wrist device or a robot. By tradition such robots are given names starting with the initial of the belt they are deployed on (e.g. “KaRA”)

K-Pad – a device with screen for communications, information, augmented reality for technical operations, education, etc. Age appropriate facilities are on the device. Updates ensure the device stays appropriate to its user for life. Strong privacy protection is enforced with locally stored data entirely private to the user and not shared off device.

Kemlo – Male, 18 years old, born 3rd March on Belt K, Sector A. Kemlo has has an Open World University (OWU) Degree in Planetary Geosciences. Skilled pilot. Captain of the Space Scouts. Helps train younger children to fly and maintain space scooters. Kemlo is involved in the test programme for an experimental modular space runabout (SX-MR2). Kemlo’s robotic assistant which he calls “Komputer” is embedded in his Omega wrist band (a gift for his 18th birthday) which he wears with the screen under his left wrist in “driver-style”.

Krillie – Female**, 17 years old, born 11th November on Belt K, Sector A. Killie has an Open World University (OWU) Degree in Space Construction Engineering and is currently studying for a Masters by e-Learning in AI and Robotics from the University of Edinburgh in Scotland. Krillie is the author of a diary and series of books describing life as a Space Girl which are popular with children on Earth and in the Belts and beyond. Killie has an interest in AI-enhanced fashion. Krillie’s robotic assistant “KaRA” is embedded in her K-Pad. [** Gender change from the Kemlo books.]

Open World University (OWU) – the main provider of educational opportunities and experiences to on-world and off-world learners of all ages. OWU physical bases and computing centres are on and under sea islands named Atlantica Sea City and Pacifica Sea City run by the international United Nations (UN) Organization. OWU programmes are run for all ages and support lifelong learning. e-Learning (enhanced learning) using distance education is employed with group and social functions, VR simulated field trips and experimental labs. Advanced courses including Masters degrees are provided through OWU by specialised Educational Institutions across the world and beyond.

Offworld Heritage Sites and International Monuments

Some early space age activities on the Moon and in Earth Orbit have been kept intact and preserved for future generations. The International Space Station (ISS) constructed in the late 1990s, and the first wheel shaped rotating space station (often referred to as the 2001 Space Station as a nod to the film 2001 that depicted such a station) are in orbit and can be visited externally or in detail via remote VR operated telerobotics.

Using AI Tools to Suggest Content for Kemlo & Krillie

Leonardo.ai was used to suggest initial images for the main characters, Kemlo and Krillie. The initial attempt was useful, with a few visual glitches e.g. around Krillie’s right eye, and spacesuit patches that were too distinct. This was improved by using a further “image-to-image” generation and photoshop on Kemlo’s spacesuit arm patch.

Leonardo.ai Prompt: Kemlo and Krillie are space-born teenagers, they sit in a small two-seat personal spacecraft, travelling between two space stations, Earth orbit.

Leonardo.ai (https://leonardo.ai) for a similar prompt also generated some images that might be suitable for two-seat Space Scooters for younger children and Space Runabouts for older teenagers.

These images were then sharpened, enlarged and backgrounds removed where useful in Scenario (https://www.scenario.com/).

Leonardo.ai images of a Space Scooter and a Space Runabout as generated from the original covers of two of the Kemlo books (paperback versions) are show here…

The “Kemlo and the End of Time” book contains a colour illustration of SPITAR (Space Personal Investigation Training and Research Craft Number XK240) on test. Scenario.com was used to enhance a scan of this illustration…

A simple Space Runabout created in OpenSim, exported to Collada (DAE) and imported to Blender is shown here…

Simple Unity Experience – Kemlo & Krillie Visit the 2001 Space Station



Simple OpenSim Experience – Kemlo & Krillie Visit the Spacecraft & Space Telescopes Monuments

Mirrors in Second Life

2024, February 10 - 15:28

A later viewer 7.1.4.8208322938 already makes the process easier by making the Mirror Refection Probe volume (defined by its extent) set which objects have mirrored surfaces.

With the introduction of Physically-Based Rendering (PBR) glTF materials support in Second Life viewers, the development of a “Mirror” reflection capability that is high enough quality and updates in real time enough to look like a real life mirror has been under development. A project viewer has been under test for a while. The viewer and region server code need to support mirrors. As at 10th Feb 2024, a test viewer has been posted via the Discord Second Life “content-features” channel (Second_Life_Project_Featurettes 7.1.3.7848563555) and a test region on the Beta Grid at “Rumpus Region 2048” made available for testing.

The notes below reflect the design and operation of mirrors in Second Life as at 10th February 2024, but they are in a state of flux and could be altered, perhaps significantly, before finally being properly released.

Instructions to Make a Mirror

Ensure you are using a viewer and on a region that supports mirrors and that the debug setting RenderMirrors = TRUE which is is by default in the test viewer currently.

  1. Rez the object to have a face which will be your mirror. Size and rotation does not matter.
  2. Make the face to be a mirror have a shiny face… e.g. use PBR or blinn-phong blank specular, 255 factor, 255 environment, colour tint black.
  3. Rex a Box, size does not matter. rotate Z+ away from face to be the mirror.
  4. Make into mirror probe … sphere or box type does not matter.
  5. Move it into the reflective surface’s plane. The probe centre line must be just beneath the mirror’s surface.
  6. Shift drag copy the PROBE! (due to current viewer bug).
  7. Copy of probe goes transparent (see it with ctrl+alt_t) (another viewer bug?).
  8. Original stays with yellow colour if show reflection probes is set.
  9. Delete the original probe (yellow one).

There is a BUG in that when a mirror reflection probe is drag copied the original goes transparent and does not show as yellow if you have reflection probes to show.

Note mirror currently shows what is given by the mirror reflection probe nearest the CAMERA.. so other mirror reflection probes nearby (even if not in view) may intersect and override what you might expect to see.

Observation

With the current mechanism, this seems to be far too complicated.

Mirror Reflection Probe Interference and Priority Issues

Mirror Probes currently have an “Influence Zone” where they effect objects with reflective surfaces that is 10cm deep (fixed by a built in shader apparently) and the effect can go far out so can intersect other reflective objects that might be unexpected. But this is expected to change as the mirror approach is refined.


Images from Zi Ree (Firestorm)

Dantia Gothly on Discord commented: I set it up for my reflective surface aligned it and got it working. Then I took that reflective object while leaving the probe where it was and went 3000m up and the mirror still worked. So the mirror plane works across the whole region so long as its aligned to that surface.

Geenz (one of the developers) on Discord Commented: Right now how we handle the placement is WIP – eventually it’s gonna get the same falloff and such as regular probes. Just didn’t have time to get that done yet. We’re still debating and discussing the UX around this. So you’ll be able to just plop down a box or sphere probe, size it up, and get anything that intersects with it to get the mirror probe’s image.

Suggestions for Improvement

  • Provide a tick box to make the surface of an object be a mirror and then autoplace a Mirror Reflection Probe correctly placed and rotated (Z+ outward) wrt that surface.
  • Influence zone for Mirror effect defined by size of the Reflection Probe itself (currently its size is immaterial) rather than extending well beyond the object’s mirror surface.
  • Have a way to limit influence zone where a Mirror Reflection probe can show on a mirror surface to the land plot so neighbours builds do not interfere.
  • Reflection Probe used to be based on object the surface is rendered on not the probe nearest the avatar.

Update: 27th March 2023 – Improved Mirrors Viewer Candidate – 7.1.4.8428057494

Linden Lab Second Life Test Viewer 7.1.4.8428057494 on the Aditi Beta grid Rumpus Room 2024 region provides some tests of the next step in the implementation of mirrors. It includes a simpler setup of the mirror reflection probe and allows the volume of that probe to define which surfaces act as mirrors.

Update: 2nd April 2023 – Improved Mirrors Viewer Candidate – 7.1.4.8510662315

Using Linden Lab Second Life Test Viewer 7.1.4.8510662315 again on the Aditi Beta grid Rumpus Room 2024 region. I think the algorithm for selecting which mirror probe applies to a surface needs a tweak and not just use the nearest probe to the camera position…

  1. Only use probes in the field of view of the camera. Or as a poor substitute the direction (180 degrees cut off) of the camera angle.
  2. Ignore probes that are not mirror probes too? As present it seems to pick up any old probe that happens to be nearby (even within a few metres) and which could be on adjacent plots owned by another user and hence not controllable by the user for their visual intention.

North facing mirror that is spoiled when camera moves a little, due to another reflection probe just behind the avatar.
South facing mirror that works well when camera moves further way, due to another there being no other reflection probes in the area to interfere.

AIAI Training and CPD

2024, February 1 - 09:32

This blog post provides historical information about the training and Continued Professional Development (CPD) activities of the Artificial Intelligence Applications Institute (AIAI) at the University of Edinburgh between 1984 and 2020.

As part of AIAI’s technology transfer remit it ran an extensive programme of training and CPD offerings. A summary of the training offerings for 1996 from AIAI and pricing can be found on this snapshot web archive area…
https://www.aiai.ed.ac.uk/project/ftp/pub/home/iwh/cdrom/www/aiai/training.htm

Training Labs, Advanced Facilities and Support for Engineers

AIAI ran two laboratories with cutting edge equipment into which visiting scientists, engineers and industry could carry out pilot projects – a Knowledge Representation Systems Training Lab (KRSTL) and a Parallel Architecture Lab (PAL). AIAI had a contract with the UK EPSRC to help train engineers in the use of AI techniques in their subject (AI Support for Engineers). Due to its pioneering collaborative work between industry and academia, AIAI also won an award which allowed the equipping of a training laboratory with multiple workstations and advanced systems to improve its training capabilities.

To support these programmes, AIAI had a series of Short Courses which could be offered in Edinburgh on a shared basis or delivered within a company or organisation. The courses could be tailored to meet client needs. It also offered a packaged Study Programme in AI Applications to allow visitors to pursue a short application project under AIAI staff supervision and Research Programme in AI Applications to support more experienced personnel.

Short Courses

Below is a list of the courses offered on a stand alone basis and as part of the Study and Research programmes. These short courses are no longer available. Contact the School of Informatics for study opportunities.

This archival web page has a bit more detail including Winter 2002-2003 pricing… https://www.aiai.ed.ac.uk/archive/2003-07-14/training/

Study Programme in AI Applications

From AIAI’s prospectus for 1995 (original here)…

Study Programmes are concerned with creating skilled knowledge engineers. They are aimed at organisations that have reason to believe that one or more of their problems may be addressed by application of KBS techniques and which have personnel who lack sufficient KBS skills to carry out the project effectively.

Study Programmes emphasise the production of high quality applications. Visitors build an initial system which their organisation can develop further. This gives a quick start on a project for a organisation, and relevant knowledge engineering skills for its staff. This is achieved through:

  • a closely supervised and well planned work programme;
  • attending appropriate short courses;
  • building a system alongside skilled AI practitioners;

The fundamental training strategy behind this “journeyman” scheme is the building of a fully documented knowledge based system with supervision from AIAI staff. The Study Programme usually lasts ten weeks and visitors may register on a full-time or part-time basis. Programmes start in January, April and October.

Research Programme in AI Applications

From AIAI’s prospectus for 1995 (original here)…

Research Programmes are aimed at organisations who already have skilled staff in the domain of AI but who wish to further their research into the application of the techniques to meet business requirements.

The visitor will be a well motivated individual who can work with minimum direct supervision, and join as part of one of AIAI’s technical groups. The AI application research will be a project chosen to fit in with, and compliment, AIAI’s technical focii of:

  • planning & scheduling technology;
  • enterprise & process modelling technology;
  • corporate knowledge management technology.

For the period of the Research Programme the visitor will be allocated;

  • a desk within the AI Building at South Bridge, Edinburgh in close proximity to a large number of staff and students working in AI;
  • Computer provision via AIAI’s extensive network of workstations;
  • an extensive range of AI toolkits and languages;
  • excellent library and information services.

It is expected that a minimum of a joint publication describing the results must be an outcome of the application research work. Research Programmes last a minimum of three months and visitors may apply at any time.

AI Planning MOOC (2013-2015 and online afterwards)

AIAI was one of the first groups at the University of Edinburgh to engage in the development and running of Massive Open Online Courses (MOOCs) via the Coursera platform. The MSc level course was on AI Planning. Over 113,000 students took part in the three synchronous sessions offered. The materials continue to be available online via YouTube, open.ed and an AIAI web server and other Universities use the materials in their courses. See https://www.aiai.ed.ac.uk/project/plan/ooc/

Firestorm PBR Alpha Tests for VR Mod

2024, January 29 - 15:52

This is an experiment by @Sgeo to test Firestorm VR Mod 7.1.2.72850 PBR Alpha Test version to check whether the VR Mod approach works – and the good new is that it does.



The above images are all taken using the Firestorm VR Mod 7.1.2.72850 viewer on the OpenSim OSGrid “Oil Rig” region. This is an immersive educational training region as used by RGU Oil & Gas Centre in Aberdeen to train offshore oil rig workers prior to deployment. More information on the Oil Rig Training Experience on this blog post.

More Detail

The Firestorm viewer currently has an alpha test version in development that incorporates changes for Physically-Based Rendering (PBR) materials support. This has changed the rendering approach used by the viewer.

The current Firestorm VR Mod approach based on SteamVR/OpenVR to allow for VR use via a wide range of VR HMDs was developed by Peter Kappler. It uses a simple mechanism in a modified Firestorm Viewer from version 6.3.3 from November 2019. (An earlier approach was in Firestorm 6.0.1.57000 from August 2019). This basic approach continues to work in Firestorm up to 6.6.8 – the last version that has been prepared by @Humbletim using GitHub Actions (GHA).

@Sgeo on the Firestorm VR Mod Discord Group (Invite Link) took the latest available Firestorm PBR alpha source code from https://github.com/FirestormViewer/phoenix-firestorm-alpha (7.1.2.72850) and added in his own variant of the VR Mod approach which uses the same rendering mechanism. Sgeo’s approach includes code that allow for automatic setting up of the VR headset for IPD, texture Offset, and other parameters which have to be manually set (via the F5 key in VR Mode) for the Peter Kappler approach.

Download, Install and include openvr_api.dll

On 28-Jan-2024 @Sgeo provided a build of this version of Firestorm VR Mod 7.1.2.72850 for early tests and access by the P373R-WORKSHOP Discord group (see File Phoenix-FirestormOS-SgeoVR-7-1-2-72850_Setup.exe downloadable from this Viewer Download Link, Discord Group Invite Link). This version is a Windows 64 bit installer. It installs in a different directory to the normal Firestorm and Firestorm VR Mod versions so can be used alongside those. It shares the settings for normal Firestorm.

After install you need to add the openvr_api.dll library to allow the viewer to connect to SteamVR and the specific VR HMD drivers you use. This version of the viewer does not automatically include that as usual for Firestorm VR Mod. The latest version of openvr_api.dll can be obtained (Win64 version for this test version) from https://github.com/ValveSoftware/openvr/tree/master/bin/.

Then you can launch the viewer and as usual use Ctrl+Tab to load Steam VR and the VR HMD’s drivers. After that use Tab to go into and return from VR mode. Note I experience a crash of the viewer a few times when doing Ctrl+Tab. But it worked most times. If it crashes, it may be better to leave SteamVR and the VR HMD drivers running and restart Firestorm VR mode and that seems to work reliably – so it may be some sort of timing issue in the launch.

@Sgeo’s version of Firestorm VR Mod sets up the VR HMD IPD, texture offset and other parameters automatically, so with luck you should see a crisp VR image with 3D depth. As usual you can monitor on the 2D screen what is showing to each eye of the VR HMD using the SteamVR “Display VR View” capability (in its menu you can show “Both Eyes”).

UI Elements – Out of View in VR Mode

Note that currently it is difficult to see the Viewer UI elements like menus, buttons and edge mounted HUDs as they are out of the VR field of View (FOV). Normal Firestorm VR Mod using Peter Kappler’s approach allows for a shift in the area viewed as the mouse is moved to the edges or corners of the view to bring those UI elements into the FOV. The image below shows the FOV in the VR view for an Oculus Rift DK2 and you can see it is quite limited compared to the whole viewer screen. In thus picture, th UI elements and tools were moved to just be out of view, even went looking to the extreme sides, top and bottom.

2D View Squashed and a Temporary Fix

Also, in this current test version, on return to 2D mode (tab) the 2D image can be left squashed and not centred.

A simple fix for that is to resize the 2D screen to have the same ratio as ONE EYE of the SteamVR VR View monitor screen, e.g. try a ratio of 8×9 (width=8 units and height=9 units, note its half of a 16×9 screen ratio). The earlier VR Mod approach automatically resized the 2D screen to get a similar effect. This also seems to correct the distortion of the name labels over avatars too.

Colour Changes

I do see a darkening of the colours across the whole image when switching from 2D mode (left image below) to VR Mode (right image below). The 2D mode looks identical colour to the non-VR version of Firestorm PBR Alpha. This image was taken on the Firestorm Beta Grid “Rumpus Room 4” region which has a range of PBR test objects.


OpenSim OSGrid VRland Test Area

On OpenSim OSGrid there is a VR test area that can help establish the VR HMD Field of View (FOV, shown in blue in VR View below) etc. at hop://hg.osgrid.org:80/RuthAndRoth/16/16/1000


PBR Materials Display in OpenSim

And the point of all this is to be able to display PBR materials in Second Life and OpenSim… here is a sample image… using the latest OpenSim 0.9.3.0 Dev Master server code already available on OSGrid and which includes support for PBR materials.

Oculus Rift CV1

Tests of Firestorm VR Mod 7.1.2.72850 PBR Alpha Test on Oculus Rift CV1 which on Firestorm VR Mod 6.6.8 has a texture offset of +30 and a Texture Zoom of 0. All looks fine. FOV for Oculus Rift CV1 is wider than DK2 and if I really squint up down, left and right I can JUST see at the extreme edges the inner most parts of the menu bars and edge buttons. Not enough to click them, but they are JUST there… FOV indicated here on the OSGrid VRLand test area.


Frames Per Second (FPS)

It is important to try to maintain a good rate of frames per second for comfortable VR. The graphics quality settings and draw distance should be adjusted to make sure the 2D view FPS is high enough so that when you switch to VR Mode and likely go to less than 50% of the 2D FPS it still works smoothly.

Source Code

Firestorm PBR alpha source code:
https://github.com/FirestormViewer/phoenix-firestorm-alpha

Sgeo Firestorm PBR Alpha with SgeoVR Mod code:
https://github.com/Sgeo/phoenix-firestorm-alpha/tree/VR_Sgeo_2024

Latest version of openvr_api.dll can be obtained (Win64 version for this test version) from https://github.com/ValveSoftware/openvr/tree/master/bin/.

The LICENSE file from there should be included (renamed LICENSE-OpenVR) from https://github.com/ValveSoftware/openvr/blob/master/LICENSE

Pages