Skip to content

Fiber sheath v1

Passive self-aligning Nanoscribe fiber sheath that drops onto an on-chip lens.

A Nanoscribe (IP-S) test structure for a passive, self-aligning fiber sheath that drops onto an on-chip lens. The fiber gets pushed into the sheath, lands on three index-matching bumps, and is held against the lens with a small air gap underneath. Optical glue is later applied; the bumps keep the fiber from sitting on a stray particle and the membrane keeps the glue off the lens.

                              ___________
                            /             \         <- funnel  (15..345 deg)
                           |               |           ID 124 -> 250, wall 20 um
                           |               |           height 50 um
                            \             /
                            +-------------+
                            |   fiber     |        <- sheath top (15..345 deg)
                            |   (125 OD)  |           ID 124, OD 250
                            |             |           height 750 um
                            |             |
                            +-------------+
                            |             |        <- sheath bottom
                            |             |           ID 130, OD 250
                            |             |           height 50 um
                            +-------------+
       . . . o . . . . . . . o . . . . . . . o   <- 3 bumps (r=50, hemi r=3)
       =============================================  <- membrane (2 um, OD 250)
       |xxx|     |xxx|     |xxx|     |xxx|     |xxx|  <- base ring segments
       |xxx|     |xxx|     |xxx|     |xxx|     |xxx|     0..60, 120..180, 240..300
       ___________ /\ ____________                       ID 75, OD 250, h ~ 8 um
                  /  \ <- lens (Cartesian-oval aspheric, apex 5 um)
       ============================================  <- PEC (substrate / mirror)
       z = 0

Files

  • generate_geometry.py — designs the lens and emits 3 STL files + geometry_params.json + lens_profile.npz.
  • simulate_optics.py — runs a Tidy3D FDTD simulation of the lens + membrane + fiber + PEC stack and writes a fresh timestamped report in reports/.
  • stl/region1_lens_core.stl — high-resolution writing region. r ≤ 75 um, z ∈ [-0.5, 13] um. Contains the lens, the inner part of the 3-segment base ring, the inner part of the membrane, and the three bumps.
  • stl/region2_inner_sheath.stl — no-stitching writing region. r ≤ 75 um, z ≥ 13 um. Contains the inner wall of the sheath bore (where the fiber lives).
  • stl/region3_outer_support.stl — bulk support infrastructure. Everything outside r = 75 um for all z.

The split is sized to the ~150 um Nanoscribe writing field. Write order on the tool: region 1 first (highest resolution, the lens), region 2 second (no stitching across the optical bore), region 3 last (support that may be stitched freely).

Geometry parameters (microns / degrees)

part parameter value
Lens apex height 7.0
Lens shape aplanatic hyperboloid (K = −n², R = h_apex·(n−1))
Lens outer radius (design) ≈ 10.6
Lens gap above the apex 3.0
Lens apparent fiber face (in air) ≈ 13.31
Base ring inner / outer diameter 75 / 250
Base ring height 10.0
Base ring arc segments 0–60°, 120–180°, 240–300°
Membrane thickness 2.0
Membrane outer diameter 250
Bumps hemisphere radius 3.0
Bumps orbit radius / angles 50 / 30°, 150°, 270°
Sheath gap angular 30° (sheath spans 15–345°)
Sheath bottom ID / OD / height 130 / 250 / 50
Sheath top ID / OD / height 124 / 250 / 750
Funnel ID (bottom → top) 124 → 250
Funnel wall thickness / height 20 / 50
Total height top of funnel above PEC 860

Indices (780 nm): IP-S resin n = 1.51, air n = 1.0. Fiber is Thorlabs 630HP at 780 nm: 125 µm clad, 3.5 µm core, NA = 0.12 (n_core 1.4583, n_clad 1.4533), MFD ≈ 5.4 µm. (Change FIBER_CORE_RADIUS_UM, N_FIBER_CORE, N_FIBER_CLAD in generate_geometry.py to target a different fiber.)

