Release Notes for Mari 4.7v3

Release Date

16 June 2021

Previous Releases

System Requirements

Note:  Mari increases its level of performance with newer, more advanced hardware configurations. However, Mari is tested and capable of operating on many older, prior-generation systems. For this reason we are listing below-minimum requirements, which are recommended, and on which tests have been performed. Your particular needs may vary from that of other users.

Officially Supported Operating Systems

  • Windows 7 64-bit or higher
  • Linux 64-bit operating system (CentOS/RHEL 6)
  • macOS Mojave 10.14 or higher

Note:  Linux Desktop Managers: Mari is officially tested on GNOME and MATE. While it generally performs well on other desktop managers like KDE, most of our bug fixes will target those specified above. Some desktop managers like XFCE have not been tested with Mari and therefore will not be supported.

Minimum Hardware Requirements

  • Quad-core processor
  • 10+GB disk space available for caching and temporary files
  • At least 4GB RAM
  • Display with 1680 x 1050 pixel resolution
  • An NVIDIA or AMD* graphics card with the latest drivers
  • 1GB of graphics memory
  • OpenGL 3.2* or higher

*Displacement preview is currently only available on the cards and drivers that support OpenGL 4.0 or newer.

Recommended System Requirements

  • 2.5+Ghz Quad-core processor
  • 250+GB disk space available for caching and temporary files. SSD is preferable.
  • 16GB RAM with additional virtual memory*
  • Display with 1920 x 1080 pixel resolution
  • An NVIDIA or AMD* graphics card with the latest drivers
  • 2+GB of graphics memory
  • OpenGL 4.4 or higher support

*The use of virtual memory improves stability and helps prevent data loss on large projects.

'Recommended' does not guarantee that it meets your particular needs.

Tested Hardware

The configurations listed below are those that Foundry have tested with Mari. Due to the constantly changing nature and wide variety of computer hardware available in the market, Foundry is unable to officially certify hardware. The list below can be used as a recommendation and does not guarantee that it meets your particular needs.

Please download and install the latest graphics driver from the NVIDIA or AMD websites, and ensure that you are using 8.982.1 drivers or higher for AMD cards.

If you encounter any issues, please contact Customer Support directly through the Support Portal at the following address:

Tested Workstation Hardware

  • HP XW6600
  • HP Z600
  • HP Z620
  • HP Z640
  • HP Z8 G4 Workstation
  • MacPro6,1
  • iMacPro1,1
  • MacBookPro14,3
  • MacBookPro16,1

Apple M1: Please note that Mari does not support the Apple M1 chipset computers.

Tested GPU Hardware

AMD Prosumer Graphics Cards
  • AMD Radeon HD - D500
  • FirePro D500 3 GB
  • Radeon Pro 560 4 GB
  • Radeon Pro Vega 64 16 GB
NVIDIA Prosumer Graphics Cards
  • NVIDIA Geforce GTX 660TI
  • NVIDIA Titan X
  • NVIDIA Geforce GT 650M
  • NVIDIA Geforce GT 675M
  • NVIDIA Geforce GTX 1080
  • NVIDIA Geforce GTX 1080 Ti
  • NVIDIA Geforce RTX 2070 Super
NVIDIA Enterprise Graphics Cards
  • NVIDIA Quadro 4000
  • NVIDIA Quadro K4200
  • NVIDIA Quadro K5000
  • NVIDIA Quadro M6000
  • NVIDIA Quadro M6000 24GB
  • NVIDIA Quadro P5000
  • NVIDIA Quadro P6000
  • NVIDIA Quadro RTX 4000
  • NVIDIA Quadro RTX 6000
  • NVIDIA Quadro RTX 8000

New Features

Scalar Color Picking Mode

In Mari 4.1, we introduced the Perceptual Color Picking Engine to our color management system. This intuitive method of picking colors lets the artist choose a color, within the context of how it appears in the viewer, then resolves the RGB value of the color to the target Channel's colorspace. This allows artists to pick colors based on their perceptual look without requiring any concern for what the RGB values should be for Channels of any colorspace. However in certain scenarios, when choosing values for non-color or scalar Channels, this system would distort the chosen values as the engine would try to process the artist's choice as a perceptual color rather than a series of scalar data values.

In order to overcome these scenarios, we have introduced a new Scalar Mode to our Color Picker. Driven by the colorspace context of the active painting target being set to scalar, this new mode allows artists to pick raw RGB values without Mari engaging the Perceptual Color Picking Engine, which ensures results in undistorted, artist chosen RGB values.

New Colorspace Nodes

Colorspace Context Conversion Adjustment Layers

Two new colorspace Adjustment Layer (or filter node) types have been added to Mari, Color to Scalar and Scalar to Color. These allow you to convert the RGB values of your Layerstack/NodeGraph from color to scalar or the reverse. This is particularly handy in workflows where you intend to blend the perceptual mid gray of a bump or roughness map into a Channel configured for color.

