@kreijstal/openscad-wasm
v2026.7.26-build.1
Published
OpenSCAD 2026.07.26 (commit 04834adb) for the browser, with Manifold, CGAL, fonts and lib3mf
Readme
@kreijstal/openscad-wasm
OpenSCAD 2026.07.26 (commit 04834adb) for the browser, with Manifold, CGAL, fonts and lib3mf
Upstream: https://github.com/openscad/openscad
Use
Pinned to this version, from a CDN:
https://cdn.jsdelivr.net/npm/@kreijstal/[email protected]/<file>
https://unpkg.com/@kreijstal/[email protected]/<file>Reproducing this build
Everything here is built from source; nothing prebuilt is repackaged. The script that produced these files is included as build/build.sh.
Toolchain
- emscripten:
emcc 6.0.9-git (4e4223852a0835923411059a3929907d7df1232e)from the Arch Linux packageemscripten 6.0.9-1(installed at /usr/lib/emscripten; LLVMclang version 24.0.0git, Binaryenwasm-opt version 132 (version_132-49-gd03c25ea43)) - Node.js v22.23.2, CMake 4.4.3, Arch Linux
- No emsdk: the script puts /usr/lib/emscripten first on PATH and unsets EMSDK/EM_CONFIG, so every object (including emscripten's own libc/libc++) comes from that one emcc
Sources
Recipe: openscad/openscad-wasm at dc2ff913b4193b1ebfef863da3f7e84f8fbc1e11 (its Makefile and Dockerfiles: dependency versions and configure flags), built natively instead of in Docker.
| Source | Pin |
|---|---|
| OpenSCAD | 04834adb1ba3c9a6e4160747c91cbadbce9c37b3 (version set to 2026.07.26, the commit date) |
| cgal | v6.0.3 |
| doubleconversion | v3.4.0 |
| eigen | 5.0.1 |
| fontconfig | 2.18.2 |
| freetype | VER-2-14-3 |
| harfbuzz | 14.3.0 |
| lib3mf | v2.3.2 |
| libffi | v3.7.1 |
| libxml2 | v2.15.3 |
| libzip | v1.11.4 |
| zlib | v1.3.2 |
| glib | 3994b22020c9f61121ebbc902f19cfe906dd745b |
| liberation | ef7161f03e305982b0b247e9a0b7cc472376dd83 |
| boost | https://github.com/boostorg/boost/releases/download/boost-1.87.0/boost-1.87.0-b2-nodocs.tar.xz |
| gmp | https://gmplib.org/download/gmp/gmp-6.3.0.tar.xz |
| mpfr | https://www.mpfr.org/mpfr-4.2.1/mpfr-4.2.1.tar.xz |
Steps
On Arch Linux with the emscripten package installed (pacman -S emscripten):
mkdir openscad-wasm-build && cd openscad-wasm-build && cp /path/to/this/package/build/* .
./build.shIt takes about 22 minutes on 16 cores; FORCE=1 ./build.sh rebuilds every stage. The script fetches the pinned sources itself and refuses to run with any emcc other than /usr/lib/emscripten/emcc; the output lands in dist/. Compare it against the checksums below.
The comment at the top of the build script, verbatim:
OpenSCAD for the browser (goldenlayouteditor's 3D viewer), built from source with
the SYSTEM emscripten (/usr/lib/emscripten, emcc 6.0.9-git). No emsdk, no Docker,
no prebuilt wasm. Follows github.com/openscad/openscad-wasm (Makefile +
Dockerfile.base + Dockerfile, commit pinned below): same dependency versions,
same configure flags, built natively one after another.
Every library is installed into a private emscripten cache ($ROOT/emcache,
EM_CACHE), whose sysroot is where upstream's Dockerfile installs them too
(/emsdk/upstream/emscripten/cache/sysroot), so emcmake/emconfigure find them
with no extra search paths. emscripten's own system libraries in that cache
(libc, libc++, ...) are built from source by the system emcc on first use.
Usage: ./build.sh fetch (if needed) + build everything not yet built
FORCE=1 ./build.sh rebuild every stage
./build.sh <stage>... rebuild only those stagesChecksums of the published files
c65c8c90d48c8f889f4adaad5aae736b7321362a5035c9fa2f4dce28e7dfdbd7 BUILDINFO.txt
24b7cf0d06040c9a1b16efc528dc2966a407288938dfa169ee7fe584140a3393 fonts/LiberationSans-BoldItalic.ttf
d723d5a272970aedf296ef6fc628180df6074bce7769701ea9e0d222c052668c fonts/LiberationSans-Bold.ttf
e27e6da1f5bbba630d635b8cc2916f84f195735865ea539687df962ae5a98e72 fonts/LiberationSans-Italic.ttf
e5b0af421ea2bfbc1ac8d251d647268087ae82786234c57f757d1f0b90fa8b49 fonts/LiberationSans-Regular.ttf
403ec833e352e035a5f3358d9fcf77d1a1caab0e4cbd3092c588ef11e27c1c19 openscad.js
3846325c6b28bff04b861279382193a0e3c05fc0bd2f97e680be108e756ae5ad openscad.wasmLicenses
GPL-3.0-or-later. The license texts of everything compiled in are in LICENSES/.
