Release notes


  • Fix issue with arrays (e.g. y-data in a bar chart) in Configuration Mode sometimes not expanding.
  • Fix regression introduced with MIRO 1.2: In Hypercube Mode, scenarios loaded in the Tab View would not appear in the "Local" tab in the Split View.
  • Fix issue in Pivot Compare mode where domains were displayed as "NA" in the scalar input table in certain situations.
  • Improve validation of Engine URL.
  • Fix issue with views whose names are longer than 54 characters.
  • Fix issue with scenario comparison when scalars table and widgets are in separate input groups.
  • Fix issue where dialogs for adding/renaming columns in standard input tables did not work in the integrated browser.
  • MIRO Pivot: Improve layout if there are many views (> 15).
  • Fix a race condition that could cause stale input data to be sent to custom renderer functions.
  • Fix issue when column in default input table was both pivoted and declared as readonly.
  • Fix issue with input widgets being part of input groups.
  • Fix a rare case where scalars were not imported when importing data from local files.
  • Force the Tab Comparison Mode the default comparison mode in Hypercube Mode because the scenarios selected for comparison will be loaded in this mode (this overwrites the defCompMode setting).
  • Fix issue where downloading attachments did not work properly in certain situations.
  • Add option to configure a custom icon for a valuebox by adding a new choice to the dropdown menu.
  • Improve readability of symbol configuration in Configuration Mode.
  • Fix issue where import of data from GDX for a dropdown with clearValue option set to TRUE did not work.
  • Fix issues with remote execution on GAMS Engine and uppercase letters in main GMS file.
  • Fix issue in Configuration Mode (valuebox configuration) where the user gets an error when clicking on save twice.
  • When removing database tables, show only one dialog instead of two.
  • Fix issue in the MIRO Pivot renderer where filter dropdown would be irresponsive after loading view with unknown filters.
  • Fix issue in the MIRO Pivot renderer where table/charts would be rendered more often than necessary.
  • MIRO Pivot renderer: Change the settings of bar charts so that they always start at 0, and of line charts so that they have no interpolation.
  • Fix issue that caused MIRO to crash when loading app with default scalars table on first tab.
  • Fix issue that caused multiple symbols in custom renderers not to work properly.
  • Fix issue that caused path to custom renderer function not to be passed correctly.
  • Fix issue in Configuration Mode that caused MIRO to crash in some situations when resetting a table configuration for a symbol.
  • Fix issue in Configuration Mode that caused label of tables not to be applied in certain situations.
  • Numbers in default input tables with pivoted columns are now formatted correctly.

Breaking changes

  • Additional packages in custom renderers are now installed in the MIRO workspace. These packages are no longer attached because this could lead to conflicts with packages required by MIRO. Read here for more details.

New features

  • MIRO Pivot Tables introduced with MIRO 1.1 can now also be used for data input.
  • Input widgets can now be grouped, and the order of widgets within a group can be changed.
  • Views can now be attached to a scenario. A view is a JSON encoded configuration of some renderer. The first renderer to support this new feature is the MIRO pivot table renderer.
  • New scenario comparison mode: pivot view. This mode allows you to merge datasets of multiple scenarios and analyze them with the pivot table renderer.

Minor new features and improvements

  • Settings for output tables can now be configured symbol-specific. Read more here.
  • Add option to specify default app title and description when deploying MIRO apps. Read more here.
  • Besides GAMS tables now also normal parameters and sets can be configured as maps.
  • Add option for text input widgets that causes element label of a singleton set to be the empty string. The idea is to use singleton sets to define compile-time variables in the GAMS model (read more here). Note that this is currently not supported in Hypercube Mode.
  • Handsontables (default input tables) can now be searched. Matching results are highlighted and the viewport is changed to show the first result. You can move to the next result by pressing Enter and move to the previous result by pressing Shift + Enter.
  • Remove unnecessary options for global input table settings in Configuration Mode.
  • The filters in the MIRO pivot renderer now remain expanded even after selecting a new element.
  • Improve accessibility of MIRO apps.
  • Development mode: New data is now only imported if the file has changed since the last start of MIRO.
  • Added option to enable a column visibility button which allows to hide columns in big data tables.
  • Increase maximum number of scenario attachments from 5 to 7.
  • Input tables can now be annotated with Markdown.
  • Big Data Tables now support adding/removing rows.
  • Value boxes can now be configured individually for each scalar value.
  • Live preview of the graphics configuration can now be viewed in full screen.