View as Colorspace Context Nodes

We have added two new colorspace nodes, View as Color and View as Scalar, that enable you to force the View Transform to switch to the desired display context. Together, these nodes give you full control on how you view the shader of your graph network.

Feature Enhancements


  • ID 415443 - Mari's Image Manager right click menu now exposes Set Image Colorspace > As Color/Scalar options for batch setting Color/Scalar state of the selected images.

  • Mari now exposes a new Scalar column in the Channel Presets table which allows artists to specify whether each Channel or texture file sequence to import is representing Scalar data or not.

  • The Color Picker dialogs and Colors palette now show the tabbed pickers instead of the HSVRGB sliders when the size is small.

  • Mari now only shows the Color Data colorspace config box of Channels for simpler user interaction, while the Channel Mask Data colorspace config box is now only visible in the advanced colorspace UI mode.


  • Unnecessary wait times (spinning wheels) when switching between previously used shaders, layers and nodes, including when changing blending modes and layer visibility, has been reduced. Additionally, the frame rates of heavy scene shaders has been improved.

  • ID 416605 & 447023 - By using the new Preference item Data > Project > Delete Patch Data no Longer Required, Mari can now clean up UV Patches and associated image data from the project cache once they are no longer resident in a project.

  • Finding and selecting texture sequences in the Import Channel dialog is now faster and more responsive.

Node Graph

  • ID 474605 - Clicking a Stream button on the Multi-Channel Merge node properties no longer switches the project's Current Channel which increases the performance switching between and configuring multiple Streams of a Multi-Channel Merge node.


  • The borders around floating palettes and splitter handles have been increased for easier manipulation when using graphics tablet devices.

  • ID 414086 - Node parameters for specifying save paths now bring up a file overwrite check window once the text box editing has finished.

  • ID 447428 - The Edit Properties dialog of a Multi-Channel Bake Point node now has better column spacing and tooltips


  • ID 307481 - The shortcut, Ctrl+Shift+H, is now assigned to "Show Entire Object" instead of "Show All" by default. This makes the workflow of temporarily isolating a selection of an object feel more intuitive, as you can no longer mistakenly unhide other objects in your Project you intended to keep hidden using the show/hide shortcuts.


  • Mari now supports a new Python API function mari.ocio.registerConfigUiAllowlist() and environment variable MARI_COLORSPACE_OCIO_UI_ALLOWLIST to reduce the list of colorspace options displayed in the colorspace configuration drop-down menus for Channels, Paint nodes, Bake Point nodes and Image Manager images.

  • Mari now emits two new signals when an image has been written to disk from the Export Manager.

    • One signal emitted from the Export Manager as mari.exports.imageExported(mari.ExportItem exportItem, str imagePath, int udim)
    • One signal emitted from the Export Item itself as mari.ExportItem.imageExported(str imagePath, int udim)
  • Mari's Python API class UvIndexRangeList has had some convenience functions added to enable TDs to construct and cast a UV Range instance into UV index and UDIM lists. This will streamline how you can use a UvIndexRangeListwith other Mari functions that require a UV index list.

    • mari.mari.UvIndexRangeList now has uvIndexList(), which returns UV Indices as a list of int
    • mari.UvIndexRangeList now has udimList(), which returns UDIMs as a list of int
    • mari.UvIndexRangeList now has an additional construction method, which takes in UV indices, as a list of int, to construct a new UV index range list instance
  • The example script,, now uses importImagesFromDict() instead of importImages in order to be forward compatible with Python 3.

Bug Fixes


  • ID 470909 - The Export template token $COLORSPACE would get resolved to Colorspace roles rather than the actual colorspace name.

  • ID 475696 - The Blending Colorspace conversion dialog would show up redundantly for non-8-bit Channel nodes


  • ID 473065 - Connecting a Node with lots of inputs/outputs would take an unnecessarily long time.

  • ID 443313 - Mouse activity in/over the Node Graph view would cause the Canvas view to redraw even though the preference Pause Canvas Rendering was enabled.

  • ID 472129 - When adding a new Geo Version to an Object containing Multi-Channel Bake Point Nodes, users would be forced to wait an unexpectedly long time for the new version to appear.

