Tidy3D Software Releases

Tidy3D Python Client







1. Fully anisotropic medium class (FullyAnisotropicMedium) that allows to simulate materials with permittivity and conductivity tensors oriented arbitrary with respect to simulation grid.
2. Adjoint processing is done server side by default, to avoid unnecessary downloading of data.
3. JaxPolySlab in adjoint plugin, which can track derivatives through its .vertices.
4. run_local and run_async_local options in tidy3d.plugins.adjoint.web to provide way to run adjoint processing locally.
5. web.test() to simply test if the authentication is configured correctly and raise exception otherwise.
6. SimulationTask.get_running_tasks() to get a list of running tasks from the server.
7. Retry for set number of seconds in web functions if internet connection errors.
8. Argument scale to ModeSolver.plot_field to control plot scaling.

1. Perfect electric conductors (PECs) are now modeled as high-conductivity media in both the frontend and backend mode solvers, and their presence triggers the use of a preconditioner to improve numerical stability and robustness. Consequently, the mode solver provides more accurate eigenvectors and field distributions when PEC structures are present.
2. Include source amplitude in amp_time.
3. Increased the maximum allowed estimated simulation data storage to 50GB. Individual monitors with projected data larger than 10GB will trigger a warning.
4. PolySlab.inside now uses matplotlib.path.contains_points for better performance.
5. JaxCustomMedium accepts a maximum of 250,000 grid cells to avoid slow server-side processing.

1. Log messages provide the correct caller origin (file name and line number).
2. Medium2D is removed from the list of allowed options for Simulation.medium in the documentation.
3. Symmetry works properly in adjoint plugin.







1. Group index calculation added to ModeSpec.
2. Waveguide plugin for quickly calculating modes in dielectric waveguides.
3. ElectromagneticFieldData.dot_intep to calculate mode overlap integrals between modes with different discretizations.
4. ElectromagneticFieldData.mode_area to calculate the effective mode area.
5. ElectromagneticFieldData.intensity returns the sum of the squared components of the electric field.
6. Group index calculation added to ModeSolver.
7. Web interface prints clickable link to task on Tidy3D web interface.
8. Allow configuration through API key in python via tidy3d.web.configure(apikey: str) function.

1. adjoint plugin now filters out adjoint sources that are below a threshold in amplitude relative to the maximum amplitude of the monitor data, reducing unnecessary processing by eliminating sources that won’t contribute to the gradient.
2. ArrayLike fields use np.ndarray internally instead of TidyNDArray subclass. Tidy3D objects are no longer hashable, instead, hash the obj.json() string.

1. web.Batch monitoring is more robust, will not raise exception if a job errors or diverges. In this case, the progressbar text will render in red.
2. More robust handling for 2D structure validator.









1. TriangleMesh class for modeling geometries specified by triangle surface meshes, with support for STL file import.
2. Total-field scattered-field (TFSF) source which allows angled plane waves to be injected into a finite region of space (the total-field region), such that only scattered fields exist outside this region (scattered-field region).
3. Medium2D class for surface conductivity model of a 2D material.
4. Entries in material_library for graphene and some common TMDs.
5. Ability to create a 2D representation of a thin 3D material.
6. SimulationData.plot_field accepts new field components and values, including the Poynting vector.
7. SimulationData.get_poynting_vector for calculating the 3D Poynting vector at the Yee cell centers.
8. Post-init validation of Tidy3D components.
9. Validate post-Simulation init to error if any structures have bounds that terminate inside of the PML.
10. Validate slab_bounds for PolySlab.

1. Tidy3D account authentication done solely through API key. Migration option offered for useres with old username / password authentication.
2. export_matlib_to_file in material_library exports material’s full name in addition to abbreviation.
3. Simpler progress bars for run_async.
4. Medium property n_cfl added to adjust time step size according to CFL condition.
5. In the mode solver plugin, regular methods in solver.py transformed into classmethods.
6. ArrayLike types are stored internally as np.ndarray and written to json as lists. constrained_array() provides way to validate ArrayLike values based on ndim and dtype.
7. Pip installing tidy3d automatically creates ~/.tidy3d directory in home directory.
8. Percentage done and field decay determined through http request.
9. SourceTime plotting methods .plot() and .plot_spectrum() accept a val kwarg, which selects which part of the data ('real', 'imag', or 'abs') to plot, rather than plotting all at once.