Bug fixes

  • Fix major issue that could result in wrong input data being stored after solving a model.
  • Improve support of non-ASCII characters in file paths on Windows.
  • In Configuration Mode, allow symbols with multiple header aliases of the same name to be saved.
  • Fix issue where stale data would be displayed when loading scenario while an input chart of the previous scenario was still open.
  • Fix issue where wrong files could be deleted when a scenario was removed from the sandbox.
  • Fix issue with downloading results after solving a job asynchronously.
  • Fix issue that occurred when several asynchronously solved scenarios were downloaded one after the other and then imported into the sandbox.
  • Fix issue that occurred when trying to display logs of two different asynchronously solved scenarios one after the other.
  • Fix issue where removing and then adding attachments again would cause an unexpected error.
  • Fix bug on Windows with local attachments.
  • Fix issue where multiple flows could not be displayed on one map - only the last flow was visible.


  • Add C:\GAMS\XX to the list of paths searched under Windows to find GAMS versions >=32 installed in the default location.
  • Fix issue where discarding attachments when saving a scenario would not work properly if an existing scenario had to be overwritten.
  • Fix issue where having GAMS not in the PATH on Windows would result in an error message in the log.
  • Fix issue where non-zero exit code was not redirected to the parent process when deploying a MIRO application.
  • Fix issue where apps deployed as single-user could not be imported to the library.
  • Fix issue with Studio always showing success message when deploying a MIRO app, even when there were problems.
  • Fix bug where no groups specified in map configuration would lead to crash on next startup of Configuration Mode.
  • Fix set configuration: Only show those tools that can be configured with with a set
  • Fix bugs in Configuration mode with animation options.
  • Fix bug that caused a line chart configuration to not be recognized as such in some situations when using a GAMS table symbol.
  • Fix bug that caused empty xaxis title to be overwritten on next startup of Configuration Mode.
  • Fix bug that caused slider range preview to fail when configuring a dynamic limit.
  • Fix bug that caused configured checkbox starting value to be overwritten on next start of Configuration Mode.
  • Fix bug in date & date range selector configuration that caused startview and weekstart option to be overwritten on next start of Configuration Mode.
  • Fix bug in the configuration schema of the texinput widget that caused an error when configuring an empty starting value or placeholder.
  • Fixed an issue where numericinput would send wrong values in certain situations

New features

  • New pivot table renderer: An all new pivot table renderer can now be selected for input and/or output charts. This renderer is designed for large datasets (> 1 million elements) and will replace the old pivot table renderer. The old renderer is still going to work, but you can not configure it via the Configuration Mode any longer. In a future release, we might deprecate this old pivot table renderer, so please migrate to the new one! This new renderer is the default renderer for input and output symbols. This will make the default configuration of MIRO even more powerful!
  • Configuration Mode: Graphics configuration now loaded at next start.
  • Two GAMS symbols can now be displayed in the same tab (side by side) when grouped.
  • Add option to specify files that should be attached to a scenario after a GAMS run executes successfully. This allows you to add additional data to the data displayed in the user interface and add states to your scenarios to implement processes. You can find further information here.
  • Add option to include TeX notation in README files via the enableMath switch. Wrap your TeX formulas in $ tags for inline rendering or between $$ for rendering as a formula block. Find more information about this feature here.
  • The text input widget can now be configured for Singleton Sets.
  • Multiple GAMS symbols can now be used in one custom renderer.

Minor new features and improvements

  • Tabs for output symbols can now be hidden. This can be useful, for example, if you include a GAMS symbol in MIRO only for the purpose of using its data together with another symbol in a custom renderer (see above).
  • Symbol metadata (symtype and headers) are now passed to the custom renderer/custom widget via the options list. The nested list can be accessed via the key options[["_metadata_"]].
  • The MIRO log can now be used as an alternative to the GAMS log. This means that it will update while the model is running.
  • Add option to define the decimal separator character and the thousand groups separator character for numeric inputs.
  • Add legend configuration options to time series diagrams.
  • Add option for static event lines to time series diagrams.
  • Add option for dropdown menus that causes element label of a singleton set to be the empty string. This is only supported if aliases are defined. Also note that this is currently not supported in Hypercube Mode.
  • Add option to hide indexing column in input tables. Only available for default input tables and not for big data tables.
  • Minor UI adjustments in input widgets tab
  • Add caching for deployed apps which drastically increases their startup performance.
  • Increase startup performance for the Configuration Mode.
  • R is now bundled with MIRO on MacOS.
  • Data is now imported when a new MIRO application is added to the library instead of at the first start of the application.
  • When a new MIRO application is added to the library, the database tables are now checked for consistency.
  • Add option to remove database tables when removing a MIRO application from the library.

