Hi HN. I m an optical engineer, and TFStudio is a free optical thin-film coating design app.Thin-film coatings are widely used for optics - lenses, mirrors, beamsplitters and more. Designing a coating is an inverse problem: given a target reflectance/transmittance spectrum one must find materials and thicknesses for thin layers to produce it. There s no closed form, so it s a numerical optimization task.The market is currently dominated by proprietary software like OptiLayer, FilmStar or TFCalc. They cost thousands of dollars per seat, which puts them out of reach if you re a student, work in a small lab, or are just interested in the subject.TFStudio is open-source and the code is MIT-licensed. Linux and Windows builds are available (no macOS build yet).Features:- Computing R, T, A values via transfer-matrix method (TMM) at any incidence angle, for absorbing and dispersive materials, both s- and p-polarization- Full-system modeling: front coating, substrate (with absorption), and back coating, including incoherent substrate multiple reflections- Optimization synthesis: refinement optimizers (local — DLS, Newton, Newton-CG, SQP, conjugate-gradient; global — differential evolution, simulated annealing), needle variation, gradual evolution, and a structural optimizer that anneals over the layer count itself. It is multithreaded via web worker pool and is quite fast with wasm tmm kernel.- Merit function editor for setting up various targets and constraints. Including default merit function generator and visual target editor (in Optical Evaluation window) - Analysis tools: R, T, A calculation, color evaluation, ellipsometry angles, admittance, E-field, GD/GDD, refractive index (RI) profiler- Material libraries: refractiveindex.info explorer (offline/online), OptiLayer materials, .AGF (Zemax) catalogs - Deposition simulators (broadband, mono)- Tolerancing features including Monte-Carlo analysis, scattering, inhomogeneities, layer sensitivities- Import/export of coating data for Zemax OpticStudioUnder the hood: refinement uses an analytic Jacobian rather than finite differences — the characteristic matrix product can be differentiated with respect to each layer thickness in closed form, so where finite differences cost N+1 spectrum evaluations per step for an N-layer stack, this costs roughly one. Needle synthesis works off a similar analytic perturbation function that says where inserting an infinitesimally thin layer would most reduce the merit function, so designs can grow from a bare substrate.The TMM kernel has JS and C versions and is also available as a package via npm install tmmcore. Validation and comparison to other TMM packages is here: https://aai2k.github.io/tmmcore/Web version is fully functional and available here: https://tfstudio.xyz/demo/Docs: https://docs.tfstudio.xyz