1. Bug in remote file transfer when client environment has no correct certificate authority pem file install locally.
2. Tidy3D exceptions inherit from ValueError so they are handled properly by pydantic.
3. Two unstable materials in material_library: Cu_JohnsonChristy1972 and Ni_JohnsonChristy1972. TiOx_HoribStable added for improved stability.
4. Bug in infinite long cylinder when the reference_plane is not at the bottom or the cylinder is slanted.





















































Tidy3D Web Client


Resolved issues

Fixed: Bug of the input fields after new version release


New features

Upgraded GUI to support v2.1.0

Provided .obj, or .stl file formats to download in 3D charts

Added help info for ‘Add Structures' and 'mode specification’ for modesolver

Display references in each Parameter and allow user clicking to jump to the corresponding window

Added boundary layer to 2D chart


Improved the warning msg for the generation of new API key

Improved the UI for 'my plan' tab, especially for Education License and Professional License

Updated Copyright for Tidy3d web UI

Improved video loading speed in 'Getting started'

Made the getting started window pop up by default, add “Do not show this again” check box

Improved the user experience to create new version, make it more conveniently

Improved the UI for validation status and error warning message display

Optimized fitter status error display

Improved the UI for the ‘Wavelength' and 'Frequencies’ input for monitor types

Resolved issues

Fixed: Medium2D ss and tt should not allow Medium2D type


Resolved issues

Fixed: error when apply for education license


New features

Included mode solver to count total tasks and monthly tasks

Improved the UI for the Advanced section

Combined expression and number in Parameters

Show the variable value beside the variable name in the tree to be more user friendly

Substituted X3D with threejs for 3D chart

Allow to search folder/tasks with case insensitive


Reduced the ModeSolver queue time.

Provided hdf5 data download for ModeSolver in GUI.

Added Storage and Billed Compute info in ModeSolver task detail page.

Made the '+' button always visible for adding structures, sources, monitors and scripts.

Supported the deletion of the sweep tasks.

Improved the list type data input method.

Allowed user to create new variable when using an undefined variable.

Resolved issues

Fixed: Public shared GUI example requires log in

Fixed: Duplicated layers displayed in import gds

Fixed: GDS file not imported correctly


Resolved issues

Fixed: Parameter sweep not working for a specific task

Fixed: API in downloaded config file is different from that shown in "Current API key"

Fixed: BlochBoundary input method gets incorrectly updated to "from source" for Python and json uploaded tasks

Fixed: Show grid doesn't show anything when the grid is too fine


New features

Supported loading geometries from GDS file in GUI into GeometryGroup structure.

Supported secure sign-in with multi-factor authentication (MFA).


Reduced the ModeSolver queue time.

Provided hdf5 data download for ModeSolver in GUI.

Added Storage and Billed Compute info in ModeSolver task detail page.

Made the '+' button always visible for adding structures, sources, monitors and scripts.

Supported the deletion of the sweep tasks.

Improved the list type data input method.

Allowed user to create new variable when using an undefined variable.

Resolved issues

Fixed: When sidewall_angle is not zero, the structure is incorrect.

Fixed: The ModeSolver is missing in transaction history.


New features

Added Python installation and authentication tutorial video to Getting Started.


Used monospace font for script editor of script object.

Resolved issues

Fixed: Variables are not conserved after upgrading to a newer version.

Fixed: FieldMonitor result is not correctly displayed when switching sweep tasks.


New features

Supported users to sign in with their Apple IDs.

Upgraded GUI to support Tidy3D version 2.0.3.

Added ModeSolver in GUI.


Improve the performance of Adjoint optimization by reducing data transfer.

Improved the 'Getting Started' button consistency between the tabs.

Resolved issues

Fixed: Sweep task and data not visible when shared.

Fixed: ModeSolver is missing after ‘edit’ / 'duplicate'/ 'save as'.

Fixed: The symmetry status in 3D chart is not shown correctly.

Fixed: Fitting plot too small.

Fixed: Validation failed unexpectedly.


New features

Allow users to submit support request directly through a form submission.



Remember plot setting when switching data selection in post-run

Resolved issues

Fixed: Script editing issue in Safari

Fixed: Script errors when it should run properly