The sheath slit spans 15°–45° in azimuth (a 30° gap), so the tube wall covers 45°–375° (i.e. wraps past 0°). The gap sits directly over the 0°–60° base-ring spoke for mechanical support.

Running it

# from this directory
pip install trimesh manifold3d scipy tidy3d

python generate_geometry.py     # -> stl/*.stl, geometry_params.json, lens_profile.npz
python simulate_optics.py       # -> reports/report_YYYYMMDD_HHMMSS.md + figures/

simulate_optics.py submits one FDTD job to the Tidy3D cloud per invocation. Each run writes a fresh report_<timestamp>.md — re-runs never overwrite a prior report. Override knobs via environment variables:

variable default meaning
SHEATH_WL0 1.550 center wavelength (um)
SHEATH_BW 0.1 spectral bandwidth (um)
SHEATH_NWL 41 number of wavelength samples
SHEATH_MIN_STEPS 14 minimum grid cells per wavelength
SHEATH_RUN_TIME 6e-13 FDTD run time, seconds
SHEATH_SIMXY 30.0 transverse FDTD window (um)
SHEATH_FIBLEN 15.0 fiber stub length above the face (um)
SHEATH_NOTES "" free-form notes appended to the report

Lens design

generate_geometry.py ships two lens design families and selects one with the module-level LENS_DESIGN constant.

Hyperboloid (default). An aplanatic conic surface with conic constant K = −n² and vertex radius R = h_apex·(n−1), sized so that the back focal point lands exactly on the PEC at z = 0:

z(r) = h_apex − sag(r),
sag(r) = (r²/R) / (1 + √(1 − (1+K)(r/R)²))

This focuses collimated light from above (in air) stigmatically to a point inside the resin. The fiber beam at the lens position is very close to collimated (Rayleigh range ≫ propagation distance), so this is a good approximation. The lens extends out to where sag(r) = h_apex (lens skirt meets the PEC plane), capped at LENS_R_CAP = 14 um to stay inside the scaffold ID with margin. At h_apex = 7 um, r_max ≈ 10.6 um — large enough to cover the full SMF-28 mode.

Cartesian oval (alternate). The unique surface that is stigmatic between the virtual fiber face (its paraxial image after the resin slab, z_v = 8 + 5/1.51 = 11.31 um) and a focus on the PEC. The oval condition is

n_air · √(r² + (z_v − z_s)²) + n_resin · √(r² + z_s²) = K
K = n_air (z_v − h_apex) + n_resin · h_apex

For this very compact geometry the natural oval extent is small (r_max ≈ 2 um at h_apex = 5 um), so it under-fills the beam aperture and the lens edge behaves as a diffractive obstacle. Useful as a comparison case.

The chosen profile is numerically tabulated and saved to lens_profile.npz for use by the simulator.

Simulation scope

FDTD is expensive, so the simulation only covers the optical core, not the 800 um sheath. The simulated stack is

z ≤ 0                : PEC
z = 0 .. 5           : resin lens (Cartesian oval, revolved)
z = 5 .. 8           : air gap
z = 8 .. 10          : resin membrane
z = 10 .. 13         : resin / index-matching glue
z = 13 ..            : SMF-28-like fiber (core + cladding)

The bumps live at r = 50 um (well outside the FDTD window) so they are implicit — the 3 um zone between membrane and fiber face is modeled as a uniform resin layer (the glue + bump composite).

A fundamental HE11 mode source is launched downward from inside the fiber. A mode monitor at the same plane records the returned amplitude in the +z direction. Coupling efficiency is

CE(f) = |amps('+', mode_index=0, f)|²

(the source is normalized to unit launched modal power).

Results

First preflight (baseline)

Sheath v1 — Optical Simulation Report

  • Generated: 2026-05-27T11:57:36
  • Wavelength range: 1.520 – 1.580 um (31 points)
  • Center wavelength: 1.550 um
  • Peak coupling efficiency: 0.2030 at 1.558 um
  • Mean coupling over the band: 0.1625

