A four-panel kumiko lantern with sliding mortise-and-groove joints. Every part prints flat with no supports, and nothing needs glue. Change anything below and the joinery re-solves itself.
| Part | Qty | Size (mm) | Volume | Plate |
|---|
Friction fit throughout, with an optional reusable snap for the four feet and four screw-head finial caps. The cap lifts off to change the bulb — unless you fit the optional cap screws, which means removing four finials first. If panels bind, raise the slot clearance and reprint only the posts.
The back of each panel is rebated and open at the top edge. Slide in shoji paper or vellum before fitting the cap.
LED bulb only, 9 W maximum. A filament or halogen bulb will soften and deform this lamp — PLA starts to go around 60 °C.
Print the base and cap in PETG; they sit nearest the bulb. PLA is fine for panels and posts. Mains wiring is your responsibility.
The base, posts and adapter ring come out of here as single watertight shells, and their volumes match the Python generator exactly.
The panel lattice and cap grille are built as one closed solid per slat, overlapping where slats cross. Resolving those crossings into a single shell needs a CSG engine the browser does not have; doing it by decomposition instead costs eighteen times the triangles and takes seconds per change. There are no open edges anywhere — every edge is shared by an even number of faces — but the shared ones sit on four faces rather than two, so a strict manifold check calls these non-manifold and your slicer may offer to repair them. Overlapping closed solids are unioned correctly, so they print as drawn.
For strictly manifold files, the Python generator in this repo builds the same lamp with real CSG:
—
One caveat on the numbers above: the volume shown for the panel and cap counts overlapping slats twice, so it reads a few percent high. The other three parts are exact.