There are several programming projects I'm playing with. This makes for a hodge-podge of links and I don't always take the time to make cleanly installable packages. Not good of me, I know.
If you have questions, feel free to email me.
SecondLife is changing its voice service from Vivox to their
WebRTC implementation. I've taken on a project of adding the new
voice service to
OpenSimulator.
This has turned into
os-webrtc-janus
which is an addin-module
for the OpenSimulator sources.
There are several OpenSimulator/Second Life viewer development efforts. In 2023, I added configuration code and a bunch of refactoring help to the Crystal-Frost Viewer effort. This is a viewer that is using the libreMetaverse library and the Unity graphics engine .
This work also included adding VarRegion support to libreMetaverse .
Although the project doesn't have a public web page or repository, the viewer has been mentioned in New World Notes and Hypergrid Business .
Not content at letting Basil lie dormant, I restarted coding and got it to a point where one could log into properly compiled OSGrid region and walk around as a ducky.
This phase ended with a presentation at the 2022 OpenSimulator Community Conference
I wrote a new grid server for the High Fidelity open sourced virtual worlds.
When the company High Fidelity got out of the virtual world business, they open sourced their client and some infrastructure. Several projects took up the sources and continued the development and deployment of the software infrastructure.
One thing High Fidelity didn't open source was the metaverse service which coordinates the region servers, user accounts, and such.
In 2021, I reverse-engineered the API for the grid service and wrote a new grid service for the Vircadia virtual world system. This meant diving into Javascript and Typescript to write an API service for the HiFi based virtual world grids. Data was stored in MongoDB as I'd never used that database system before.
Modified versions of this grid service are now used by Vircadia as well as the Overte virtual world grids. Vircadia has made many improvements to the metaverse server since then.
I've spent some time playing with the idea of a single infrastructure for augmented reality and virtual worlds. There is an architectural overview for Herbal3D .
My current attempt at a 3D virtual world viewer is Basil which is an architecture around creating a viewer where a Vircadia avatar can stand next to an OpenSimulator avatar.
I tried with the Looking Glass viewer (see http://lookingglassviewer.org ) but I never gave up on the idea of a viewer for virtual worlds. The documentation for Basil is scattered around with some on my blog, some with the projects on Github, and some covering the larger Herbal3D project of which Basil is just a part.
At the moment (February 2022), the focus is on a WebGL based viewer and building the infrastructure to view OpenSimulator virtual worlds. Eventually, there will be an Unreal Engine version of the viewer and adaptors for other virtual worlds.
I've been a core developer for OpenSimulator and have added BulletSim which is a port of the Bullet physics engine to the OpenSimulator virtual world simulator.
I've also added variable sized regions VarRegions which are non-legacy sized regions (not 256x256).
Starting some projects with a pile of Raspberry Pi's and ROS . Attempting to 3D print skeleton parts to create articulated creatures. Have to figure out stepping motors first. More to come on that.
Getting involved in C# and the OpenSimulator project, I set about writing a viewer. This got me into Ogre, C# and many other pieces of code.
The LookingGlass viewer now has it's own web site at http://lookingglassviewer.org and the sources are available in the OpenSimulator Project Forge. That place also collects bugs, features and other project management.
Dynamic loading of resources in Ogre is an artform. After wrestling with it for several weeks, I wrote up my solution in Dynamic Loading of Ogre Resources.
THIS SERVICE IS NO LONGER OPERATIONAL PlanetLab was a precursor to the modern cloud server services. PlanetLab has been displaced and decommissioned.
PlanetLab is a global research platform for distributed service research. Once part of the network (universities and companies join by donating computers to the network), once can create virtual machines all over the world to develop and test new concepts in wildly distributed applications.
I wrote two and run one service on PlanetLab: