...
Target a recent, stable version of the USD main branch. At the time of writing, USD 23.0811
is the branched version.
Action Items:
- Autodesk to open a branch from OpenUSD 23.11 to make WebAssembly contributions available
- Autodesk to consider options for overlaps in configurations/platforms between platforms, ongoing Proposals, architectures, etc.
High-level prioritized item list
Item | Notes | Status | Scope | Volunteer |
---|---|---|---|---|
0. Legal requirements | ||||
Clarify ASWF vs. USD contribution guidelines regarding attributions. | Submit contribution scope/intent to USD Proposals. | |||
1. Build system changes | ||||
Add
| https://github.com/autodesk-forks/USD/blob/adsk/feature/webgpu/Dockerfile | Done? | Aura | |
Update | Integrate a working prototype of the OpenUSD build script for Emscripten, WasmTBB, build switches, etc. | Done? | Will need additional review, polishing before a final "productization" option is ready. | Phil, (Aura) |
Adding an | Potential to replace "–-emscripten" with "–-wasm"? Decision TBD. https://github.com/autodesk-forks/USD/blob/adsk/feature/webgpu/build_scripts/build_usd.py#L2198 | Done? | ||
Using | https://github.com/autodesk-forks/USD/blob/adsk/feature/webgpu/build_scripts/build_usd.py#L442 | Done? | ||
Replacing TBB with WasmTBB | https://github.com/autodesk-forks/USD/blob/adsk/feature/webgpu/build_scripts/build_usd.py#L956C1-L956C19 | Done? | ||
Listing USD components incompatible with WebAssembly build to warn Users that | https://github.com/autodesk-forks/USD/blob/adsk/feature/webgpu/build_scripts/build_usd.py#L2588 | Done? | ||
Add
| ||||
Include tests to validate WebAssembly build, using a NodeJS dependency in order to enable tests from headless environments. Test examples include (but are not limited to):
| https://github.com/autodesk-forks/USD/tree/adsk/feature/webgpu/js/__tests__ | Done? | ||
2. Core USD changes | ||||
| Phil, + | |||
pxr/base/arch/debugger.cpp
| https://github.com/autodesk-forks/USD/blob/adsk/feature/webgpu/pxr/base/arch/debugger.cpp#L597 https://github.com/autodesk-forks/USD/blob/adsk/feature/webgpu/pxr/base/arch/debugger.cpp#L646 Note sure what to do with | Done? | ||
| https://github.com/autodesk-forks/USD/blob/adsk/feature/webgpu/pxr/base/arch/fileSystem.cpp#L162 https://github.com/autodesk-forks/USD/blob/adsk/feature/webgpu/pxr/base/arch/fileSystem.cpp#L199 https://github.com/autodesk-forks/USD/blob/adsk/feature/webgpu/pxr/base/arch/fileSystem.cpp#L456 https://github.com/autodesk-forks/USD/blob/adsk/feature/webgpu/pxr/base/arch/fileSystem.cpp#L469 https://github.com/autodesk-forks/USD/blob/adsk/feature/webgpu/pxr/base/arch/fileSystem.cpp#L501 https://github.com/autodesk-forks/USD/blob/adsk/feature/webgpu/pxr/base/arch/debugger.cpp#L660 | Done? | ||
pxr/base/arch/library.cpp
| Necessary? | |||
| https://github.com/autodesk-forks/USD/blob/adsk/feature/webgpu/pxr/base/arch/timing.h#L76 https://github.com/autodesk-forks/USD/blob/adsk/feature/webgpu/pxr/base/arch/timing.h#L133 | Done? | ||
Include tests for the arch library using NodeJS |
Milestone: Share the code changes made up to this point with the greater USD community, seek feedback, framed around the changes up to this point as early end-to-end demo. | Phil, + | ||
| ||||
| ||||
| https://github.com/autodesk-forks/USD/blob/adsk/feature/webgpu/pxr/usd/sdf/wrapPathJs.h | Done? | ||
| https://github.com/autodesk-forks/USD/blob/adsk/feature/webgpu/pxr/usd/usd/wrapStageJs.cpp#L105 | Done? | ||
3. ThreeJS Hydra renderer | ||||
TBD: Separate project/branch? Engage with ThreeJS/web community for collaboration opportunity on this aspect? | https://github.com/autodesk-forks/USD/blob/adsk/feature/webgpu/pxr/usdImaging/hdEmscripten/js/ThreeJsRenderDelegate.js | Done? |