This repository contains the browser/WebAssembly build support and web interface for running Singular in a user's browser sandbox. Try here:
https://singular-in-browser.pages.dev
The code builds on PR #1360 (and preserves the respective commits).
Tracked:
- Emscripten build scripts
- browser frontend sources in
web-workbench/public - worker sources, deployment examples, and documentation
- placeholders such as
web-workbench/public/engine/README.md.
Not tracked:
Singular.jsSingular.wasmSingular.data- generated engine manifests
- release zip and
dist/ - local Singular checkouts and dependency build trees.
The CI stores build output as workflow artifacts (generated on pull requests or manual builds). Published releases attach the zip, manifest, and signature as GitHub Release assets.
Implemented in .github/workflows/build.yml:
- checks out this repository
- checks out
Singular/Singularat the selected ref, default isspielwiese - overlays this repo into
Singular/emscripten - builds the WebAssembly engine
- packages the static web app
- uploads the package as a workflow artifact.
For GitHub Releases, the workflow signs the release manifest and attaches the zip plus manifest files to the GitHub Release. The repository secrets have to be configured before publishing signed releases:
SINGULAR_WASM_RELEASE_PRIVATE_KEY_PEM
SINGULAR_WASM_RELEASE_PUBLIC_KEY_PEM
Pull-request builds do not need signing secrets and should remain read-only.
After web-workbench/public/engine/ and web-workbench/public/vendor/ are
populated:
bash run-web-workbench.shopen
http://127.0.0.1:9999/
The local server sends the COOP/COEP headers required for SharedArrayBuffer.
The Singular webserver should serve immutable release directories, for example:
https://www.singular.uni-kl.de/wasm/releases/2026-06-04/
Manual deployment is:
- download the release zip from the GitHub Release
- unpack it into a new release directory on the Singular webserver
- make sure the webserver sends the headers from
web-workbench/deploy/nginx.conf - keep old release directories immutable
- optionally update a
latestredirect after verification.
Detailed signing and deployment instructions are in
web-workbench/docs/DEPLOYMENT.md.