Once I was satisfied my spent spool storage system design covered the basics and offered some neat features, it was time to tidy up my CadQuery code. I had been experimenting in a free-wheeling fashion and now I need to apply the Python code organization best practices I've learned to date. This is also the point where I graduated this project from my "CadQuery Tests" repository into its own project repository.

I'm not great with names so I struggled with what to name the repository. I had been calling it the spent spool storage system but its acronym SSSS is unwieldy. I thought about calling it S4 but that's far too close to Amazon S3 for my taste. I decided to pre-pend my GitHub handle "Roger Random" in front, so now it is "Roger Random's Spent Spool Storage System" or R2S4.

R2S4 sounds like a Star Wars astromech droid, and I'm perfectly OK with that. A quick search online found no canonical R2-S4 sibling for the famous R2-D2, so I could be the first. I can stack several of these spent spools together, add a domed head and two stubby legs, and call the result R2-S4. That might be a fun future project.

In the meantime, I ran into a few snags trying to organize my CadQuery code. Syntactically it is Python but conceptually it's very different from any previous Python project I've undertaken. At least it felt that way to my head, so I had a hard time organizing the code in a way that makes me happy. I suspect I'll have more of an opinion on how to organize CadQuery code as I gain experience with writing more.

The final problem I struggled with was the fact I'm asking any prospective users to install CadQuery on their computer so they could configure their own storage system and generate STL files for printing. That seems like a big ask, especially given the Python library situation that now requires virtual environments to keep our different Python projects from stepping on each other's toes. Not ideal!

Sometime after I moved on from this project (but before I got around to writing it down here) I learned of a pretty good answer: we can run small CadQuery projects inside web-hosted Jupyter notebooks available online. Specifically, I was able to run my storage system code inside Google Colab. I thought this was good enough for me to recommend to others, and just one of many lessons I learned while designing a follow-up project: my storage grid.


Source code for this project is publicly available at https://github.com/Roger-random/r2s4