macOS Maintenance

  • ID 446215 - Mari's application window would incorrectly turn black when triggering the Toggle Shader Compiling action was triggered.

  • ID 450953 - Mari's application window would incorrectly turn black when applying a Filter.

  • ID 439179 - The Towbrush applied to an 8 bit Paint Buffer would appear in an incorrect color.


  • ID 462211 - Under certain circumstances, tools which used a snapshot of the canvas, such as Blur, could cause Mari to crash if the user began navigating the viewport before the baking of the paint buffer was completed.

  • ID 462243 - The Clone Stamp Tool would fail to operate on a duplicated Object

  • ID 171069 - Reset Object Transform would not completely reset the transform for Transform Selected Objects tool, and it would allow the tool to incorrectly move the Object back to the location it was before resetting.


  • ID 439330 - Popping up the Advanced Blending Options would cause an unnecessary shader compilation.

  • ID 470125 - The Perturb Normals attribute on Displacement Simple nodes was giving incorrect results. This has been corrected and will now be enabled by default when creating a new Shader.

Project Data

  • ID 434200 - Under certain circumstances, when removing a locator which was referenced by a Locator List, the Locator List would forget the last used transform values.

  • ID 461599 - After duplicating an Object, the duplicated Object's Geo-Channels would malfunction if they originally are used in Geo-Channel Nodes.

  • ID 469264 - Exporting a Ptex file would contain some texture artifacts under certain conditions.

  • ID 467228 - Undoing Merge Layers would unexpectedly cause Mari to crash.

  • ID 467359 - LayerStack or NodeGraph changes would not be reflected in the Canvas render if the current Object was not the Object the LayerStack or NodeGraph belongs to.

  • ID 471921 - Copying a multiple output nodes and a Geo-Channel node would crash MARI

  • ID 438878 - The Convert Layers warning dialog would pop up for certain custom Node types utilizing a stringList attribute with no default value.

  • ID 476885 - When copying certain nodes, Mari would add redundant undo records to the history.


  • ID 430909 - Excessive trailing zeroes would appear in floating point number fields instead of the value ending at the last relative number.

  • ID 466675 - The input text box for renaming a Project would appear at incorrect positions in the UI.

  • ID 476264 - The Material Ingest Tool would not lock the Shader Model drop down control on reopening when a Material Template was being used

  • ID 463541 - The Pie Menu would not show the Shelf Items from the Menu shelf.

  • ID 471040 - Error dialogs would show unnecessary information when opening corrupted image files.

  • ID 454830 - When importing older shelves, Mari would spawn non-responsive dialogs requesting brush thumbnails regeneration.

  • ID 434054 - Custom Palettes would disappear after exiting the full screen Palette mode.

  • ID 246329 - Resetting shortcuts would not be reflected in the tooltips of the actions.

  • ID 423630 - Toggling back from the Full Screen mode would bring back the incorrect Palette at the top-level of a stack of Palettes.

  • ID 475019 - Mari would ignore shortcuts if they were executed after selecting an item in a drop down menu, such as the blending mode selection in painting tools or the Layerstack.

  • ID 475984 - When the Export Manager opened its window it would not display the Export Items of the currently active object.

Node Graph

  • ID 477170 - When inserting a standard node into a collapsed stream connection between two Multi-Channel nodes, Mari would unexpectedly crash.

Texture Transfer

  • ID 472510 - When running Texture Transfer of Layers with Flatten option set to Yes, Mari would fail to transfer due to an internal error .


  • ID 460239 - The Python API function mari.images.add() would not retain a reference to the given Image object causing the image to disappear from the ImageManager if the caller's Image variable goes out of the scope, causing Python garbage collection to delete the Image object.

Known Issues

Graphics Cards

  • ID 207913 - Mari may crash, or operate with lower than expected performance, when using recent graphics drivers with some AMD cards.

    There have been reports that and Raptr, which come bundled with the AMD FirePro drivers, can cause instability in Mari. If you are experiencing instability, please try uninstalling these applications.

Importing And Exporting

  • ID 113036 / BZ 49131 - High polygon .obj files, exported using the OBJ Exporter plug-in, cannot be read back in to Mari.

  • ID 10157 / BZ 16324 - Windows only: You cannot currently import an image into a channel using a relative file path. To work around this, use an absolute path when importing images.

  • ID 9854 / BZ 14985 - There may be a slight pause after importing textures when creating new projects, while Mari saves the project.


  • ID 383360 - Using Displacement on Shaders may significantly decrease Canvas frame rate whilst navigating. This can be offset by disabling displacement on individual Shaders, or by globally disallowing the Tessellation Allowed setting found under Preferences > GPU > Shaders.

  • ID 64924 / BZ 34690 - Flattening or caching layers or channels on complex projects may cause Windows to reset the graphics driver due to the long processing time. To work around this issue, you can try to flatten or cache fewer layers at a time, or reduce the value of the Max Render Size For Baking setting. This setting can be found under Preferences > GPU > Baking and Projection.

    Reducing this size breaks the flattening or caching operation up into smaller pieces, which individually take less time to calculate, and thereby avoids a Windows graphics driver reset.

