尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證Gridfinity baseplates and bins, built to the drawer you actually have. Free and browser-based, no account: measure once, split the plate to fit your printer, lay out the bins, export STL and 3MF.
翻譯準備中
取自儲存庫 README
正在載入完整 README。
檢視完整 README ↗Gridfinity baseplates and bins, built to the drawer you actually have.
Drawerforge is a pair of free, open, browser-based tools for Gridfinity. Measure your drawer once, and it works out the grid, splits the baseplate to fit your print bed, joins the pieces with printable connectors, then lays out the bins that go inside — exporting STL and 3MF, including pre-arranged print plates that open straight in your slicer.
Everything runs in your browser. Nothing is uploaded, there's no account, and there's no tracking.
▶ Baseplates — drawerforge.co.uk · ▶ Bins — drawerforge.co.uk/bins · Guide
Your drawer dimensions carry between the two, in both directions, without losing your work. Kitting out a whole chest? Save each drawer by name — its baseplate and its bins together — switch between them on either page, and export them as a small design file to move them to another device.
Written for the questions people actually arrive with, and readable without opening either tool:
The shipped app is a handful of static HTML files with no runtime build step.
/bins/, the guide at /guide/.Hosting it unmodified needs nothing further. If you change it and put it in front of other people, the licence asks you to offer your users the source of your version — point the Source code link in the page footers at your own fork and that covers it. Keep the name off it (see License).
three.js and JSZip are vendored in vendor/ and served from your own origin, so
a page makes no third-party request at all. Copy that directory along with the HTML. The
build refuses to emit a page that references an external script or stylesheet, so a CDN URL
cannot creep back in.
The site also installs as an app. Once any page has been opened over http(s), a service
worker (sw.js) keeps a copy of every page and of vendor/, so the tools open with no
connection at all, layout link included, and the browser offers to install it to a home
screen or dock from manifest.webmanifest. Both sit at the root and have to stay there: a
worker only looks after pages in its own folder and below. A page opened from a file does
not use either, and works offline as it always has.
The tab icon (favicon.svg, apple-touch-icon.png), the installed app's icons
(icon-192.png, icon-512.png, icon-maskable-512.png) and the picture a shared link is
shown with (og-image.png) sit at the root beside the pages. The icons are linked
relatively and follow a fork anywhere; the link-preview image is an absolute
drawerforge.co.uk URL, as the canonical links are, because a crawler has no page to
resolve a relative one against. The tab icon and the link preview are set in
tools/seo.js, the app's icons and manifest in tools/app.js.
index.html, bins/index.html and every page under guide/ are generated, and so are
sw.js and manifest.webmanifest (from src/sw.js and tools/app.js). Edit the sources,
never the built files:
| file | contents |
|---|---|
src/shared-ui/style.css | one stylesheet, both tools |
src/core.js | shared geometry engine — pure JS, also runs headless in Node |
src/template.html, src/ui.js | the Baseplates tool |
src/bins/bin.js | bin geometry, no CSG at all |
src/bins/template.html, src/bins/ui.js | the Bins tool |
src/guide/*.html | the guide pages, one file each |
node build.js
The build itself needs nothing but Node — it splices text. node build.js --check verifies
the outputs are in sync without writing, and runs in CI. The full test suite does have
dependencies, because the browser tests drive a real browser; see
CONTRIBUTING.md for how to run it.
og-image.png and apple-touch-icon.png are generated too, but by a browser rather than by
the build — the card carries a real render of the Bins preview. After a change you would
want a shared link to show, rebuild and then run:
node tools/social-image.js
The app icons are drawn from favicon.svg the same way. After changing the favicon, run
the script and then the build, because the service worker's cache name is a hash of the
files it caches and the icons are among them:
node tools/app-icons.js && node build.js
The build refuses to emit output unless three checks pass, each of which has caught a
shipped bug: node --check on every source; an id audit (every $('id') must exist in
its template); and a display-reachability audit (anything hidden with display:none
must be un-hidden somewhere, or it is dead UI).
Geometry is verified headlessly:
node test/bin-audit.js
node test/fit-check.js
Read docs/ENGINE.md before touching geometry. The CSG is fragile in specific, documented ways, and the failure mode is silently broken output rather than a crash.
Some joint pockets intentionally leave small uncapped faces where a cut interrupts the top rim (≈20 mm² per piece, all simple planar rectangles). Every mainstream slicer's automatic mesh repair closes these.
Found a bug, or want a feature? Open an issue — reports with a settings share-link attached are especially easy to act on.
If the tool saved you some time, there's a tip jar at ko-fi.com/oliver_johnson — entirely optional, always appreciated.
AGPL-3.0-or-later — free software, and it stays free software. Use it, fork it, self-host it, build on it. If you distribute it or run a modified version as a public service, you have to offer that version's source under the same terms.
The models you make with it are yours. Everything the tool generates — STL, 3MF, the ZIP, and the geometry in them — is explicitly excluded from the licence. Sell the files, sell the prints, sell them on Etsy at a markup. No attribution, no obligation, no share of anything. That exception is written into NOTICE rather than left to be argued about.
The name is reserved: call your fork something else, so visitors can tell whose work they are looking at. A link back is appreciated but not required.
LICENSE is the AGPL text, unaltered; NOTICE holds the two additional terms above. Every version published before NOTICE was added was MIT, and that grant is not withdrawn.