Skip to content

wasm: build Qt Quick 3D into the WebAssembly SDK - #49

Merged
jcelerier merged 1 commit into
ossia:masterfrom
sheryar-git:wasm-quick3d
Oct 19, 2026
Merged

jcelerier merged 1 commit into
ossia:masterfrom
sheryar-git:wasm-quick3d

Conversation

@sheryar-git

@sheryar-git sheryar-git commented Oct 19, 2026 •

Copy link
Copy Markdown
Contributor

Hey! Ran into this while previewing dome stills in the Domeport web build.

  • What happens: SAT's Domeport web build loads, then the dome never shows.
  • The error: DomeportView.qml:4:1: module "QtQuick3D" is not installed (same for QtQuick3D.Helpers)
  • Why: WASM/qt.sh passes -skip qtquick3d to both the host and the wasm configure, so the SDK ships no Quick 3D. score's enable_minimal_qt_plugins already links Qt6::qquick3dplugin and friends when they exist, so nothing in score needs to change.
  • The change: drop -skip qtquick3d from both configures, and turn off the assimp importer on wasm (-no-feature-quick3d-assimp).
  • How I tested: I didn't rebuild the whole SDK. In CI I took sdk44 as is, built only qtquick3d at the SDK's own Qt pin (with your two qtquick3d patches, assimp off) for qt6-host and qt-wasm, then built score v3.9.0 and packaged Domeport. Workflow: https://github.com/sheryar-git/domeport-wasm-fix/blob/main/.github/workflows/wasm-quick3d.yml
  • Result, headless Chromium: the dome draws, with a DomeMaster still and with DomeMaster video. I only tested the web build.
  • One gotcha for a standalone module build: the qtbase pick 658066 makes the export header read QT_DO_EXPORT_SYMBOLS, so I had to pass -DQT_DO_EXPORT_SYMBOLS=0. Your superbuild already sets it to 0 after qtbase, so this patch doesn't need it.

Before / after:

Domeport side of the fix: sat-mtl/DomeportPro#99

Thanks for score and the SDK, they're a joy to build on.

QML apps built on score can import QtQuick3D (SAT's Domeport does), but
the wasm SDK skipped qtquick3d, so the static link had no Quick 3D plugin
to pull in and the app failed with 'module "QtQuick3D" is not installed'.

Build qtquick3d for both qt6-host (its tools are needed by the cross
build) and qt-wasm. The assimp importer is turned off on wasm.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0187mYLDEuWPcb6sJT4DgoXt
@jcelerier

Copy link
Copy Markdown
Member

wild!!!! thanks !

@jcelerier
jcelerier merged commit a5177ff into ossia:master Oct 19, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants