...
High-level prioritized item list
0. Legal requirements
Clarify ASWF vs. USD contribution guidelines regarding attributions.
1. Build system changes
- Add
Dockerfile
to standardize Emscripten build (using an Ubunutu 22.04 LTS base image)- Using known good Emscripten version (
2.0.24
)
- Using known good Emscripten version (
- Update
build_usd.py
build script to support:- Adding an
--emscripten
build option to specify a WebAssembly target - Using
emcmake
/emmake
as a drop-in replacement forcmake
when targeting WebAssembly build - Replacing TBB with WasmTBB
- Listing USD components incompatible with WebAssembly build to warn Users that
Python
,usdview
,imaging
have been disabled
- Adding an
- Add
CMakeLists.txt
for JavaScript/WebAssembly bindings in order to:- List USD binding dependencies (
usd
,usdLux
,usdGeom
,usdUtils
,sdf
,tf
) - Specify location of WebAssembly build artifacts (WASM bundle, WebWorker, JavaScript bindings)
- List USD binding dependencies (
- 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):
- Loading a USDA stage
- Exporting USDA stage to string
- Traversing the USDA stage
- Running WebWorkers
- etc.
...