Skip to content

TFStudio 2.0.0

Latest

Choose a tag to compare

@aai2k aai2k released this 31 Oct 15:29
· 1 commit to main since this release
Screenshot_143

Changelog

v2.0.0

Added

  • AI assistants: started with --mcp, TFStudio lets an AI assistant such as Claude open, build, evaluate, refine, synthesize and save designs; started with --mcp --live, after you click Interactive on the Optimization tab, which holds the app until you click Terminate, it also works on the design open in TFStudio, each change one step that Ctrl+Z undoes. The manual's AI Agents page says how to connect one.
  • Script Console: a new window on the Optimization tab runs a JavaScript or Python script on the open design, with the calculations, refinement and synthesis the windows use; what the script changes comes back as one step that Ctrl+Z undoes.
  • Python: a Python package, set up from TFStudio's python folder, builds, evaluates, refines and synthesizes designs, on its own or on the open design; the manual has a Python page and an API reference for Python and JavaScript.
  • Scripts, Python programs and AI assistants reach most of the app, with the numbers its windows show: most analysis windows and Pulse Analysis, specification checks and yield, the Design Cleaner, Edge Filter and Needle Manual, the Monitor Worksheet and Process Exporter, Measured Spectra and Measured Ellipsometry, Zemax and CODE V coatings, and Inhomogeneities, Roughness & Scattering and Stress.
  • Edge Filter: a new window beside Stack Formula finds a non-polarizing edge filter, whose s and p edges meet at the angle of incidence, and puts it into the design or into Stack Formula.
  • Merit Function Editor: a Flag column sets the step at which a peak or band row searches its band, down to 0.001 nm, so narrow peaks and pass bands are no longer stepped over.
  • Specification: checks that search a peak or sample a band have a Step, which Generate MF writes on its merit row; a thickness budget or layer count adds up the front, the back or both, and Generate MF writes a budget as a total thickness row.
  • Materials: a second built-in Ta2O5, Ta2O5 (Gao), with much less loss in the visible; the existing Ta2O5 is unchanged.

Changed

  • Settings: TFStudio always calculates with its WebAssembly kernel, so its switch is gone and the Performance tab is now Updates; if the kernel cannot load, a notice at startup says why.
  • Refinement and the synthesis windows: a merit function with MXW, MNW or math rows, such as every one Generate MF writes, is optimized several times faster, and Needle and Gradual Evolution pick each insertion much faster on it.
  • Monte Carlo, the specification badge, Differential Evolution and merit tables under a cone of incidence no longer hold the window while they work; Stop ends a Monte Carlo run at once and keeps the trials counted so far.
  • Merit function: on thin coatings and narrow bands, band averages, integrals, spectral targets and flatness rows read a low reflectance at its value instead of several percent high; the merit of a saved design can read slightly differently, and synthesis from a thin start takes longer.
  • Merit Function Editor: an EFMX row set to avg reads the peak of the mean s and p field, the curve the Electric Field window draws, so such a row on a saved design reads lower at an angle; new DEL rows and the Report give Delta in the Ellipsometry window's sign, while saved rows keep theirs; typed Ψ, Δ, tanΨ and cosΔ rows are worked out several times faster.
  • Needle Automatic: refines with Trust-region Newton by default, which ends lower than CG on most designs.
  • Status bar: monitors on a peak, a FWHM or an edge search their band at 0.1 nm and follow the auto-update switch during a run; total thickness counts the coated sides, as the TT row does, here and in the Report.
  • Specification: the bar beside Generate MF names the checks it writes no merit row for, such as FWHM and layer count.
  • Stack Formula: the reference wavelength is set only in the λ₀ box, no longer after @ in the formula; a help button opens its page of the manual.
  • Color Evaluation: a purple's purity is measured to the purple line, as in Macleod, so purples read higher.
  • Pulse Analysis: a pulse with a long chirp, or a spectrum cut off while it still carries light, is worked out faster.
  • Notices raised at the same time are shown together instead of replacing each other.
  • Project Explorer: a selected design shows its duplicate, rename and delete buttons only under the mouse.

