LampMaker 3D: Engineering a Parametric 3D-Printable Lamp Studio in Blender
How to build a procedural lighting generator in Blender supporting Bambu Lab LED Kit 001, E27/E14 sockets, under-base cable tracks, and vase-mode shades.
Designing 3D-printable table lamps and pendant shades presents an engineering challenge: while the decorative shade requires organic, thin-walled, translucent geometry (best printed in high-speed continuous Vase Mode), the mounting base must be rigid, thermally safe, mechanically weighted, and wired with proper strain relief.
Most decorative 3D models available online ignore electrical realities—lacking cable escape channels, failing to account for heat dissipation, or hardcoding one specific light socket.
To solve this, we created LampMaker 3D, an open-source parametric lighting generator in Blender 5.x engineered specifically for 3D printing with standard electrical hardware.
1. Supported Socket Hardware Standards
Different lighting applications require specific mounting geometry and thermal clearances. The generator parameterizes socket interfaces across 5 industry standards:
| Socket Standard | Hole Diameter | Application | Dock Interface Features |
|---|---|---|---|
| Bambu Lab LED Kit 001 | $\varnothing 60.2\text{ mm}$ | Low-voltage USB table lamp | $9.5\text{ mm}$ recess, friction lip, center air buffer, $4.8\text{ mm}$ cable track |
| E27 (Edison Screw) | $\varnothing 41.2\text{ mm}$ | Mains pendant / Table lamp | Standard shade-ring clamp, $6.8\text{ mm}$ 2-conductor cable channel |
| E14 (Small Edison) | $\varnothing 29.2\text{ mm}$ | Compact desk lamp / Sconce | Threaded collar clamp, $5.8\text{ mm}$ cord channel |
| E26 (US Standard) | $\varnothing 40.2\text{ mm}$ | Standard US desk lamp | Threaded collar clamp, $6.8\text{ mm}$ cord channel |
| Tea Light | $\varnothing 38.6\text{ mm}$ | Cordless table ambient | $18.0\text{ mm}$ deep cup for wax or battery LED candles |
2. Two-Piece Interlocking Architecture
Rather than printing a lamp as a single fragile monolithic body, LampMaker 3D splits the design into two functional modules:
+-----------------------------------+
| Lampshade (Vase Mode) | <-- Single continuous spiral perimeter
| (Thin, Translucent PLA/PETG) | Diffuses light, 0 retractions
+-----------------------------------+
| Female Slip Collar (+0.35mm) |
+===================================+
| Male Mounting Collar |
| Solid Weighted Base Dock | <-- Multi-wall, high infill for stability
| [Recessed Cable Track (Z=0..4mm)]| Flush cord exit, thermal chimney
+-----------------------------------+
1. The Heavy Base Dock
- Sliced solid ($3\text{–}4$ perimeters, $25%\text{ infill}$) to provide a low center of gravity.
- Under-Base Cable Track: Recessed channel extending from the center socket recess to the outer perimeter ($z = 0\text{ to }4.2\text{ mm}$) with a flush $90^\circ$ exit slot. This guarantees the power cord exits flat, eliminating rocking.
- Thermal Chimney: Convective air intake vents allow passive chimney airflow past the LED module.
2. The Vase-Mode Lampshade
- Sliced in continuous spiral vase mode ($0.6\text{–}0.8\text{ mm}$ line width) for print speeds under $1.5\text{ hours}$.
- Concentric Slip Collar: Features a $+0.35\text{ mm}$ radial clearance ($0.70\text{ mm}$ diametric clearance) that slides snugly over the base collar without light leaks or tilt.
3. Parametric Silhouettes & Cross-Sections
The vertical silhouette profile is controlled by Monotone Cubic Hermite splines:
Lip Flare (r_lip) \ /
\ /
Neck Waist (r_neck) | |
/ \
Belly Flare(r_belly) / \
| |
Base Dock (r_base) +---------------+ Z = 0
Intermediate cross-sections can transition between arbitrary mathematical profiles:
- Fluted Star: Star contours with adjustable flutes and sharpness exponents.
- Squircle (Superellipse): Continuous algebraic transition from circle to square via Lamé curve exponent $p$:
- Harmonic Waves: Multi-frequency sinusoidal ripples.
4. Multiplicative Diamond Knurling
To give lampshades crystalline light refraction, the generator supports dual-spiral diamond knurling:
def evaluate_knurl_relief(u, theta, num_knurls=24, depth=1.8):
"""Calculates dual helical knurl displacement."""
# Right-handed and left-handed helical angles
phi1 = theta * num_knurls + u * 4.0 * math.pi
phi2 = theta * num_knurls - u * 4.0 * math.pi
# Multiplicative wave crests
wave = (math.cos(phi1) * 0.5 + 0.5) * (math.cos(phi2) * 0.5 + 0.5)
return wave * depth
Smooth Docking Margins
Relief textures must not interfere with the base mounting interface or the top thermal chimney. The generator applies cosine-blended fade zones:
$$w_{\text{fade}}(z) = \begin{cases} 0, & z < z_{\text{collar}} \\ \frac{1}{2}\left(1 - \cos\left(\pi \frac{z - z_{\text{collar}}}{z_{\text{fade}}}\right)\right), & z_{\text{collar}} \le z < z_{\text{collar}} + z_{\text{fade}} \\ 1, & \text{body region} \end{cases}$$This ensures that the female collar remains a pristine, untextured cylinder for a perfect mechanical fit over the base.