Fiber sheath flat v1¶
Simplified sibling of sheath_v1 without the on-chip lens / segmented scaffold.
This is a simplified sibling of ../sheath_v1. It keeps the passive,
self-aligning Nanoscribe fiber sheath, but removes the on-chip lens and the
segmented lens scaffold.
The intended stack is:
___________
/ \ <- funnel
| | ID 124 -> 250, wall 20 um
| | height 50 um
\ /
+-------------+
| fiber | <- sheath top
| (125 OD) | ID 124, OD 250
| | height 750 um
| |
+-------------+
| | <- sheath bottom
| | ID 130, OD 250
| | height 50 um
+-------------+
. . . o . . . . . . . o . . . . . . . o <- 3 bumps (orbit r=50, hemi r=3)
============================================= <- membrane (2 um, OD 250)
============================================= <- PEC / substrate
z = 0
The fiber is pushed into the sleeve and lands on three 3 um-tall index-matching bumps. The membrane is printed directly at the chip plane. There is no refractive lens in this version.
Files¶
generate_geometry.py- emits three STL files plusgeometry_params.json.simulate_optics.py- runs a Tidy3D FDTD simulation of the flat membrane, bump/glue layer, fiber, and PEC stack, then writes a timestamped Markdown report inreports/.stl/region1_membrane_bumps.stl- high-resolution writing region:r <= 75 um,z in [-1, 5] um. Contains the central membrane region and the three bumps.stl/region2_inner_sheath.stl- no-stitching writing region:r <= 75 um,z >= 5 um. Contains the inner wall of the sheath bore.stl/region3_outer_support.stl- outer membrane, bulk sleeve support, and funnel infrastructure.stl/combined_sheath_flat_v1.stl- all three regions concatenated into one inspectable STL.
Write order on the Nanoscribe tool: region 1 first (bumps and membrane center), region 2 second (no stitching across the optical bore), region 3 last (outer support that may be stitched freely).
Geometry parameters (microns / degrees)¶
| part | parameter | value |
|---|---|---|
| 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 deg |
| Sheath wall | angular span | 45..375 deg |
| 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 | 852 |
Indices at 780 nm: IP-S resin n = 1.51, air n = 1.0. Fiber is modeled as a Thorlabs 630HP-like step-index fiber at 780 nm: 125 um cladding, 3.5 um core, NA = 0.12, n_core = 1.4583, n_clad = 1.4533.
Running it¶
# from this directory
pip install trimesh manifold3d scipy tidy3d
python generate_geometry.py
python simulate_optics.py
simulate_optics.py submits one FDTD job to the Tidy3D cloud per invocation.
Each run writes a fresh reports/report_<timestamp>.md; re-runs never overwrite
a prior report. Override knobs via environment variables:
| variable | default | meaning |
|---|---|---|
SHEATH_WL0 |
0.780 | center wavelength (um) |
SHEATH_BW |
0.06 | spectral bandwidth (um) |
SHEATH_NWL |
31 | number of wavelength samples |
SHEATH_MIN_STEPS |
9 | minimum grid cells per wavelength |
SHEATH_RUN_TIME |
6e-13 | FDTD run time, seconds |
SHEATH_SIMXY |
10.0 | transverse FDTD window (um) |
SHEATH_FIBLEN |
3.0 | fiber stub length above the face (um) |
SHEATH_NOTES |
"" | free-form notes appended to the report |
Simulation scope¶
FDTD is expensive, so the simulation covers only the central optical stack, not the full 852 um sleeve. The simulated stack is:
z <= 0 : PEC
z = 0..2 : resin membrane
z = 2..5 : resin / index-matching glue bump zone
z = 5.. : fiber core + cladding
The mechanical bumps live at r = 50 um, outside the compact FDTD window. Their central optical effect is modeled as a uniform resin layer between the membrane and the fiber face.
Coupling efficiency is computed from the returned fiber-mode amplitude:
The source is normalized to unit launched modal power.
Results¶
Sheath flat v1 - Local Preflight Report¶
- Generated:
2026-05-27T13:23:34 - Status: local geometry/preflight only
- FDTD cloud solve: not run
This report was generated with SHEATH_DRY_RUN=1. It verifies the
simplified flat membrane stack locally and writes the same geometry
figures used by the full FDTD report, but it does not solve the fiber
mode or upload the simulation to Tidy3D.
Structure geometry¶
| level | z (um) |
|---|---|
| PEC substrate / membrane bottom | 0.00 |
| Top of membrane | 2.00 |
| Top of bumps / fiber face | 5.00 |
| Sheath top end | 802.0 |
| Funnel top | 852.0 |
Material indices: resin (IP-S) n = 1.51, fiber core n = 1.4583, fiber cladding n = 1.4533.

Local simulation object¶
- Transverse window: 10.00 x 10.00 um
- Vertical extent: z in [-0.62, 8.62] um
- Grid: auto with 9 cells per wavelength at lambda0
- Boundary conditions: PML in x, y, z; PEC structure at z <= 0
- Symmetry: (1, -1, 0), Ey-polarized HE11 mode
- Run time configured for full FDTD: 0.60 ps

Full FDTD run¶
Run without SHEATH_DRY_RUN=1 to submit the mode solve and FDTD job to
Tidy3D and generate coupling-efficiency plots and field figures.
Raw data¶
- Geometry parameters:
../geometry_params.json - STL files:
../stl/
Downloads¶
region1_membrane_bumps.stlregion2_inner_sheath.stlregion3_outer_support.stlcombined_sheath_flat_v1.stl
Source: nanophotonic_devices/fiber_collection_optics/sheath_flat_v1/