Bug fixes

  • Fix issue with validating GAMS on Linux.
  • Configuration Mode: Fixed a bug that caused adding a script with an already existing id not to be validated properly in certain situations.
  • Configuration Mode: Fixed a bug where an incorrect widget configuration was displayed for symbols with a JSON configuration that is not (yet) supported by Configuration Mode.
  • Orphaned tables were not found when model name includes underscores.
  • An error that should only occur if the list/log file exceeds a certain file size was incorrectly displayed when starting a new GAMS run.
  • Model names that included an underscore "_" caused MIRO to throw an exception when downloading scenario data in Hyperube Mode.
  • Did not properly set idir when running Hypercube jobs locally (currently, model has to be adjusted to work with idir).
  • Fix bug that caused Hypercube to crash when configuring a dropdown menu that is not expanded in Hypercube Mode.
  • Fix bug that caused Hypercube job to fail when a multi dropdown menu is empty.
  • Fix bug that caused wrong value to be written to GDX when having an empty multi-dropown menu (no elements selected)
  • Fix bug that caused datatables without numeric columns to throw an error (e.g. for sets)
  • Fix bug where attachments with execute permissions were not extracted in workdir with SQLite database backend (default on MIRO Desktop)
  • Fix bug that caused empty sets not to show up in GDX and therefore to throw an error on the GAMS side.
  • Fix problem with Safari browser where marked text in the GAMS interaction section was unreadable.


  • macOS: Fixed a bug that caused GAMS versions >= 31.x to be rejected.
  • Fixed a bug that caused csv files with filename equal to the dataset name not being imported. The dataset had to be selected manually.
  • Fixed bug in Configuration Mode that caused custom table headers to be reverted to their defaults the next time Configuration Mode was started.
  • Fixed a bug in Configuration Mode that caused custom scripts arguments not to be displayed correctly at the next start.
  • Fixed bug that caused MIRO apps with same version as currently installed to be falsely rejected by library.

New features

  • New deployment environment for configured MIRO applications. You can find more information about this here. The --mkapp=1 option (shortcut creation) is no longer supported.
  • MIRO now comes as an independent installer on the platforms Windows, macOS and Linux. The installation is independent from the GAMS system. All GAMS versions 30.2 or later support GAMS MIRO.
  • [MIRO:table] syntax for pivoting a table column in MIRO is no longer supported. Instead, a symbol can now simply be declared as a table. Read more here.
  • Added ability to pivot tables in MIRO via the Configuration Mode. Unlike the table statement in the GAMS model itself, this option does not affect the data contract between GAMS and MIRO resulting in variable columns.
  • Full dark mode support.
  • Added miro log option for custom logs and input validation
  • Added support for an individual README starting page (markdown document) which is displayed in the input section. The Readme file can be added/edited in Configuration Mode.
  • Added support for own custom scripts for analysis purposes in Base and Hypercube Mode.
  • New widget type: numeric Input.
  • One-dimensional sets can now be configured as dropdown menu.
  • New widget type: Multi-dropdown menu for one-dimensional, dynamic sets.
  • Added support for custom input widgets.
  • Added support for remote data import and export: users can import/export data from/to external sources via REST API.
  • Symbol links: Data of output symbols can now be used to populate tables of input symbols.
  • Sandbox scenarios:
    • The MIRO user interface can be seen as a sandbox. Data that is loaded into the interface is therefore located in this sandbox as a sandbox scenario. The data of the sandbox scenario can come from the MIRO database, external databases, GDX containers, excel files, or can be entered manually.
    • File attachments are part of a scenario. If attachments are added to a sandbox scenario, they are included when saving this scenario.
    • Sandbox scenarios can be loaded in scenario comparison via load active button.
  • Added filter option for graphs: One dimension of a symbol visualized as a graphic can be configured as a filter dimension. Its elements can then be selected via a (multi-)drop-down menu. Only the data belonging to this selection is displayed in the graphic.

