Gridfinity STL file generator web application
Find a file
2026-01-09 18:45:53 +01:00
.forgejo Add .forgejo/workflows/test_action.yml 2026-01-09 18:45:53 +01:00
.github Change runner label 2026-01-09 18:40:47 +01:00
.vscode Initial commit 2023-03-04 15:59:30 +01:00
generators chore: Add some logging 2025-12-02 08:42:47 +01:00
help_files docs: fix some typos 2025-12-02 09:09:45 +01:00
static finalize the help-texts and images 2024-07-09 17:05:37 +02:00
templates chore: Add some logging 2025-12-02 08:42:47 +01:00
.all-contributorsrc docs: add dseifert as a contributor for code (#38) 2025-12-02 09:15:55 +01:00
.env.container Created the READ in preparation for moving the code to GitHub 2023-10-06 14:25:11 +02:00
.env.container.template Added logging so I can track traffic and gather statistics on bin types and sizes 2024-05-30 14:17:18 +02:00
.gitignore chore: Added vscode to gitignore 2024-12-03 21:14:01 +01:00
build.sh Initial commit 2023-03-04 15:59:30 +01:00
CITATION.cff Create CITATION.cff 2025-01-15 22:23:56 +01:00
debug.sh Added logging so I can track traffic and gather statistics on bin types and sizes 2024-05-30 14:17:18 +02:00
deploy.sh Redesign of the frontend and preparation to introduce alternative grid specifications 2024-05-24 16:13:03 +02:00
docker-compose.debug.yml Added logging so I can track traffic and gather statistics on bin types and sizes 2024-05-30 14:17:18 +02:00
docker-compose.yml Disable the Traefik labels for the default deployment 2024-07-02 12:52:25 +02:00
Dockerfile fix: new release of cadquery and/or miniconda broke the container. This seems to fix it 2025-12-02 08:42:47 +01:00
gfg_main.py fix: Use renamed template files 2025-12-02 08:42:47 +01:00
grid_constants.py feat: Increase the max number of compartments per grid unit. 2025-12-02 08:42:47 +01:00
help_provider.py finalize the help-texts and images 2024-07-09 17:05:37 +02:00
LICENSE Added license file 2023-06-04 20:42:51 +02:00
README.md docs: add dseifert as a contributor for code (#38) 2025-12-02 09:15:55 +01:00
requirements.txt fix: Add nlopt as dependency, which is needed by cadquery but not installed in Conda by default. 2025-12-02 08:42:47 +01:00
version.py chore: bump version 2025-12-02 08:42:47 +01:00

All Contributors Server status

Gridfinity Creator

This application generates STL or STEP files of configurable Gridfinity compatible components. For example, for the standard divider bin you can specify width, length, height, number of compartments (in both directions) and whether or not you want a stacking lip, magnet holes, screw holes, curved scoop surface and/or one or more label tabs. Here are some of the possible bins you can create in this way: gridfinity-options The total number of possible combinations with those options is beyond one million, which is why the 3D models are dynamically created and not pre-calculated.

Available components

There are currently a few components available, listed below. Other components are in the works.

  • Baseplate: Basic baseplate without screws, magnets or weighting.
  • Divider bin: Standard divider bin very similar to Zack's original design.
  • Light bin: A light version of the normal Gridfinity bin that saves plastic and offers more room. This means there is no room for magnets and/or screws
  • Solid bin: A completely filled solid Gridfinity bin which can be used as a starting point for custom bins
  • Holey bin: A solid bin with a grid of holes of user-defined shape, size and depth. Includes option for a keepout-area around each hole

Online generator

If you don't know how to run your own server (or simply don't want to), there should be an instance of the generator running at https://gridfinity.bouwens.co. No uptime guarantees, but it has been running since early 2023 and seems stable enough, even with the occasional spike in load.

Installation and deployment

The generator runs as a web-application in a docker container. To run your own instance, perform the following steps from the command line:

  • Download and unzip the code or clone the repository: git clone https://github.com/jeroen94704/gridfinitycreator
  • cd into the source directory
  • Build the Docker Image: ./build.sh (may need to prefix this with 'sudo')
  • Start the server: ./deploy.sh (may need to prefix this with 'sudo')

Now you can access the application by opening a browser and navigating to :5000, e.g.

http://192.168.1.100:5000/

Debug mode

The deploy script results in the server running in production mode using the Waitress WSGI server. This is good for performance, but if you want to debug the code, start the server using the "./debug.sh" script instead of "./deploy.sh". This will make the server start itself using the built-in Flask server, which has convenient debugging features.

Reverse proxy

Because I use Traefik myself I included the Traefik labels I use in the docker-compose file. If you want to use Traefik, uncomment them and comment out the "ports" section. You will also need to fill in your domain in the .env.container file.

I have no experience with other reverse proxy methods (Apache, nginx, Helm, etc), so if anyone creates instructions for setting up GridfinityCreator with any of those I'd happily accept the pull-request.

Contributors

Kirk Kirkconnell
Kirk Kirkconnell

🤔
wug-ge
wug-ge

🐛
Chase Bolt
Chase Bolt

🐛
Daniel Seifert
Daniel Seifert

🐛 💻

Donate

If you find this project useful a small donation is much appreciated (but by no means required or expected): https://ko-fi.com/jeroen94704

License

GridfinityCreator © 2023 by Jeroen Bouwens is licensed under CC BY-NC-SA 4.0. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/4.0/