Ansys Photonics Integration
OptixLog integration philosophy for Ansys photonics simulation tools
Ansys Photonics Integration
OptixLog provides integration pathways for Ansys's comprehensive suite of optics and photonics simulation tools, including Lumerical, SPEOS, and Zemax OpticStudio.
Ansys acquired Lumerical in 2020, bringing together world-class photonics simulation capabilities under one umbrella. OptixLog aims to enhance these tools with unified experiment tracking and collaboration features.
Our Integration Philosophy
The Challenge
Ansys photonics tools are commercial, closed-source software with proprietary file formats and workflows. Unlike open-source tools (Meep, MPB), we cannot directly instrument the simulation core. This presents unique integration challenges:
| Aspect | Open-Source (Meep) | Commercial (Ansys/Lumerical) |
|---|---|---|
| Code access | Full source available | Proprietary |
| API | Python-native | lumapi (inter-process) |
| Data formats | NumPy/HDF5 | .lms, .fsp, .ldev |
| Workflow | Script-driven | GUI + scripting |
| Customization | Unlimited | API-limited |
Our Approach: Two Pathways
We recognize that photonics engineers using Ansys tools have different workflow preferences. OptixLog supports both:
Python API Integration
Use lumapi to script simulations and log results via OptixLog SDK
Companion App (Planned)
Desktop app that syncs simulation data directly from Lumerical tools
Python API Integration (Available Now)
For users who script their simulations using lumapi, OptixLog integrates naturally:
import lumapi
import os
from optixlog import Optixlog
# Initialize OptixLog
client = Optixlog(api_key=os.getenv("OPTIX_API_KEY"))
project = client.project(name="LumericalSimulations", create_if_not_exists=True)
# Create run
run = project.run(
name="ring_resonator_sweep",
config={
"tool": "Lumerical FDTD",
"version": "2024 R1",
"geometry": "ring_resonator",
"radius": 5.0
}
)
# Run Lumerical simulation via lumapi
with lumapi.FDTD() as fdtd:
fdtd.load("ring_resonator.fsp")
fdtd.run()
# Extract results
transmission = fdtd.getresult("monitor", "T")
# Log to OptixLog
run.log(step=0,
peak_transmission=float(max(transmission["T"])),
center_wavelength=float(transmission["lambda"][0]))
# Log visualization
run.log_matplotlib("transmission_spectrum", fig)Pros:
- Works today with existing SDK
- Full programmatic control
- Integrates with automation pipelines
Cons:
- Requires scripting knowledge
- Not suitable for GUI-primary workflows
- lumapi can be finicky to set up
Companion App (Planned)
Coming Soon — The OptixLog Companion App is currently in development. This section describes our planned architecture.
For engineers who primarily use the Lumerical GUI, we're developing a companion desktop application that bridges the gap:
How It Will Work
┌─────────────────────┐ ┌──────────────────────┐ ┌─────────────────┐
│ Lumerical GUI │ │ OptixLog Companion │ │ OptixLog Cloud │
│ (FDTD, MODE...) │◄────►│ (System Tray) │─────►│ │
│ │ │ │ │ │
│ • Run simulations │ │ • Monitor .fsp/.lms │ │ • Store runs │
│ • Save results │ │ • Extract metrics │ │ • Visualize │
│ • Export data │ │ • Sync on demand │ │ • Compare │
└─────────────────────┘ └──────────────────────┘ └─────────────────┘Planned Features
-
System Tray Application
- Lightweight background process
- Available for Windows and Linux
- Minimal resource usage
-
Automatic File Monitoring
- Watch project directories for simulation completions
- Parse
.fsp,.lms,.ldevfiles - Extract key metrics and results
-
One-Click Sync
- Press "Sync" to upload current session
- Selective sync for specific simulations
- Batch upload for sweeps
-
Configuration
- Set API key once
- Configure watched directories
- Set default project mappings
Technical Requirements (Planned)
# companion-config.yaml
api_key: "your_optixlog_api_key"
watch_directories:
- "C:/Users/engineer/Lumerical Projects"
- "/home/engineer/simulations"
default_project: "Lumerical Experiments"
auto_sync: false # Manual sync preferredLumerical Product Suite
Ansys Lumerical offers specialized tools for different aspects of photonics design:
FDTD
3D/2D Maxwell solver for nanophotonic devices
MODE
Waveguide and coupler mode analysis
INTERCONNECT
Photonic circuit simulation
CML Compiler
Compact model generation
Multiphysics
CHARGE, HEAT, DGTD solvers
Why Integrate with OptixLog?
Even with Lumerical's built-in project management, OptixLog adds value:
| Feature | Lumerical Native | With OptixLog |
|---|---|---|
| Version control | Manual file saves | Automatic run tracking |
| Parameter comparison | Side-by-side windows | Unified comparison dashboard |
| Team collaboration | File sharing | Real-time shared workspace |
| Cross-tool tracking | Separate per tool | Unified across FDTD/MODE/etc. |
| Automation | lumapi scripts | SDK + CI/CD integration |
| Long-term storage | Local files | Cloud-backed archive |
Getting Started
Choose your integration path:
For Script-Based Workflows
- Install the OptixLog SDK:
pip install optixlog - Set up lumapi for your Lumerical installation
- Follow the tool-specific guides below
For GUI-Based Workflows
- Sign up for early access to the Companion App
- We'll notify you when the beta is available
- Installation will be a single executable
Other Ansys Optics Tools (Planned)
Coming Soon — Integration with SPEOS and Zemax OpticStudio is planned for 2025.
SPEOS
Optical system simulation for automotive lighting, sensors, and illumination
Zemax OpticStudio
Optical design for imaging systems, AR/VR, and illumination
Next Steps
- Lumerical Overview — lumapi integration details
- FDTD Integration — Nanophotonic simulations
- MODE Integration — Waveguide analysis
- INTERCONNECT Integration — Circuit simulation
- SPEOS — Optical system simulation (planned)
- Zemax OpticStudio — Optical design (planned)