Minor new features and improvements

  • Bug fixes
  • New MIRO logo (Thank you Melina Klöckner!)
  • Full Chinese language support (Thank you Ying Deng!)
  • Completely restructured Hypercube Mode. This includes the change from CSV to GDX file format for scenario input and output data. This is especially relevant for the manual job submission.
  • Changed directory name for custom renderers from customRenderer to renderer_<modelname>
  • Changed directory name for configuration files from conf to conf_<modelname>
  • Improved performance on startup of MIRO Base/Hypercube Mode
  • Added Link to GAMS World Forum in help section.
  • Stop button in GAMS interaction now with soft kill first, then hard kill.
  • Scenario comparison: input and output symbol tabs are now displayed in different colors.
  • Added option to edit scenario access permissions.
  • When creating new scenario via Save as dialog, attachments of currently active scenario can now be duplicated. This does not apply to scenario access permissions.
  • Element text of singleton sets can now be appended with a double pipe ("||") and will be aggregated/disaggregated when loaded/stored from GDX. The value and/or the element text of a singleton Set can be used in the eval.Set option to evaluate the value/text at compile time and place it into a scoped compile-time variable. This is useful any information about double-dash parameters and GAMS options configured via Configuration Mode gets lost when exporting a scenario as a GDX file. Read more here.
  • Changed prefix for double-dash parameters and GAMS options from GMSPAR_ / GMSOPT_ to _gmspar_ / _gmsopt_.
  • Double-dash parameters and GAMS options can now have the same name as GAMS symbols.
  • Maximum number of symbol tabs visible in Inpupt/Output section set to 5 (rest available via dropdown).
  • Bootstrap dropdown menus are now right aligned per default. They will be left-aligned when space on left is not sufficient.
  • "More" dropdown menu (visible when more than 5 input or output tabs are shown in MIRO) will now show currently active tab.
  • First two columns (symbol name and symbol text) of scalar input table are now automatically set to readonly.
  • Import data via spreadsheet: Added possibility to use a sheet dedicated to a single scalar with the sheet name being the name of the scalar and its value being in column A1.
  • When importing scenarios from data_<modelname> folder, these scenarios can now be read and executed by all users within the same user group as the user importing them. Before, only the user importing them could read and execute them.
  • Adding/removing rows is now no longer allowed when at least one column is readonly.
  • Variables and equations can now be exported via GDX.
  • Changed handling of NAs, zeros and EPS. Numeric NAs are not converted to 0 anymore; Zeros are now written to GDX as 0 instead of being squeezed out.
  • Increased precision of numeric values input tables to maximum precision.
  • Custom renderer functions are now extended with ellipsis arguments to make sure they are compatible with future MIRO versions.
  • Configuration Mode:
    • New structure and design.
    • Added option to rename tab titles and symbol headers.
    • Added option to change the application title.
    • Added option to reorder symbol tabs.
    • Removed option to (de)activate the scenario functionality (e.g. save scenarios in database). Is always activated now.
    • Removed comment functionality in input tables.
    • Input scalars can now be used in charts as well.
    • Charts configuration has now access to MIRO database. Previously saved scenario data can now be used for the graphics configuration (besides the local file upload).
    • Added option to display graphic and table in split-screen for pie charts, maps and gantt charts.
    • Added option to remove invalid widget/graph configuration in Configuration Mode
    • Added custom renderer option for graphics.
    • Added support for multiple pie charts via subplots
    • Added support for heatmaps (input tables).
    • Bar chart, Line chart, Scatter, plot, Bubble chart: Order logic of axis elements can now be adjusted.
    • Map: Markers can now be customized (icon, icon color, marker color).
    • Added option to set a fixed height and/or width for pie chart, donut chart, bar chart, histogram, scatter plot, line chart, bubble chart.
    • Added option to render a static picture instead of an interactive plot for pie chart, donut chart, bar chart, histogram, scatter plot, line chart, bubble chart.
    • Added option to set the axis scale ratio for line chart, scatter plot, bubble chart.
    • Added option 'area' and 'diameter' for bubble chart size measurement
    • Valuebox: Number of boxes in a row can now be customized.
    • Added option to configure number of decimal places for numericInput
    • Removed remote Execution setting from Configuration Mode. Moved to preferences that are accessible via the MIRO library.


  • MIRO Configuration Mode: The GAMS MIRO Configuration Mode can be used to change the settings of your MIRO app as well as to generate new widgets and charts. When configuring your widgets and charts, you get a live preview so that you immediately see the results of your configuration. You don't need to touch JSON code anymore.
  • New data import mechanism: Instead of creating an Excel file that the user then has to upload in order to get the first data into MIRO, data relevant to MIRO is automatically extracted from your model and stored in the MIRO database.
  • Tab grouping: Group multiple input tabs and output tabs together.
  • Automated loading of data on startup: Automatically load data when your MIRO app launches, so tables won’t start out empty.
  • Automated scenario import into DB: GDX files that you place in the data_<modelname> folder of your MIRO app will be automatically imported into the MIRO database the next time you launch your app.
  • Improved UTF-8 support: You can now use non-ASCII characters throughout MIRO
  • Chinese language support (note that the MIRO Configuration Mode is not yet translated, though).
  • Import and export of GDX files: Besides Excel spreadsheets you can now also import and export GDX containers.
  • GAMS Studio toolbar to launch MIRO.
  • Experimental support for Gantt charts.
  • Bug fixes and performance improvements.



Initial release