Several engineering initiatives have been launched to explore possible solutions to delivering on the promise of web3d and overcoming technical challenges to its success.
Optimal performance and minimal code footprint are essential to a responsive 3D experience.
3D worlds are punishing to deliver, as they have to perform millions of rendering and motion
calculations reliably every 16 milliseconds.
Internet bandwidth constraints magnify these challenges; if we cannot keep world assets and the underlying engine's code compact, it will be impossible to stream them from the server to the client on a timely basis. This will require the ability to stream needed assets on a just-in-time basis and then re-hydrate the assets without disrupting real-time rendering.
These characteristics are hard enough when delivering these experiences via native executables. How much worse, when delivering via a browser using WebGL and Wasm technologies.
- Server. 3D world servers need to keep multiple player clients synchronized to the most recently re-calculated state of the world.
The Cone programming language was designed and built as a foundation toolkit for satisfying these 3D world requirements. Blazingly-fast, lagless runtime performance is key to its value proposition. Cone makes it much easier to leverage performance strategies, such as cache-friendly data architecture (including ECS), memory management (arena, pool, and borrowed references), and friendly actor-based concurrency.
This project explored the idea of encoding intelligent 3-d assets as programs written in the Acorn programming language (a dynamically-typed language loosely inspired by Lua). A working browser, called Pegasus3D, was built within the Acorn VM. It included built-in classes that facilitated 3d rendering, user interactivity, and the ability to retrieve Acorn and image assets from the internet.