Above: "Vastly more realistic lighting. This is a sunset in Crystal Frost."
SLer Berry Bunny (Kallisti#2038 on Discord) is a longtime developer who's been working on various Second Life projects for well over 15 years. Along with some impressive in-world games, she's done mixed reality projects for Italia Telecom and a nursing school experimenting with Second Life as a distance learning tool, among others.
Her new project, however, is somewhat more ambitious:
Crystal Frost, a new third party Second Life viewer that runs on Unity.
Yes, that means Crystal Frost should (eventually) work on mobile, displaying Second Life on a smartphone.
If she succeeds, Crystal Frost would also offer a substantial leap in graphics quality for Second Life. (See the images in this post, courtesy Bunny, including the comparison with Firestorm below.) But Bunny has even greater ambitions than better graphics:
"Having a modern graphics engine that's multi-threaded, easier modability, implementing ray tracing and proper VR is super easy," as she explains. "I have ideas about how to implement VR and make it feel like VRChat. But I need to make the client stable and get rigged meshes working before I even attempt it. Also, theoretically better performance than the Linden Lab-based viewers, if I do it right."
VRChat is actually a large part of her motivation for taking on this project: "'[I'm] wanting to see SL become better, and wishing that VRChat had something comparable to SL's robust inventory and modular avatar system." (And also she's bored and wants a fun challenge.)
Above right is a pic via Bunny showing off another feature: "Local light support, translating SL's old school lights to real world physically based material type lights, specified by lumens, via Unity's HD Rendering pipeline."
How is this even possible, and what does Bunny need to get this project hopping along faster? (Sorry.) Read on:
Going from Second Life to Unity:
"I ported libraMetaverse to Unity, which was not terribly difficult since it's almost entirely in C# which is what Unity uses. libraMetaverse is the back end library for most of the up to date OpenSim grids. Then, I began probing its functions and figuring out how to make it connect to Second Life, and setting up events for handling objects. Progressively implementing various forms of data that get sent to the client.
"This is actually NOT the first time I've made a Second Life client in Unity, but that was way back in Unity version 2.6, and I didn't understand how to make procedural meshes for prims or other objects. I however lost the source code to the old client, and it wouldn't work anyway because at the time I was using libOpenMetaVerse, which is horribly out of date. libreMetaverse is a modern fork of libOMV.
"And yes, quite a bit of tweaking is needed to get the Second Life data into Unity. For example, Unity and Second Life don't use compatible rotational data, and as such some basic code is needed to be made to translate the position and rotation data."
Bunny is planning to ramp on development on Crystal Frost, and could use some co-development help:
"I wouldn't be opposed to someone who's intimately familiar with Unity, or libreMetaverse helping me out. As it is, a few things I know I won't be able to do myself is get SL's advanced materials (specularmap, bumpmap, etc working), nor rigged meshes, bento meshes, and animeshes. Because I'm not very familiar with the SL protocol myself, and I can't really do anything that libreMetaverse doesn't already have the ability to decode. Data structures are not my forte."
Get in touch with her in-world as Berry Bunny, or Kallisti#2038 on Discord.
This is so cool. As a software developer myself, and a Second Life resident for around 15 years who runs VR mod of SL on occasion using the Oculus Rift and Quest 2 as PCVR, I wondered how difficult it might be to update the graphics engine to be able to render Second Life using Apple’s Metal graphics engine for creating an iPhone/iPad client and to increase performance on MacOS. I have no Unity experience, but I find this project interesting. I am Atargatis.Emerald or Gr1mr3p3r.Jaxxon inworld or [email protected].
Posted by: Atargatis Emerald | Saturday, February 04, 2023 at 01:39 AM
The GITHUB repo for Crystal Frost has been taken down. This article just came out last week, what's happened?
Posted by: Bandor Tyrell | Tuesday, February 14, 2023 at 03:31 PM
@Bandor — you can still get it on https://github.com/Bunny83/CrystalFrost
Posted by: Gwyneth Llewelyn | Saturday, March 11, 2023 at 02:22 PM