3D-Printed Mathematical Lampshades

Mathy lamps go viral — then the PLA panic starts

TLDR: A maker 3D-printed wavy math lampshades, ditching a failing design tool for Python and a huge file. Comments erupted over material safety—PLA heat and flammability—while tool debates (OpenSCAD vs Blender vs Onshape) raged, turning a cozy art project into a cautionary glow-up.

A home tinkerer turned wavy math equations into a glowing lampshade, sketching the curves in Desmos, struggling with Onshape, and finally asking ChatGPT for Python help to generate a massive 3D file. There’s even a live browser demo using Pyodide and marimo so you can play with the shape without installing anything. It’s nerdy, it’s clever, it’s cozy — and the comment section promptly burst into flames (metaphorically).

The strongest opinions? Safety first. Veterans warn the author’s plastic choice — PLA, a common filament — can warp with heat and even catch fire, pushing for sturdier plastics like PETG or ASA that resist higher temperatures. Cue the drama: some cheer the art-meets-math glow-up, others shout “fire hazard nightlight.” Tool wars erupted too: one camp swears by OpenSCAD (code-based modeling), another groans that Blender’s learning curve is a cliff, while Onshape gets side-eye for choking on complex curves. Python gets a hero moment — “if the app can’t loft it, script it.”

There were laughs: someone flexed a fancy Bambu printer, another dropped “r/OSHA vibes,” and a brave soul shared their own lamp built with a chunky 0.8 mm nozzle to keep prints from failing. The author even popped in, front-page cameo style, fixing links and hyping the marimo demo. Verdict: gorgeous math art, hot debate, and a community split between “wow” and “whoa.”

Key Points

  • A bespoke lampshade was designed by sweeping a 2D mathematical profile into 3D, inspired by viral 3D-printed lampshades.
  • The 2D profile was graphed in Desmos, exported to SVG, converted to DXF in Inkscape, and imported into OnShape.
  • OnShape’s loft operation failed with a complex 1,047-point profile, prompting a switch to Python for geometry generation.
  • A modified Python script generated a scaled profile transitioning to a single top point, producing a ~70+ MB STL now printing.
  • The project’s notebook was converted to marimo, enabling browser-based visualization via WebAssembly without local Python install.

Hottest takes

“Great, but PLA is somewhat flammable.” — lambdaone
“PLA will soften and deform at only mildly elevated temperatures.” — Aurornis
“In theory, one should be able to use OpenSCAD to come up with fancy surfaces to 3-D print, right?” — mlmonkey
Made with <3 by @siedrix and @shesho from CDMX. Powered by Forge&Hive.