Fixed

  • Number fields across the app read a decimal comma, so 94,2 is 94.2, and a number box applies on Enter or when you leave it; the Merit Function Editor, the Design Editor and the analysis windows refuse 550..5 instead of reading 5505, and the Merit Function Editor refuses text such as 94abc; Measured Spectra and the Curve Editor skip such a value in a file or paste.
  • Layers are numbered from the substrate, as the Design Editor does, in Monte Carlo, Design Cleaner, Admittance Diagram, Variator, Needle Manual, Roughness & Scattering, the monitoring wizards, Stack Formula, Import Design and MNT and MXT ranges; Monte Carlo, Design Cleaner, Roughness & Scattering and the Design Editor name materials, not catalog ids such as builtin:BK7.
  • Designs coated on the back alone: the Report, Refinement's Psi, Delta and EFMX rows, Needle Manual, Stress and Roughness & Scattering work on the back coating instead of the bare front, and a peak-to-peak error row no longer stops every run; a window set to a side with no layers says which side is bare; in Roughness & Scattering a face of only 0 nm layers stays smooth, as a bare face does.
  • Cone of incidence: the Wavelength-angle map, Plot Engine, Variator, Inhomogeneities, Roughness & Scattering and Measured Spectra show the cone average, as Optical Evaluation does; a narrow passband under a wide cone averages over enough angles; a merit row reads the same whatever other rows are in the table.
  • Analysis windows: the notice about materials outside their data range names only the materials of the side computed.
  • Merit function: a math row such as OPGT or OPLT scores a miss as the row it reads would, so it no longer outweighs every optical row, as it did in merit functions generated from a specification; a math row on a measured curve no longer stops every run; a group delay flatness row ending on a material's last wavelength is no longer refused; in the Merit Function Editor a new MXT row starts at a 1000 nm ceiling instead of 10 nm, which held every layer down.
  • Refinement: the merit table edits rows as the Merit Function Editor does, so typed thickness and dB targets are no longer stored a hundred times too small and a new row starts as a comment; Stop during Try all, Reset, Restore and Best with both sides optimized do what they say; a method whose worker fails says so instead of "no further improvement".
  • Structural Optimizer: film stress and group delay rows score during a run as in the merit table; Run after Stop goes on from the best design reached, without stalling; needles go in at the thickness that suits the design; a run whose start cannot be refined says so.
  • Specification: a check passes exactly when the merit rows Generate MF writes for it are met, and a value shown on its bound passes; FWHM and edge checks read a band typed high to low, and their value is exact at any step, here and in the Report, Monte Carlo and the Coating Library; a level outside 0 to 1 shows the level used; a preset loaded twice no longer gives rows that change together, and Insert keeps the copied check's preset.
  • Design Cleaner and Needle Manual: Re-optimize, and Refine after an insert, refine a narrowband filter as Refinement does, instead of not moving it or making it worse.
  • History, Round, Perturb, Layer Sensitivity, the Report's integral values and the Coating Library's averages match the Merit Function Editor and Integral Values, instead of reading off on thick coatings and narrow passbands.
  • Color Evaluation: dominant and complementary wavelengths fall where the CIE spectrum locus puts them, every purple gets a complementary wavelength, and CCT and Duv under the 10 degree observer no longer read about 70 K low.
  • Stress: a missing material constant leaves blank what the manual says it does, and the notice says how the rest counts it; a substrate with no Poisson's ratio leaves the edge shear blank; Copy CSV keeps each heading in one column.
  • Monte Carlo, Systematic Deviations, Inhomogeneities and Roughness & Scattering: Copy CSV and Save CSV write each value in the % or ppm its heading names, as the table shows it.
  • Monte Carlo and Inhomogeneities: on a symmetric design the specification verdict judges the stack that is plotted; an interlayer below a 0 nm layer sits at the interface its row names.
  • Pulse Analysis: when no light comes out, the message says the part may absorb it all, instead of always blaming total reflection.
  • Zemax Coatings: a layer given in waves imports, and saves to the Coating Library, at the thickness the Coatings tab lists, and an imported material has the index Zemax gives it between the rows of its table; Import to front coating is off, and says why, on a design that does not compute its front.
  • CODE V Coatings: importing to a side the design does not compute is off, and says why.
  • Installer: an update or uninstall removes only TFStudio's own files, so designs, catalogs and presets in the install folder are no longer deleted; updating an all-users install from 1.8.3 or earlier keeps your unsaved designs and settings.
  • Data folder: the installed app refuses one inside its install folder; a renamed, moved or unplugged data folder is no longer recreated empty at startup, and TFStudio uses the default for that session and says why.
  • Preferences: settings a newer release saved are no longer erased when this release saves one.
  • Deleting a design, catalog, coating or preset sends it to the Recycle Bin, as deleting a project folder already did; where there is none, such as on a network drive, TFStudio asks first.
  • Material Editor: when a second copy of TFStudio uses the same data folder, saving a catalog keeps the other copy's changes, and asks only when both changed the same material; the Mechanical page says what the stress calculations do with an empty box.
  • Save coating, Merit Function Editor and Specification: saving under a name already in use asks before replacing it.
  • Ctrl+Z and Ctrl+Y in a text or number field undo and redo the typing, instead of the last design edit.
  • Plot Engine: the merit surface reads the Merit Function Editor's value, and a plot over n or k holds the other at the design's reference wavelength instead of 550 nm.
  • Integral Values: a design whose spectrum cannot be computed shows an error instead of "Computing" for ever; a custom band outside its weighting's range reads n/a.
  • Report: the electric field block offers avg and draws the curve the Electric Field window shows.
  • Stack Formula: Append adds the new layers on the outside of the front coating; a material with no index at λ₀ is named, here and in Filter Design, instead of its layers coming out 0 nm thick.
  • Status bar: a new MNT or MXT monitor keeps covering the layers synthesis adds; an integral monitor on a design scored on its coated side reads that side.
  • Design Editor: Round in QWOT mode rounds every layer whose material is known when another layer's material is missing.
  • Measured Spectra: a column headed Rs, Tp or the like imports as that quantity in that polarization.
  • GD/GDD: the table writes each wavelength to the digits it has, so added rows no longer repeat the wavelength above them.
  • Save as default keeps the choices it dropped: cdc, n & k, total, and the full angle and thickness ranges.
  • Plots: tick labels on a narrow axis read apart instead of repeating.
  • Needle Automatic and the Filter Design search: Stop clears the running status.