This is Mozilla's draft proposal for the GPU API for the Web, called Obsidian. It is a low-level API that provides maximum feature set of the GPU to the web applications. The API is designed for WebAssembly, modern GPUs, and multi-threaded environment in mind.
Obsidian is a temporary code name, signifying the Vulkan roots of the API:
Obsidian is a naturally occurring volcanic glass formed as an extrusive igneous rock.
This proposal is not a specification. It includes reasoning for the design decisions, draft WebIDL and a bit of example code. We don't aim to provide a complete specification, instead we want this proposal to represent our vision of the future API in the working group discussions, a vision of rich graphics on the Web powered by a low-level explicit API.
The contents are split into the following sections:
1/ introduction and philosophy
2/ design details, differences from Vulkan/D3D12
3/ synchronization and memory model
4/ API and examples
Link to the complete proposal: