December 20, 2025
Charged takes, tiny battery boxes
OpenSCAD Is Kinda Neat
OpenSCAD sparks a charged debate: code your box, click your mouse, or let AI do it
TLDR: A simple battery organizer coded in OpenSCAD shows you can design useful stuff without pricey tools. Comments debated whether OpenSCAD is still maintained, griped about its quirky language, and celebrated AI helping whip up household prints—proving it’s clunky but clutch for quick, practical designs.
A maker whipped up a simple, code-written battery organizer—basically a box that subtracts holes—using OpenSCAD, a tool where you type to design. Fans cheered the minimalist magic of changing a few numbers to pick AA or AAA and set rows and columns. Then the vibe flipped: “Is OpenSCAD still being maintained?” asked one commenter, sparking a pulse of worry, while another dropped a tongue‑in‑cheek link about software best left undisturbed, which the thread read like a meme wink.
Meanwhile, the parametric crowd—people who prefer typing over dragging with a mouse—celebrated. One fan loved “not grabbing knots with the mouse,” but slammed the language as “weird and unfortunate,” complaining about tiny tweak values (“epsilons”) and head-scratchers like let() that confused the original poster. Translation for non-nerds: OpenSCAD is powerful, but quirky.
Then came the curveball: AI as co-designer. A commenter said “ChatGPT is amazing at writing in it,” sharing holiday hook projects and a demo, while another boasted a scale model of Mount Rainier and custom picture frames. The thread’s verdict: OpenSCAD might be odd, maybe aging, but for quick, useful shapes—battery boxes, spacers, hooks—it’s still the scrappy hero the house needs.
Key Points
- •The author recreated a parameterized AA/AAA battery holder in OpenSCAD after initially designing it in Autodesk Fusion.
- •OpenSCAD’s code-based approach uses variables (e.g., numRows, numColumns, batteryType) to compute box dimensions and compartment layout.
- •The model is built by creating a box and subtracting battery compartments via the difference() operation and nested loops.
- •Positioning of compartments uses let() within loops to define startColumn and startRow for translations.
- •The resulting model can be exported to a slicer and 3D printed, making it suitable for simple, practical parts.