1. Structure geometry

The full Nanoscribe build is the chip-to-fiber sheath described in README.md. Critical z-levels (in microns above the PEC substrate):

level z (um)
PEC substrate (and lens base) 0.00
Lens apex 5.000
Top of 3-segment base ring 8.00
Top of membrane 10.00
Top of bumps / fiber face 13.00
Sheath top end 810.0
Funnel top 860.0

Material indices: resin (IP-S) n = 1.51, fiber core n = 1.4504, fiber cladding n = 1.4447.

2. Lens design

The lens is a Cartesian-oval refractive surface designed to image the fiber face stigmatically onto the PEC plane. The air–resin interface height z_s® satisfies

$$ n_{air} \sqrt{r^2 + (z_v - z_s)^2} + n_{resin} \sqrt{r^2 + z_s^2} = K, $$

where the virtual object position is

$$ z_v = z_{mem,bot} + (z_{fiber} - z_{mem,bot}) / n_{resin} = 11.311 \text{ um}, $$

and K is set by the on-axis ray: K = n_air (z_v − h_apex) + n_resin h_apex.

  • Apex height h_apex = 5.000 um (chosen below the 8 um base ring height to leave a 3.00 um air gap under the membrane)
  • Outer radius r_max = 2.078 um (where the surface meets z = 0)
  • Effective NA in air = sin(arctan(r_max / (z_v − h_apex))) ≈ 0.313

Lens profile

3. Simulation domain
  • Transverse window: 18.00 × 18.00 um
  • Vertical extent: z ∈ [-1.08, 22.09] um
  • Grid: auto with 11 cells per wavelength at λ₀
  • Boundary conditions: PML in x, y, z; PEC structure at z ≤ 0
  • Symmetry: (1, −1, 0) — Ex-polarized HE11 mode
  • Run time: 0.35 ps

Source plane (ModeSource, '−z' direction) at z = 17.80 um. ModeMonitor at the same plane collects the returned ('+z') amplitude.

Permittivity cross-sections

4. Fiber mode

Step-index SMF-28-like fiber (core radius 4.1 um, n_core 1.4504, n_clad 1.4447). The mode solver finds the fundamental HE11; the source injects mode 0 with unit modal power.

Fiber mode

5. FDTD field

The launched mode propagates down through the cladding, glue layer, membrane, air gap, and Cartesian-oval lens. The PEC at z = 0 reflects the converging wavefront, which retraces back up through the lens and recouples into the fiber mode.

|E|^2 in xz

|E|^2 at the PEC

6. Round-trip coupling efficiency

Coupling efficiency is computed from the mode monitor amplitudes as

CE(f) = |amps('+', mode_index=0, f)|^2

which, given the unit-power ModeSource normalization, is the fraction of launched power that returns into the fiber's fundamental mode.

Coupling efficiency vs wavelength

Numerical summary

  • Peak: CE = 0.2030 at λ = 1.558 um
  • Mean over band: 0.1625
  • Min over band: 0.1309

Raw data
  • Coupling efficiency CSV: figures/20260527_115627_coupling.csv
  • Geometry parameters: ../geometry_params.json
  • Lens profile (npz): ../lens_profile.npz
  • STL files: ../stl/

Final report

Sheath v1 — Optical Simulation Report

  • Generated: 2026-05-27T12:31:31
  • Wavelength range: 0.750 – 0.810 um (31 points)
  • Center wavelength: 0.780 um
  • Peak coupling efficiency: 0.5502 at 0.758 um
  • Mean coupling over the band: 0.4195

1. Structure geometry

The full Nanoscribe build is the chip-to-fiber sheath described in README.md. Critical z-levels (in microns above the PEC substrate):

level z (um)
PEC substrate (and lens base) 0.00
Lens apex 7.000
Top of 3-segment base ring 10.00
Top of membrane 12.00
Top of bumps / fiber face 15.00
Sheath top end 812.0
Funnel top 862.0