Fixed: Variable can not be deleted

Fixed: Sweep missing when duplicated


New features

Added GUI Python script linked with objects

Simulation Editor tree added an new entry “Script Objects”

Added the script editor support Python script editing.

Added the ability to insert the objects created by scripts to corresponding location in simulation.json

Added the ability to reorder structure


Improved the switch expression in GUI , make it read-only

Added the constraints to input 'Infinity' in PolySlab

Improved overlay structure on post run

Linked normalize_index to source

Resolved issues

Fixed: Color of the Symmetry Is Not Consistent

Fixed: edits not updated in referenced fields


Resolved issues

Fixed: Item size uploaded exceed max allowed in dynamodb for large simulation files

Fixed: Extra Field Written to Json


New features

Allow users to redeem a valid FlexUnit code in user account page

Integrated "Continue with Google" into Tidy3D login page, user can login with google account

Provided the ability to view the medium detail info once user set the medium in Override structure, Background Medium and Structure panel.

Provided the ability for user to easily bookmark a public project and view it in their own account

Added ‘Examples' and ‘Bookmarks’ folder under folder page for all users.


Improved the k value when the conductivity = 0 when editing Medium

Merge duplicates to display minimal information (medium used in simulation) to reduce use

Improved the list datatype fields input for Monitors

Resolved issues

Fixed: GUI 3D Display Incorrect

Fixed: Overlay with structure doesn't look correct

Fixed: Duplicated background medium is created when selecting from public library


Resolved issues

Fixed: Create New Medium in Structure doesn't work (view only)


New features

Only (GaussianBeam, ModeSource or PlaneWave) source can be selected in the source dropdown list

If the source has been linked to blochboundary, show warning msg when trying to disable/delete the source or change the source type

Resolved issues

Fixed: bug about BlochBoundary not updated


New features

Upgrade GUI to support schema v1.8.3


Updated the wording of version from 'Current' to 'Default'

Improved the green color in GUI

Technical upgrade: Check the validity of id token before sending any billing requests, refresh id token if it's expired


New features

Added pre-validation message info into the validation result shown in GUI

Added warning message info into the validation result shown in GUI

Added the ability to filter out "daily storage fee" transactions from Billing history by default

Added a "My Expenses" tab to user account (/account) page

Added a New min, max Option for Source Time Definition, updated the plot of the source_time

Supported direct expression input in the fields of number datatype in simulation editor


Improved the user interaction for the mediums from Material Library; Improved the naming rules for medium; Improved the user interaction to expression editor; Added the ability to remind user to remove associations first (variable being used by other fields)

Resolved issues

Fixed: object cannot be deleted when disabled

Fixed: failure to delete large number of tasks and misleading message


New features

GUI upgraded to support Tidy3D v1.8.2

Resolved issues

Fixed: background medium duplicated on reopen

Fixed: Visibility hide/show icon doesn't work on certain items


New features

GUI upgraded to support Tidy3D v1.8.1, including the following updates Material Fitter improvement, Improved Mode tracking in ModeSpec, Field Projection Monitors, Cylinder support sidewall_angle, PolySlab support x,y axis and reference plane, Broadband ModeSource and GaussianBeam, Added DiffractionMonitor, Added post-run result for DiffractionMonitor and Field Projection Monitors, Improved GridSpec editing

Expanded material library and improved documentation

Allow enable/disable for monitors and sources

Added |E|^2 in Post-Run Results


Updated the value input for the bloch_vec

Added error message if user input "Infinity" in bounds

Improved reference handling for variable reference - name change

Fill the cross-section in 3D chart geometry intersecting simulation bounds

Resolved issues

Fixed: FieldProjectionAngleMonitor doesn't allow value 0 in angles

Fixed: Issues on list variable number of points

Fixed: Only one digit is displayed in certain places

Fixed: Point Dipole Source Showing Two Arrows



Remember input mode for medium

Resolved issues

Fixed: Bug about unit switching in editor

Fixed: Couldn't change n in Medium

Fixed: Bug about number rounding and scientific notation conversion in editor

Fixed: Error when switch between list and string variable type

Fixed: 2D chart displayed incorrectly


New features

Allow enable/disable structures

2D chart added option to show/hide sources/monitors

Overlay structure on Post-Run field plots

Added support to input k in Medium


