InfinityGrid Sticker Designer is a self-hosted web app for creating Gridfinity-style label stickers with icon + text layouts and exporting them for printing/CAD workflows.
- Interactive editor with slot-based icon/text editing.
- Export formats:
3MF(multi-part, slicer-friendly color/material assignment)STEP(multi-body CAD)SVG(2D profile/mask)
- Batch export for all saved tags in
3MF,STEP, orSVG. - JSON import/export for backup and sharing.
- Local icon library from
Icons_SVG/. - Browser-side local storage for saved tags.
- Actively maintained.
- Suitable for personal/self-hosted use.
- Contributions are welcome.
- Frontend:
index.html,assets/js/app.js,assets/css/app.css - Backend: FastAPI + Build123d (
server.py) - Packaging: Docker (
Dockerfile,docker-compose.yml)
- Python
3.12+ pip- Optional: Docker / Docker Compose
- Create and activate a virtual environment.
- Install dependencies:
pip install -r requirements.txt
- Run:
python server.py
- Open:
http://localhost:3000
Build and run locally:
docker build -t infinitygrid-sticker:local .docker run --rm -p 3000:3000 infinitygrid-sticker:local- Open
http://localhost:3000
Cloudflared sidecar deployment is available via docker-compose.yml and .env.example.
Note: docker-compose.yml currently references ghcr.io/10htts/infinitygrid-sticker:latest by default.
Forks should update the image reference to their own registry/image.
Runtime note: export workers use temporary files. In hardened deployments (read_only: true), keep a writable /tmp mount (tmpfs is recommended).
GET /api/iconsPOST /api/export_stepPOST /api/export_3mf
server.py: API and export logic.index.html: UI shell.assets/js/app.js: frontend state/render/export flows.assets/css/app.css: styling.Icons_SVG/: icon source assets.bases/: base STL assets used by export routines.docs/: project notes and technical handoff docs.
- Contributing:
CONTRIBUTING.md - Security policy:
SECURITY.md - Code of conduct:
CODE_OF_CONDUCT.md - Changelog:
CHANGELOG.md - Support:
SUPPORT.md - Third-party notices:
THIRD_PARTY_NOTICES.md
This project is licensed under the MIT License. See LICENSE.