Material indices: resin (IP-S) n = 1.51, fiber core n = 1.4583, fiber cladding n = 1.4533.

2. Lens design

Design family: hyperboloid. Aplanatic hyperboloid (K = -n^2, R = h_apex (n-1)) — collimated air -> point focus at PEC inside resin.

For the hyperboloid (default), the air-side surface follows the aplanatic conic

$$ z® = h_{apex} - \dfrac{r^2 / R}{1 + \sqrt{1 - (1 + K)(r/R)^2}}, \qquad K = -n_{resin}^2, \quad R = h_{apex} (n_{resin} - 1), $$

so collimated light from above is focused stigmatically onto the PEC at z = 0 inside the resin.

Paraxial reference: viewed through the 5.0 um resin layer above the lens, the fiber face appears at

$$ z_v = z_{mem,bot} + (z_{fiber} - z_{mem,bot}) / n_{resin} = 13.311 \text{ um}. $$

  • Apex height h_apex = 7.000 um (chosen below the 10.0 um base ring to leave a 3.00 um air gap under the membrane)
  • Outer radius r_max = 10.616 um (where the surface meets z = 0, capped at LENS_R_CAP from generate_geometry.py)
  • Effective NA in air ≈ 0.860

Lens profile

3. Simulation domain
  • Transverse window: 10.00 × 10.00 um
  • Vertical extent: z ∈ [-0.62, 18.62] um
  • Grid: auto with 9 cells per wavelength at λ₀
  • Boundary conditions: PML in x, y, z; PEC structure at z ≤ 0
  • Symmetry: (1, −1, 0) — Ey-polarized HE11 mode
  • Run time: 0.60 ps
Tidy3D cloud cost
  • Pre-run estimate: 0.0250 FlexCredits
  • Actual cost: nan FlexCredits

Source plane (ModeSource, '−z' direction) at z = 16.80 um. ModeMonitor at the same plane collects the returned ('+z') amplitude.

Permittivity cross-sections

4. Fiber mode

Step-index fiber model (core radius 1.75 um, n_core 1.4583, n_clad 1.4533, design wavelength 780 nm). The mode solver finds the fundamental HE11; the source injects mode 0 with unit modal power.

Fiber mode

Measured mode-field diameter (MFD)

The MFD is computed four ways from the FDTD-solved mode at the source plane so it can be compared directly to fiber datasheets:

definition value (um)
Gaussian fit, x-cut ( E
Gaussian fit, y-cut ( E
2nd-moment (D4σ of E
Petermann II (coupling-relevant) 5.039

Reference fibers @ 780 nm: HI780 ≈ 5.0 µm, 630HP ≈ 4.4 µm, SM800 ≈ 5.6 µm. For 630HP coupling, the simulated MFD should land near 4.4 µm — if not, change FIBER_CORE_RADIUS_UM / N_FIBER_CORE / N_FIBER_CLAD in generate_geometry.py and re-run.

Mode cross-section + Gaussian fit

5. FDTD field

The launched mode propagates down through the cladding, glue layer, membrane, air gap, and Cartesian-oval lens. The PEC at z = 0 reflects the converging wavefront, which retraces back up through the lens and recouples into the fiber mode.

|E|^2 in xz

|E|^2 at the PEC

6. Round-trip coupling efficiency

Coupling efficiency is computed from the mode monitor amplitudes as

CE(f) = |amps('+', mode_index=0, f)|^2

which, given the unit-power ModeSource normalization, is the fraction of launched power that returns into the fiber's fundamental mode.

Coupling efficiency vs wavelength

Numerical summary

  • Peak: CE = 0.5502 at λ = 0.758 um
  • Mean over band: 0.4195
  • Min over band: 0.1548

Raw data
  • Coupling efficiency CSV: figures/20260527_122912_coupling.csv
  • Geometry parameters: ../geometry_params.json
  • Lens profile (npz): ../lens_profile.npz
  • STL files: ../stl/

Downloads


Source: nanophotonic_devices/fiber_collection_optics/sheath_v1/