Improve reference handling in GUI

Improvement on boundary editing

Keep scientific notation in editor

Recalculate Bloch vector if relevant settings are updated

round number for display

Source plot improvement

2D chart add symbol for in and out of plane source polarization and propagation direction arrows

Improved 2D chart pan operation

Refined the display for PML/StablePML/Absorber editing panel

Rearrange layout of Structure panel

Resolved issues

Fixed: Clicking a task in search page leads to 404

Fixed: The run_time is not displayed correctly during typing

Fixed: Typo in background medium

Fixed: Visibility tree node level issue


New features

Added "Estimate" button under "Run" button, allow user to estimate FlexUnit cost before clicking Run

Added a new column "FlexUnit" in Task page

Pop over Edit to guide user to use this button

Allow user to save expression as a new variable during editing

Expanded color palette for materials

Added ruler in 2D chart


Rearranged "Medium" as parameter

Added default values for simulation domain and run time

Changed 2D simulation visualization from 3D view to 2D view

Simplified list input method

Redesigned and increased the visual transition to Task Success

Show time steps in progress bar

Set the grid override structure’s default visibility to false

Added constraints on list type variable

Improved the expression "fx" label

Improved the material library plotting with missing range

Simplified the "Saved" status in workbench title bar

Simplified and grouped related input fields with visual cue

Renamed duplicated task with _Copy and a number

Improved 1D simulation visualization

Resolved issues

Fixed: Variables disappeared after renaming the simulation

Fixed: Source arrow incorrect in 3d/2d chart


New features

Allow user to share tasks in any status

Added structure transparency in 3D/2D chart


Improved the pop over under version label after creating new version

Improved the version dropdown, allow to click the entire row to switch versions

Improvements for variables input and UI

Allow user to delete parent task in version listing page

Resolved issues

Fixed: shutoff=0 in Editor but 0.00001 in json

Fixed: ‘Save as’ doesn't work in public task


New features

User can now rerun a simulation and retrieve its full version history. After a simulation finishes running, user can click “Edit” button to create a new version, edit the simulation, and rerun. The history of all versions of the simulation can be found through the dropdown list in the title bar or under the “Task Details” - “History” tab.

User can now declare variables that can be used across different input fields in the simulation editor. Expressions consisting of variables and simple math operators are also supported.

The simulation cost of all simulations in a folder can be retrieved through the “Get Info” button in the right-click menu of this folder.

User can now archive all simulations in a folder by clicking the “Archive” button in the right-click menu of this folder.

Monitor data can be downloaded in .csv format in the Post-Run Result page.

User can now visualize the source time signal and spectrum.

User can upgrade a simulation of an older version to the latest supported version of the GUI simulation editor.

Grid can be plotted on top of the structures in the 2D chart.


Medium can be defined through index in addition to permittivity.

Geometries of Box and Cylinder can be defined through boundary (min+max) in addition to center+size.

Improve Post-Run Result page layout to display simulation editor on the left sidebar for convenient revisit of the monitor setting.

Open up the progress window when entering a task which is currently running.

Display the action menu when multiple items are selected in the folder system.

Explicitly label the tasks that have been shared and provide filter function.

Support downloading “Simulation.json” for tasks in draft status.

Allow drag to adjust the width of each column in the folder system.

Increase the upper limit of number of tasks which can be deleted in batch.

Plot the propagation and polarization directions of sources in 3D chart.

Provide the “Field decay” info in the task progress window.

Support equal axis aspect ratio plotting in Post-Run Result.

Support opening “tidy3d.log” in GUI viewer directly.

Improve Grid Override user experience by visualizing the grid override region in 3D chart, and allowing user to set override geometry from existing structures.

Improve the BlochBoundary boundary editing experience.

Improve PML/StablePML/Absorber boundary editing experience.

Keep the same fields unchanged when switching the types of Source or Monitor.

Show fitting progress in Material Fitter.

Optimize performance of Tidy3D Web Client initialization.

Improve the colormap for magnitude and intensity field plots in Post-Run Result.

Improve the performance of user login: now it should take <2 seconds to login.

Resolved issues

Fixed: added missing labels for B and C coefficients in material model fields.

Fixed: GUI rendering issue of Gaussian source.

Fixed: dispersive model pop up warning message even though no editing is made.

