a self-hosted docker container for your personal OpenSCAD generator and model viewer
you can find more screenshots under [/img/screenshots](img/screenshots/)
SCADarina is the attempt to have your own, self-hosted OpenSCAD local offline generator as the likes of Thingiverse, Printables, or MakerWorld.
It parses OpenSCAD controls (like you'd see on one of those online generators), but you can also open and alter code directly; I wouldn't setup a document in there though :)
- a viewport with different shading options, grid layouts (I tried to mimic the OpenSCAD axis as well), a switch between orthogonal and perspective view, and a basic viewcube as known from most CAD packages
- can make use of OpenSCAD libraries / dependencies (like e.g. BOSL2)
- you can also open .stl, .obj, and .3mf files to e.g. roughly inspect or measure them
- that said: a measuring function, snapping to vertices, with delta readings
- a rudimentary file browser: you can create folders, upload and delete files, or save your current settings
- works on mobile browsers (but I probably have to spend some time improving on that, haha)
- has no online dependencies: you can use it offline
- while you can expose it to the web, there's no safery measures implemented AT ALL; do at your own risk
SCADarina is not WASM. Under the hood, it uses a real OpenSCAD backend which runs entirely on the server. This means full support for external libraries, and no bottlenecks from your browser (even on mobile).
.scad files are sent to a python-flask-backend, OpenSCAD renders it to a mesh, and this result gets dislayed in the Three.js viewport in your browser.
Since v1.1, you can choose between
Since v1.2 you can choose between render engines: stable and nightly builds of OpenSCAD. With nightly, the very fast manifold engine is used. As this can lead to issues with non-manifold designs, this is not the default; as it is really much faster, I would at least try it out. Switching back to stable is as easy as changing the variable in the docker, if you have issues :)stable and nightly builds of OpenSCAD. With nightly, the very fast manifold engine is used. You can adjust directly in the UI, so if nightly throws an error, try stable instead :)
v1.2 - 08.10.2026
- fixed visibility of arrays in
paramaters - enabled support for labeled sub menus from .scad files
- selection for
render engine(introduced in v1.1) is moved into the UI (dropdown, upper left); status is saved inlocalStorage- variable
OPENSCAD_VERSIONremoved from docker compose (the new UI choice overrides the variable, you don't have to manually delete it)
- variable
- size of filebrowser gets also saved in
localStorage - fixed some UI related discrepancies (chevron colour, tooltips, slider controls...)
- fixed deprecated code calls
v1.1 - 25.09.2026
- New Feature: Toggle the "up"-axis (choose between
Z is up/Y is up) to correct models created in different systems - New Feature: support for faster
manifold enginerendering throughOpenSCAD Nightly;you can adjust this in the docker compose - mesh-models (STL, OBJ, 3MF) are now automatically grounded onto the grid / axis
v1 - initial release - 21.09.2026
Clone the repository and run:
docker compose up -d --buildAccess the WebUI at http://<your-ip>:5343.
SCADarina is not yet part of the community apps plugin: I assembled UNRAID_INSTALL.md for a step-by-step instruction how to integrate the docker into unRAID with native WebUI, and template support.
This project relied on vibe-coding; please use another solution if you are not comfortable with this. It's not an ideal solution. But it solves an issue for me, maybe it will solve one for you.
This project relies on the following projects:
- OpenSCAD
- License: GPLv2
- Used in the backend container for model compilation and rendering
- Three.js
- License: MIT License
- Copyright © 2010-2024 Three.js Authors
- fflate
- License: MIT License
- Copyright © 2020-2023 Arjun Barrett
- Lucide Icons
- License: ISC / MIT License
- Copyright © 2026 Lucide Icons and Contributors, 2013-present Cole Bemis


