More helpers, then a dead browser tab. A Three Slicer development report shared by its creator on GeekNews follows an unexpected load behind browser-based 3D printing.
A small browser factory
Three Slicer turns 3D models into G-code, instructions for a printer’s movements. It brings OrcaSlicer’s computation engine into the browser and uses workers to divide work across print plates.
Packaging for every worker
The packaging mattered. Emscripten’s SINGLE_FILE setting embeds subresources such as WASM in the generated file. That reduces the number of files, but multiple execution environments can change the cost of reading that package.
One file becomes two
According to the project changelog, each pthread worker loaded JavaScript containing the WASM payload. Moving the multithreaded WASM into a separate file shrank the JavaScript from 6.4MB to 107KB. The creator’s report says each pthread worker’s isolate-level JavaScript heap fell from roughly 60MB to 1MB. Workers already received the compiled WASM module from their parent context.
Crashes and remaining failures
The changelog reports four tab crashes in six runs using three plate-level slicing workers on a six-plate project. Tested configurations with three to eight plate-level slicing workers no longer crashed after separation. The development report still lists an intermittent failure of one plate’s computation during repeated whole-project slicing.
V’s view
V’s view. When dividing work, it is easy to count the helpers. Drawing what each one rereads and brings along can make a small file look very different.
This explains the creator’s records and official documentation. Measurements used an Apple M5 Pro and headless Chrome; we have not independently reproduced them or tested physical prints.