I built an open-source package manager and web customizer for OpenSCAD called Scadder. It recursively crawls and pulls dependencies directly from GitHub.
The web customizer compiles and visualizes .scad files at any GitHub URL using openscad-wasm. All parameter customizations are serialized directly into the URL, so you can tweak a model and share it as a link, with no backend or login required.
For local development, "npx scadder install [url-or-model-id] " crawls GitHub and fetches the target .scad file plus all nested include and use dependencies into a local .scadder_modules folder.
The library is defined in a library.json file on GitHub. Comments use Giscus to map GitHub Discussions to model pages. The dependency crawler that powers the web customizer and CLI is the same code. One resolves to virtual filesystem (browser), the other to disk (CLI).
I built an open-source package manager and web customizer for OpenSCAD called Scadder. It recursively crawls and pulls dependencies directly from GitHub.
The web customizer compiles and visualizes .scad files at any GitHub URL using openscad-wasm. All parameter customizations are serialized directly into the URL, so you can tweak a model and share it as a link, with no backend or login required.
For local development, "npx scadder install [url-or-model-id] " crawls GitHub and fetches the target .scad file plus all nested include and use dependencies into a local .scadder_modules folder.
The library is defined in a library.json file on GitHub. Comments use Giscus to map GitHub Discussions to model pages. The dependency crawler that powers the web customizer and CLI is the same code. One resolves to virtual filesystem (browser), the other to disk (CLI).
Live: https://scadder.dev/ Source: https://github.com/solderlocks/scadder (GPL-3.0)
Curious if anyone's tackled OpenSCAD dependency resolution differently, or if there are edge cases my crawler doesn't handle.