Stereographic projection lamps are mesmerizing: a single tea light candle placed inside a spherical shade casts intricate, distortion-free light and shadow patterns onto the tabletop surrounding it.

Traditionally, modeling these lamps required complex conformal mapping mathematics in specialized software or manual UV wrapping that stretches artwork at the equator.

We designed an Interactive SVG-Driven Stereographic Lamp Studio in Blender 5.x. It enables anyone to sketch patterns in standard 2D vector editors (Inkscape, Illustrator, Figma) and update a 3D-printable spherical lampshade in Blender with a single click.

Here is the optical and geometric architecture behind the system.


1. Optical Principles & Stereographic Geometry

The physics of point-source shadow casting dictates that light rays emanate radially from the candle flame center $\mathbf{L} = (0, 0, z_0)$ at $z_0 = 45.0\text{ mm}$.

                 Chimney Exhaust (Ø26mm)
                         [===]
                       /       \
      Spherical Dome  |    *    |  Light Source Origin L (0, 0, 45mm)
        (R = 40mm)     \   |   /
                        \  |  /  <-- Conical Projection Rays
       Base Collar =====+  |  +=====  (Ø53mm Mounting Ring)
      ─────────────────────┴───────────────────── Tabletop (Z = 0)
                 Cast Shadow & Light Field

To prevent optical vignetting (where the thickness of the 3D-printed wall partially blocks the light beam, causing blurred or clipped shadows), the aperture cutout walls cannot be vertical extrusions. They must be radial conical frustums angled precisely along the rays diverging from origin $\mathbf{L}$.


2. The 2D Vector Drawing Convention

The vector template (pattern.svg) establishes a direct 1:1 mapping between 2D screen colors and physical 3D optical behavior:

SVG Color Physical 3D Feature Tabletop Optical Effect
Black (#000000) Solid Spherical Wall ($2.0\text{ mm}$ PLA) Blocks candle flame $\to$ Casts Tabletop Shadow
White (#FFFFFF) Through-Hole Cutout Aperture Passes candle light $\to$ Projects Bright Light

Drawing Zones & Guideline Boundaries

  1. Center Mounting Ring ($\varnothing 53\text{ mm}$):
    • Marked with a dashed blue guideline.
    • Corresponds to the physical base collar enclosing the tea light cup.
    • Drawing inside this boundary is prohibited to preserve structural integrity.
  2. Outer Tabletop Limit ($\varnothing 280\text{ mm}$):
    • Represents the high-contrast light projection zone on the table ($r \approx 140\text{ mm}$).
  3. Bridge Tabs for 3D Printing:
    • Any solid black island completely encircled by a white aperture requires bridge tabs ($1.5\text{–}2.0\text{ mm}$ width) so the island remains mechanically attached to the dome shell.

3. Geometric Pipeline: Pristine Quad Sphere + 3D Conical Cutters

Early attempts tried to project 2D SVG meshes directly onto the sphere using Delaunay triangulation. This caused severe polygon stretching and pinching near the equator.

We solved this with a hybrid CSG architecture:

[2D Vector Paths from SVG]
          │
          ▼
 Extrude outward along rays from L ──► Closed 3D Conical Cutters
                                                  │
                                                  ▼
 Pristine Solidified Quad Dome (R=40mm) ──► Exact Boolean Difference ──► Watertight Lamp Shell
  1. Pristine Quad Dome Generation: The base lampshade is generated parametrically as a clean quad mesh:

    • Cylindrical base collar ($\varnothing 53\text{ mm}$, height $8\text{ mm}$).
    • Spherical dome cap ($R = 40\text{ mm}$, center $(0, 0, 45\text{ mm})$).
    • Top chimney exhaust ($\varnothing 26\text{ mm}$) allowing convective heat from the candle flame to escape.
    • Solidified inward by uniform $2.0\text{ mm}$ wall thickness.
  2. 3D Conical Cutter Extrusion: Each vector contour polygon $\mathbf{V}_k$ on the $Z=0$ table plane is projected outward past the sphere surface:

    $$\mathbf{P}_{\text{cutter}}(\mathbf{V}_k, s) = \mathbf{L} + s \cdot (\mathbf{V}_k - \mathbf{L}), \quad s \in [0.8, 2.5]$$
  3. Exact CSG Boolean Difference: Blender’s EXACT boolean engine subtracts the conical cutter volumes from the pristine dome. Because the cutters follow the optical rays, the through-hole sidewalls are automatically draft-angled, eliminating shadow fuzziness.


4. One-Click Sync Addon Workflow

To eliminate manual file importing, a lightweight Blender Python addon registers a panel in the 3D Viewport (N sidebar $\to$ Stereo Lamp):

class OBJECT_OT_UpdateStereoLamp(bpy.types.Operator):
    bl_idname = "object.update_stereo_lamp"
    bl_label = "Synchronize SVG Pattern"
    
    def execute(self, context):
        svg_path = bpy.path.abspath("//pattern.svg")
        # 1. Parse SVG curves
        # 2. Build 3D conical cutter collection
        # 3. Re-evaluate boolean difference on Dome object
        # 4. Trigger viewport redraw
        return {'FINISHED'}

Artists can sketch in Inkscape, press Ctrl+S, switch to Blender, click Synchronize, and immediately see their optical light and shadow pattern simulated in real time using EEVEE Next shadow maps.