Benchfinity is a browser app for generating Gridfinity-compatible workbench baseplates as STL, split ZIP bundles, and Bambu Studio-style 3MF files.
The V1 app runs locally in the browser. The next Workbench phase adds accounts, projects, saved designs, export history, and a QQQ/Postgres backend.
npm install
npm run dev
npm run test
npm run build
npm auditBenchfinity publishes container images to GitHub Container Registry.
docker build -t benchfinity-workbench .
docker run --rm -p 8080:8080 benchfinity-workbenchThe production image serves the built Vite app on port 8080. Published images use ghcr.io/benchfinity/workbench.
src/App.tsxowns top-level state, defaults, validation, and export orchestration.src/components/owns UI surfaces: controls, settings, preview, and reusable fields.src/geometry/owns Gridfinity layout, split planning, connector placement, and mesh generation.src/export/owns file creation.createExportBlob.tsselects STL, ZIP, or 3MF;bundle.tswrites split ZIPs;stl.tswrites binary STL;threeMf/contains focused 3MF package, mesh, placement, XML, and Bambu metadata modules.src/printers.tsowns printer presets and grouping for UI selectors.
AGENTS.mdcontains repo-specific agent instructions.docs/SESSION-STATE.mdrecords current implementation status and validation notes.docs/AGENT-HANDOFF.mdsummarizes the current ground truth and next best work.docs/WORKBENCH-VNEXT.mdis the requirements/design source for the next large expansion.docs/TODO.mdtracks completed V1 work and next-phase tasks.
- Exact finished envelope with centered Gridfinity cells and solid perimeter padding.
- Project name input used in exported filenames, manifest, and README.
- Benchfinity footer linking to benchfinity.com.
- Settings dialog for saved defaults in local storage.
- Pre-export validation for project name, dimensions, margin, printable fit, and generated tiles.
- Standard
42mmGridfinity pitch by default. - Tracefinity-compatible socket profile.
6mm x 2mmmagnet pockets enabled by default.- Open-bottom lightweight mode for lower-filament grid-only prints.
- Automatic split tiles when the plate is larger than the printable bed.
- Printer bed presets grouped by brand, with Bambu Lab H2C left-nozzle selected by default and a
Customoption for manual dimensions. - Edge-open underside connector notches with a separate connector key STL.
- Bambu Studio-style 3MF export with one printable plate per generated tile, plus STL export for single plates and ZIP export for split plates.
developis the default branch for integration work.feature/*branches publish snapshot container images tagged with the sanitized branch name and short commit SHA.developpublishes a snapshot image and thedevelopimage tag.release/*andrc/*branches publish RC images and prerelease GitHub Releases.mainpublishes the clean package version image tag and a stable GitHub Release.
Benchfinity is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0-only) — see LICENSE. Running a modified version as a network service obligates you to offer its source to users (AGPL section 13). For commercial licensing without AGPL terms, contact the maintainers.
Contributions are accepted under AGPL-3.0 via the Developer Certificate of Origin; sign off your commits with git commit -s. See CONTRIBUTING.