Build-As-You-Go Storage System with Tray Labels
I've designed a 3D-printable storage system using spent 3D printing filament spools as its central structure. I've made the design configurable to fit different size spools and generate different size trays. The parameters to fit a specific spool size are fairly straightforward if we already have one such empty spool in hand: get out some measuring tools and maybe do some math. But the parameters for the storage tray size will depend on what it is storing, and that might not be known yet. So I've added a provision to build-as-you-go.
The problem I encounter with many configurable systems is that it assumes I have the full picture when I start. But sometimes I don't! And I either make some educated guesses that later turn out to be wrong, or I fall into analysis paralysis and don't do anything at all. This is why I avoid making such an assumption here, and added the provision of printing placeholder segments.
A placeholder segment is a tray base with only the inner locking tab-and-slot ring so it prints with very little filament. So a particular storage bin can start with a single tray to hold what we want to store. The remaining spaces remain empty, with only placeholder segments to keep the whole thing together. It is valid to start with a single 15-degree tray and fill the rest with placeholders until we know what we want to keep there, as shown here:

The tray base visibly extends beyond the rim of the spool because I needed some room to allow the retention loop to flex. Being able to push the lip of the ring downwards makes tray removal easier. While designing the tray to match, I added a 45-degree sloped area at the tray's top lip which will serve nicely as an area to put a label explaining what's in that tray. This label area is most visible in a side view like this picture:

Also visible in this picture is that my tray does not occupy the full available vertical volume, there's a few millimeters left above the tray. Top gap visible in this picture is the same height as the retention ring, so we could lift the tray up and over the ring to remove the tray without bending the ring. If the gap is any smaller, we'd have to push the retention ring down further to create the clearance, or we have to deform the tray to pull it out. (Easier with flexible single-wall vase mode printed trays than thicker stronger trays.)
I debated how big this gap should be. Leaving it large makes the tray easy to remove but risk the tray falling out if the whole spool is jostled. Decreasing the size of the gap reduces the risk of spills, but makes tray removal more of a hassle. I ultimately decided there is no right answer. An user has to make the tradeoff that is right for their scenario, and they can get their ideal tray fit by adjusting the height parameter.
Source code for this project is publicly available at https://github.com/Roger-random/r2s4