Mari Tools

  • ID 10046 / BZ 13640 - The Blur tool can be slow to use on the initial stroke. Wait for Mari to process the blur before applying a second stroke.

  • ID 9567 / BZ 13394 - Using the Select Items tool with the Facing set to Front to select and hide a portion of faces causes some of the faces within the selection to remain visible when zoomed in. To catch all selected faces, either:

    • select Facing > Through instead of Front, or

    • zoom in closer to the object.

Node Graph

  • ID 126816 / BZ 51452 - When importing a gizmo, the nodes in the gizmo did not retain their organization if they were created using the item name in the menu.

  • ID 125961 / BZ 51263 - It is not currently possible to attach the Viewer node to standard Mari shaders, because they are hidden. As a workaround, you can click the View the current channel button above the Node Graph.

  • ID 125813 / BZ 51247 - Channel transfer doesn't transfer Graph Layers as expected.

  • ID 124611 / BZ 51082 - The Ambient Occlusion node's properties don't include a generate AO option.

Nuke<>Mari Bridge

  • ID 48970 / BZ 23010 - If Mari crashes when receiving incoming components from Nuke when the Virtual Texture Type is set to Float, lower the Virtual Texture Size to a value below 8192x8192.

  • ID 17678 / BZ 19780 - A projector created in Ortho view in Mari does not re-project correctly in Nuke.


  • ID 13600 / BZ 17626 - It can take a long time to import very large or very high polygon count .ptex models. The work-around is to assign a small uniform face size (1x1 or 2x2) on import, and then up-res the relevant bits of the model as necessary after loading.

  • ID 13531 / BZ 17618 - Ptex does not bake properly if the resolution of the face is too small. The workaround is to increase the resolution of the selected faces you are having problems with.


  • ID 64961 / BZ 34729 - Mari displays a rendering error on the canvas when it is unable to create a shader. More information has been included to help you determine the cause of the error. Some solutions might be to hide groups and layers, or to cache parts of your layer stack until a shader can be created


  • ID 308268 - Windows only: When working on multiple monitors, palettes sometimes cannot be docked.


  • ID 200836 - Scrolling in the Brush Editor or Tool Properties palette makes the scratch pad go blank.

  • ID 129292 / BZ 51771 - Removing, changing, or hiding subdivided objects takes a long time.

  • ID 126164 / BZ 51322 - Modo Render: The preview occasionally fails to update fully.

  • ID 124233 / BZ 51049 - Texture transfer does not take object transformation into account

  • ID 123532 / BZ 50898 - Existing subdivision calculations are lost when recalculating, even if recalculation fails.

  • ID 100303 / BZ 46600 - Ambient Occlusion must be updated after any OpenSubdiv calculation.

  • ID 90144 / BZ 43020 - Mac OS X with retina screens only: When a hidden menu is unfurled over the canvas, the canvas zooms in dramatically.

  • ID 62668 / BZ 33293 - Linux: Launching Mari with the language set to one without certain character symbols resulted in Mari failing with an error that the specified transform could not be loaded. To work around this, set the locale (language) to English.

  • ID 60643 / BZ 31946 - Sometimes paint is not baked because of memory management issues on the graphics card. This can be due to issues such as a high resolution paint buffer, a high bit-depth paint buffer, large virtual texture size, or even a large scale value on the paint buffer transform. These issues can usually be identified by glError: 0x505 out of memory messages in the log. Try reducing any or all of these values to prevent it happening. Graphics drivers are continually improving, so it’s also worth checking whether upgrading your drivers resolves the problem.

  • ID 37066 / BZ 20021 - Textures in the canvas intermittently switch between lower and higher resolutions. This issue is more likely to occur if your virtual texture resolution is low, and you're working on a complex model with displacement. Possible workarounds include increasing your virtual texture size, reducing the number of channels Mari has to access at once (for example, by reducing the number of channels required for the current shader), to reduce the patch resolution of patches in the channels used in the shader, or to use a smaller canvas window or monitor.

  • ID 9758 / BZ 14201 - Linux only: Mari becomes unresponsive after the system is woken from sleep.

  • ID 9631 / BZ 13700 - Adjusting the Camera > Perspective settings for a Projector is not reflected on the canvas until the Projector is made Current.

  • ID 9363 / BZ 12102 - Current brush settings do not get saved as part of the project. Instead, Mari reverts to the default settings when you close and relaunch it.

  • ID 9342 / BZ 11874 - Mari doesn’t recognize 3-digit padded .obj sequences as animation

  • ID 8030 / BZ 13571 - Launching a new version of Mari for the first time, when a config file exists from a previous version, sometimes results in an object not appearing in the Ortho view.

    To solve this, close Mari, delete the following config file and relaunch Mari:

    • Linux: ~/.config/TheFoundry/Mari.conf

    • Windows: C:/Users//.mari/TheFoundry/Mari.ini