Fixed: object re-arranged but 2D chart not updated correctly.

Fixed: FluxMonitor fields update only after closing the window.

Fixed: PointDipole source disappear if unhide the Near2Far monitor.

Fixed: 2D chart reset zoom after editing a parameter in simulation editor.

Fixed: the reset issue when try to edit the BlochBoundary.

Fixed: 2D chart not including PolySlab dilation.

Fixed: switch from 2D chart to 3D chart when editing any parameters.

Fixed: Post-Run Result missing axis label.


New features

GUI now supports Tidy3D version 1.6.3, including the following new features: FluxMonitor and FluxTimeMonitor with 3D box geometries computing flux going out of all box surfaces (or with exclusion). A new simulation parameter "normalize_index." ModeFieldMonitor is changed to ModeSolverMonitor which includes additional effective index data. Editing support for Near2Far monitors (Post-Run Result for Near2Far monitors is coming soon)

The intensity and absolute values are added to field plots in Post-Run Result

Use can specify source-time using central wavelength in addition to central frequency

Material Fitter now plots data immediately after file upload

Sources and monitors are displayed by default in 3D chart

Help center documentation now supports full-text search

User can drag to reorder the structures in the override_structures list

“Solver Duration” is now displayed in task progress panel


Added confirmation to "Delete" to prevent accidental deletion

Improved BlochBoundary editing

Return to the previous location in Folder system when exiting from Editor

Improved version message when user upload higher version json than the version that UI can support

Re-adjusted Parameter list order

Improved responsiveness by scrolling to reveal added fields in editor

Resolved issues

Fixed: Grid override structure couldn't add geometries into GeometryGroup

Fixed: 2D ring resonator structure color mismatch


New features

Client Administrator can now view tasks of other users of the same organization in the "Folders" page

Added "User Name" to transaction history in the "Admin" page of Client Administrator


Search result now displays the owner information of a task

User can now drag to adjust width of the side panels inside the GUI editor


New features

User can now duplicate a task inside the simulation editor

Tidy3D user can save a shared task to their own account

Provided "Infinity" for eligible fields in the drop-down menu in the simulation editor

User can now drag to reorder items in the simulation editor's left sidebar

Press ESC to unselect all tasks in the folder page


Improved the speed performance of Post-Run Result visualization

Removed redundant information in the sidebar of Post-Run Result

User can now hide the progress bar by clicking outside of the window

Simplified the input format of complex number

Resolved issues

Fixed: Post-Run Result vertical axes labels were missing

Fixed: PoleResidue model's coefficient labels were flipped in GUI

Fixed: 3D chart cropped front surface when structure is very large

Fixed: 2D chart didn't plot source and monitor correctly

Fixed: 3D chart reset navigation setting after editing


New features

Tidy3D users can now publicize their tasks using the "Share" functionality. Anyone with the public link of a task can view the simulation setup and results without logging into a Tidy3D account


Improved the display of long task names in Task Details tab


New features

A status monitor allows users to track real-time processing of a submitted task.

3D visualization now supports exporting 3D model in GLB format.

FieldTimeMonitor post-run visualization now supports downloading movie as GIF.

The initialization performance of simulation editor has been improved.

A back button is now available for users to go back to previously visited pages in Help Center.

An admin page is now available for client administrator to manage users and browse complete transaction history of all users.

Miscellaneous UI/UX improvements have been applied to the simulation editor and across the site making it more intuitive and more intelligent.

Resolved issues

Fixed: Users can not zoom the y-axis when using the “data zoom” function inside the post-run heatmap by mouse dragging, mouse move, mouse scroll or finger touch.

Flow360 Software Releases

Flow360 Solver


A new version of Flow360, release-, has been deployed. Any new submissions of mesh will use this new version by default. Any cases based on previously submitted meshes or forked from submitted cases using prior versions will still use their originally specified versions of Flow360.

10.1.1. Solver

New features

Added option for running unsteady simulations with a low numerical dissipation Roe Flux scheme.

Added option for automatically setting CFL based on solution convergence.

Minor improvements to efficiency of running simulation, uploading and visualizing results.

Added option to modify DDES model constants.

Added DDES model volumetric outputs for debugging purposes.

Improvements to robustness and convergence of wall model.

Improvements to convergence of transition model.

