Close

Looking back at 2024

A project log for Boxes.py

Cut out boxes and other stuff with a laser cutter

florian-festiFlorian Festi 12/22/2024 at 21:561 Comment

... and a bit beyond. 2024 is at its end. Time to have a look back and see what has happened in the project.

End of 2023

Still back at the end of 2023 I added two generators on popular requests.

SkadisBoard, simple version of the IKEA storage system with the same name. There currently are no generators for anything that attaches to the board. Maybe the WallMounted series could grow an option for that.

An "urgent need" in our hacker space was better pizza handling. PizzaShovel does just that. It uses a conveyor belt action that is kinda magical. It sneaks its way under the pizza without it needing to slider over the surface. I had seen this years ago as an industrial handling device that can even pick up a blob of ketchup and place it down just the way it was. Pizza is not quite as challenging but raw dough is not trivial move around either. 

Boxes with a mission

First project actually in 2024 was the AirPurifier I did on collaboration with MachineryEnchantress Naomi Wu. It's a simple box with a filter or two and a few PC fans:

It is the first in a long list of boxes with a few features added to turn them into something else - even if they are still very boxy at heart.

A very beautiful example is ojensen5115's CoinBankSafe. It's "just" a box with a hinged lid. But dials and a slit on top make it into a very nice piggy bank. The "lock" is simple but just fine for this purpose. There is a future project to upgrade to a proper combination wheel for someone.

The BrickSorter by fidoriel turns boxes into a set of sieves to sort your favorite building blocks.

DiceTower has been on my ToDo list for a long time. But there are so many options and possible features: a bowl to catch the dice, a lid so it can be used as a dice container, may be have the catching bowl be detachable to you can toss the dice back in with it, ...

I never could bring myself to just do the simplest possible solution - just a box with a few angled walls within. Thanks to tljuniper for doing just this. 

ZBeam by jasondunsmore is meant as a cable channel with a mounting tab. It also offers a U channel option. It is basically the continuation of the LBeam by the very same means.

Storage Solutions

Storing things and especially small objects is the bread and butter of Boxes.py. There are quite a few new options in this area. But a good portion are variants of other generators.

The GridfinityDrillBox is just the normal DrillBox but rehashed for the Gridfinity system. This is something one could probably been able to do before by carefully selecting the sizes and gluing on the the foot pad. With this generator this is much easier. These drills look a bit funny, though...

The BinTray has been around for quite a while. But it is meant to be stationary.  pkochubey took the idea and combined it wit the Stackable Edge to get these beautiful and very useful StackableBins

AlexCPU adjusted it to get it into the WallMounted group as WallStackableBin - allowing it to be hanged on a French cleats or slat wall.

But he was not quite finished with the whole bin idea and created the WallHopper for even more storage space. I wonder if screws really is the best use of this when one could just as well put some candy in.

WallRack is a bit of an odd one as it is not part of the regular WallMounted crowd that supports slat wall and French cleats etc. It instead sports just mounting holes for screws. Still a handy little storage solution that does not quite come with the complexity of the TypeTray configured for wall mounting. 

J-Waal's  CompartmentBox is a blend of the TypeTray and the CardBox offering a sliding lid over a grid of compartments. 

HobbyCase that JGrzybowski did for Hacktoberfest is a very nice storage solution for everything than needs many small pieces that need to stand in an orderly manner - like figurines. The picture below does not quite give it justice. It allows for fixed and removable shelves that can be configure on assembly. The doubled up walls allow shelves on the same height from both sides - without them being just one big piece like a turned up TypeTray

One could add several different types of shelves in the future. For now you can just use plan rectangles or cut simple boxes with the right dimensions from other box generators.

Gift Boxes

There isn't  clear line where utilitarian storage boxes stop and more ornamental boxes start. I'll just draw it here - acknowledging is is an arbitrary line.

RoundedRegularBox had been on my ToDo list for so long that I thought I had actually already done it. Turned out yes, I do have a file with that name in my local development tree - but it's just a copy of the non-rounded RegularBox. The sample image unfortunately is still missing but is looks basically like the RoundendBox but is shaped like a regular polygon instead of a rectangle.

Please donate a picture if you cut one.

FlexBook is another of ojensen5115's gems. It sports a very neat sliding latch. and the rounded corners give it a refined look.

This isn't gcollic's first appearance in Boxes.py. His SideHingeBox does have a few firsts though. It allows using Cherry MX buttons as spring loaded latches. This would be a weird choice if building custom keyboards wasn't a pretty common past time in many hacker spaces. Not being content with just one innovation he also ships the 3D printed "key cap" as a OpenSCAD script - as text in the drawing.

Framed for being a Box

Frames are also just a box with a big hole on front - more or less. So there are a few of those, too.

PhotoFrame isn't even a box but a set of layers. I would normally argue one might not need a generator for that. But marauder37 does know something I don't: How to make a frame look good by choosing the right dimensions and proportions. So now everyone can.

Most beautiful addition of the year clearly goes to the ShadowBox also by ojensen5115. A "picture" frame for multilayered shadow art made from paper. Sorry, you need to supply the art yourself. Boxes.py only does the surrounding frame. 

Another Boxes.py just providing the frame situation is the (LED-) Matrix also by fidoriel. You have to bring your own WS2812b matrix and power supply.

Beyond Boxes

tljuniper's BookHolder is a book stand that can also be used for a laptop or tablet. It supports a ledge on the front to keep the book open - or the laptop from slipping off - although it is not shown below.

FatBallDispenser by mrab is the last addition for the year. Instead of relying on finger joints it marks how to grind, file or sand the edges to the right compound angles. It comes with a cute blue tit as a mascot, too.

Other Changes

Rotzbua has been trying to drag Boxes.py into the current decade for quite a while. Many places were - and some still are -  showing that it started as an Python 2 project. He has been doing all kind of chores that are going unnoticed by most users. The more notable change is the introduction of a pre-commit based CI that checks all PRs and commits. Beside a lot of code sanity checking it also generates all boxes with default settings and checks them for changes.

At the same time I moved the build infrastructure to pyproject.toml. There is probably more to be cleaned up there. Luckily the decade still has a few years left...

Workshop on the IGERla in Bamberg

I did a work shop "My own box" in June. Unfortunately there isn't a video recording. But the slides are in the respository.

The first one being an introduction into whether and how to do your own box and the second is a bit older introduction into the API. I actually did a few talks about Boxes.py that got recorded. May be I should collect the links somewhere at some point...

Conclusion

When I started this retrospect I thought the year was pretty quiet and this shouldn't be too long. Looking up right now I is pretty obvious how I could have made this error. While I only wrote a few new box generators several community members have done fantastic work. Not only are their new generators fantastic, a huge number of pull requests were of much higher quality than I was used from previous years. 

Don't get me wrong! I am very happy to help a novice wit a great idea to get a new box generator to the point where it can be merged into the main tree. I have basically accepted that some details like generating the thumbnails or adding the example SVG for the test suite is my duty.

But a lot PRs have been very complete and done by very competent developers. They come with lengthy descriptions texts and assembly instructions, great pictures, SVG for the test suite. These put my own additions to shame which are more often than not of the quick and just good enough variety. 

With such a vibrant developer community out there I am looking forward to what will 2025 will bring.

Discussions

JayFabra wrote 02/01/2025 at 18:58 point

I love how huge boxes.py has become

  Are you sure? yes | no