What is Meshmoon WebRocket
WebRocket is our fully in-house developed web browser client for the Meshmoon platform that you can find and try out at our website. WebRocket originated from the need to implement a client that works in modern web browsers without any additional plugin installation (Flash etc.). This would make our platform more appealing to modern internet users and make the “3D internet” mantra to mean more that just operating on the internet: to actually operate in the web browser. One of the main design goals was to have compatibility with the Meshmoon platform and the Rocket desktop client, getting everyone to the same Meshmoon space and interacting together no matter what client they used.
Meshmoon is based on the open source realXtend Tundra virtual world platform, as many might know we contribute a ton to the open source community. Essentially keeping only Meshmoon-specific login (authentication, talking to our servers/services) in our private repos. Being based off of Tundra meant that we had to implement a server-side C++ plugin to accept WebSocket client connections and to talk to them with the realXtend Tundra protocol. We open sourced this server module as well earlier last year as part of the EU FI-WARE project, it landed to realXtend Tundra core and is part of the core SDK distribution.
WebRocket was designed as a client for us to begin with. Open sourcing the codebase as is was not going to be possible, it required some amount of preparation work, restructuring the codebase, removing any Meshmoon code from the core etc. Luckily quite recently we got a sponsor to finish this work and to share our code with the realXtend open source community. The result is realXtend WebTundra core SDK which implements a Tundra SDK/client that facilitates the Tundra protocol both at the network level and at the scene level (Entity-Component-Attribute model). As well as utilities for app development like FrameAPI, UiAPI, InputAPI, ConsoleAPI, Rendering plugin etc. that will get you started fast with your development of 3D internet application.
The idea going forward is that people and other companies involved in the realXtend ecosystem will start working on a common web browser client codebase. Improving and adding functionality to it as we go along. This model has worked very well with the Tundra platform and we are happy it will be possible now with the WebTundra SDK as well.
The open source “dump” commit was about 87 KLOC, of which about 50 KLOC consist of from dependencies like three.js, jquery etc. The rest of the code is written by us, including good amount of documentation (that you can check out here). The whole public API is documented very thoroughly, and most of the internal API as well. Resetting the repository history is a unfortunate side effect of us building it from scratch and including Meshmoon specific logic into the SDK, but I think it is something we all can live with. This is why the commit was one huge one, not almost 400 different ones.