Added physical time output to Tecplot output files.

Resolved issues

Fix SpalartAllmaras turbulence model divergence when linear system convergence is poor.

Fix transition model inside sliding interfaces.

Fix SpalartAllmaras DDES model to include laminar viscosity in shielding function computation.

Improvements to logging and case json validation.

Fix visualization for cases with spaces in boundary names.

Fix missing fragments of mesh visualization in static pictures.

10.1.2. Automated Meshing

New features

10.1.3. flow360client

Although recent versions of flow360client will still work, it is highly recommended to upgrade to the latest version for more convenient capabilities:


If downloading for the first time: pip3 install flow360client

If upgrading from an older version: pip3 install --upgrade flow360client

Here is the flow360client on PyPI: https://pypi.org/project/flow360client/


Flow360 Solver
New Features
- Added support for mesh sizes larger than 250 million nodes.
- Significantly improved speed of mesh processing.
- Improved accuracy of gradient computation resulting in improvements to spatial discretization accuracy.
- Added physical time in Tecplot output for animations.
- Additional mesh information available in logs.
- Improved validation messaging for diagnosing issues in Case JSON file.
Resolved Issues
- Improved residual convergence of transition model: Amplication Factor Transport.
- Fixed holes in slice output for certain meshes.
- Fixed divergence of Spalart Allmaras model with no wall boundaries.
- Fix relative residual convergence check when initial residual is very small.
- Reduces discontuity in postprocessing outputs across sliding interface.

Automated Meshing
New Features
- Improved meshing for C0 continuity edges.
- Backend uses ESP 1.21 July 2022 release with Open CASCADE Technology 7.4.1


A new version of Flow360, release-, has been deployed. Any new submissions of mesh will use this new version by default. Any cases based on previously submitted meshes or forked from submitted cases using prior versions will still use their originally specified versions of Flow360.

12.1.1. Solver

New features

Added user defined dynamics for defined alpha controller and BET Omega controller.

Added support for BET inside a sliding interface for a rotating reference frame.

Added Quadratic Constitutive Relation to turbulence models: SA and SST.

Added Surface Time Solution Averaging Animation.

Added output of maximum residual location in solver log and as a csv file

Added support for importing CGNS meshes from ANSA.

Resolved issues

Improved sliding interface implementation for kOmegaSST turbulence model.

Significantly reduced grid sensitivity of AFT transition model.

Improved numerical robustness and convergence behavior of Spalart Allmaras, kOmegaSST turbulence models and AFT transition model.

Documentation updates

Alpha controller json input has been changed to use the new user defined dynamics feature.

12.1.2. Automated Meshing

New features

Added rotational interface support for automated meshing.

12.1.3. flow360client

Although recent versions of flow360client will still work, it is highly recommended to upgrade to the latest version for more convenient capabilities:


If downloading for the first time: pip3 install flow360client

If upgrading from an older version: pip3 install --upgrade flow360client

Here is the flow360client on PyPI: https://pypi.org/project/flow360client/

New features

Improve usability of Python Client by providing a download/upload progress bar.

12.1.4. Web UI

New features

Added archive functionality for cases: see how can I archive my case.

Added multi-select and batch process: delete/archive/restore.

Added interactive 3D view for surface mesh.

Added interactive 3D view for surface to volume mesh generation. Shows refinement zones and actuator disks.

Introduced new billing system.



Flow360 Web Client


New features

Case got a new 3D visualisation tab (with “beta” label) available for all new submissions, not only the latest solver version. New visualisation shows q-criterion and surface results (Cp, Cf, CfVec and y+) for noSlipWalls.

Pre-submission validation warnings are presented to the user

The volume meshing page accepts the parameter “refinement” for refinement zones (solver version release-

daily.cost.s3 is hidden by default from the account page

Resolved issues

Large scale surface meshes can be now viewed in the 3D surface mesh viewer

Input for solver tolerances now accepts 1e-10

Not showing prompts for the case generator then nothing was changed.

Fork is not available from a case with status=error/diverged

Pagination fixed


New features

Pre-submission JSON validation for surface meshing, volume meshing and case

WebUI is now hosted under a new URL: https://flow360.simulation.cloud

Added progress bar when loading surface mesh for visualisation

Resolved issues

Minor bug fixes



Featured Stories

Social Platforms