Potential Solutions
OpenSim WebSockets & In-Browser Viewer
With the advent of .NET 10 comes the ability to use WASM and C#. This means we can effectively use entire C# libraries within the web browser now. This opens the door to an amazing new possibility: OpenSim in a web browser. This has been done in the past using other means. Unfortunately, these attempts were not open source and quickly died on the vine. However, this attempt would be quite different.
Opensim still heavily relies on UDP to deliver data. UDP and the web browser inherently do not mix. However, the groundwork for a solution has already been laid by the giants who came before us. In the SimianGrid days, work was done on a virtual world region server known as Simian. Within this code lies the blueprint for carving out a WebSockets protocol for OpenSim.
Combined, these make possible the ability for OpenSim to provide an in-browser experience. ROBUST already provides the mechanism for a WebSockets login. Yet the region server WebSockets protocol is painfully absent. The scalability of such a project would enormous as we could then work from a mobile-first mindset while providing a seamless and secure experience for screens of all sizes. This would give us everything from the means to effectively implement VR/AR using our phones to a means to encrypt all OpenSim traffic end to end, as well as the improved user experience in between. We would then be able to break through the transparent barrier experienced in the metaverse that seems to alienate it from the rest of the Internet.
BulletSim 3
BulletSim always had the potential to be something greater than what it already is. Rather than being tied entirely to the CPU, the Bullet physics engine can be compiled to use OpenCL. It’s just that BulletSim then needs to be written to exploit that capability. I’ve managed to take care of the easy part. I was able to use the work of Mister Blue et al. to get BulletSim to compile BulletSim with OpenCL.
Unfortunately, I have not yet had the time to work on the hard part, which is redrawing prims in such a fashion that Bullet3 can put them in a graphics card. While it’s understandable that OpenSim runs on servers that don’t use graphics cards, the notion of servers not having access to graphics cards is quickly fading with the demand for AI. While the physics engine may not be a serious bottleneck, it does seem important to anticipate the potential of using all the means available. Offloading the work that the CPU would otherwise be doing onto the GPU leaves open resources that may be utilized elsewhere (not to mention how awesome it would be to do your physics engine calculations with the GPU).