An open-source design, analysis, and optimization environment for optical thin-film coatings.
TFStudio is a professional desktop application for designing and analyzing optical thin-film coatings — antireflection coatings, mirrors, beamsplitters, bandpass and edge filters, and more. It combines a rigorous, double-precision optical engine with modern refinement and synthesis algorithms and a full analysis suite, in a docked, multi-window interface.
⚠️ Status: TFStudio is independently developed software. While the optical engine is validated against reference data (see Scientific basis), always verify critical designs against your own measurements before committing them to a production deposition run.
Design & evaluation
- Transfer-matrix method (TMM) for absorbing and dispersive media at oblique incidence, both s- and p-polarization
- Full-system modeling: front coating, substrate (with absorption), and back coating, including incoherent substrate multiple reflections
- Reflectance / transmittance / absorptance spectra, color, integral figures of merit
- Layer editor with simultaneous physical / optical / quarter-wave / full-wave thickness representations
Optimization & synthesis
- Damped least-squares / Levenberg-Marquardt refinement with an analytic Jacobian
- Additional refiners: Newton, Newton-CG, SQP, conjugate-gradient, differential evolution, simulated annealing
- Needle optimization and gradual evolution synthesis (automatic layer insertion from scratch)
- Structural optimization over the layer count itself
- Flexible merit function: spectral targets, ramps, band averages, worst-case operands, thickness constraints
- Multi-threaded via a Web Worker pool; hot kernels accelerated with WebAssembly (SIMD)
Analysis windows
- Optical evaluation, admittance diagrams, electric-field profiles, group delay / GDD, ellipsometric parameters, color evaluation, refractive-index profile
- Tolerance & manufacturing analysis: Monte-Carlo error analysis, layer sensitivity, inhomogeneity, roughness/scattering, systematic deviations
Materials
- Built-in library generated from the refractiveindex.info database (CC0)
- Sellmeier / Cauchy / tabulated dispersion; complex index with explicit conventions
- Import of external catalogs and an in-app refractiveindex.info browser
Manufacturing
- Deposition / monitoring simulation (broadband and monochromatic optical monitoring)
- Process exporter and optical-coating data interchange (including Zemax OpticStudio coating export/import)
Platform
- Cross-platform desktop app (Electron + React, pure JavaScript)
- Built-in help/documentation, English and Russian UI
TFStudio implements established thin-film optics, citing primary sources:
- Transfer-matrix method — H. A. Macleod, Thin-Film Optical Filters, 5th ed.
- Numerical needle synthesis — Sullivan & Dobrowolski, Appl. Opt. 35, 5484 (1996); Tikhonravov et al., Appl. Opt. 35, 5493 (1996)
- Gradual evolution — Tikhonravov et al. (2007)
All computations use double precision. The TMM engine agrees with independent reference calculations to within single-digit parts-per-million for validated test cases.
Grab the latest installer or portable build from the Releases page.
Requires Node.js 18+.
git clone https://github.com/aai2k/TFStudio.git
cd TFStudio
npm install
# (optional) rebuild the WebAssembly kernel — requires the Emscripten SDK:
npm run build:wasm
npm start # launch the appOther useful scripts:
npm test # run the test suite
npm run docs:dev # preview the documentation site
npm run build # package a distributable (electron-builder)User documentation is built into the app (Help menu) and lives in docs-site/.
If TFStudio contributes to your work, please cite it. Citation metadata is in CITATION.cff; GitHub renders a "Cite this repository" button from it. A software paper is available https://doi.org/10.5281/zenodo.21196320
Issues and pull requests are welcome. By contributing you agree that your contributions are licensed under the project's MIT license.
MIT © 2026 Andrey Achapovsky
Andrey Achapovsky — ORCID 0009-0005-1497-6279
- Material data derived from the refractiveindex.info database (CC0, public domain).
- Built with Electron, React, Plotly.js, and KaTeX.