Guide: Library Manager
September 7th, 2026 by Leszek
sCADman stores your work in an IndexedDB virtual filesystem on your device. The Storage activity (next to Code and Public Library) has sub-tabs: Files and Libraries.
This guide covers how projects, assets, and installed libraries work together, how the compiler finds them, and how to use the Library Manager.
Table of Contents
Projects vs lib/
A project is any top-level folder except lib. Saved editor files live at {Project}/… and compile into WASM as /work/{Project}/….
lib/ is a reserved Storage root created automatically. Library Manager installs packages here (lib/BOSL2/…). You cannot delete, rename, or move lib itself, and you cannot create a user project named lib. Package folders inside lib/ can be added or removed.
A folder named lib inside a project (for example MyProject/lib/hinge.scad) is a normal folder. Use it for your own helpers:
That path is relative to the project file, not to the global Library Manager root.
Supported files
Upload and drag-and-drop accept only file types that OpenSCAD can include, use, import(), or pass to surface():
| Extension |
Used by |
.scad |
include / use (project files open in the editor) |
.stl .obj .3mf .off |
import() mesh |
.dxf .svg |
import() 2D |
.json |
import() data |
.png .dat |
surface() |
Other files are skipped. Non-.scad files appear in the tree but do not open in the code editor.
Clicking a .scad file under the global lib/ does not open it (that would replace the current buffer). Instead it prepends an include such as include <BOSL2/std.scad> (path relative to lib/) to the code already in the editor. Other files under lib/ stay unopened.
Library Manager
The Libraries sub-tab is the Library Manager. It reads a built-in hand-selected catalog (If you have any suggestions for adding new libraries, let me know!). Each row shows essential information about given library. A green checkmark marks an installed package.
Install
Install downloads from jsDelivr/Github repo to your local storage:
- Package metadata:
https://data.jsdelivr.com/v1/packages/gh/{owner}/{repo}@{branch}
- Each mountable file:
https://cdn.jsdelivr.net/gh/{owner}/{repo}@{branch}/{path}
- Files are written under
lib/{repoName}/
Documentation, tests, tutorials, examples, and other non-mountable files are skipped.
Remove
Remove deletes only that package folder under lib/. The reserved lib/ root itself stays in place.
Editor path completion
In a path context the editor suggests files and library hints without you having to open the Storage tab first (Storage is refreshed when the editor starts).
Triggers include <, ", and /.
| Context |
Suggestions |
include / use + < |
Catalog hints (for example BOSL2/std.scad), installed lib/ packages, and project .scad files relative to the open file |
import("…") |
Mesh, 2D, and JSON assets |
surface(file = "…") |
.png / .dat files |
Limits and backup
- One file write is capped at 8 MiB.
- Combined project + library bytes sent to the compiler are capped at 32 MiB.
- The browser origin quota still applies (see the Storage quota chart in the app).
- Download / restore zip includes
lib/. A restore replaces all Storage roots, then re-seeds lib/ if the backup had none.
Keep a zip backup if you rely on installed libraries and project assets. Clearing site data for this origin also clears IndexedDB Storage.
Practical tips
- Install BOSL2 (or another catalog library) from the Libraries tab, then write
include <BOSL2/std.scad> — or click the package’s main .scad under lib/ to prepend that include.
- Put reusable project helpers in
{Project}/lib/… and include them with a path relative to the current file.
- Keep large meshes and textures inside the project folder so
import() and surface() resolve the same way they would on desktop OpenSCAD.
- If an include fails after install, check that the path is relative to
lib/ (BOSL2/std.scad, not lib/BOSL2/std.scad) and that the package folder is present under Storage → Files → lib/.
The Library Manager is meant to stay small and predictable: a curated catalog, packages stored under a reserved lib/ root, and the same include rules as desktop OpenSCAD.