Studio and Graph
Settings
Everything under Edit then Settings: interface, shortcuts, theme, AI, scripting and installed node presets.
Open Settings from Edit > Settings... or the toolbar's Settings button - both share the tooltip "Open the settings panel". The Agentic panel's own gear icon opens the same window, preselected to the AI category.
The Mesh Morpher Settings window is modeless, so you can keep it open and switch back to the graph or viewport without closing it first. There is no OK, Apply or Cancel button anywhere in it - every row writes its value and saves to disk the moment you change it.
A Categories column on the left switches between six pages:
- General - interface scale, undo limits, landmarks, update checks, camera defaults, masking, the per-pane viewport rows, and the HDRI environment.
- Shortcuts - the camera scheme, every rebindable command, held modifiers, and the brush palette.
- Theme - every colour in the app, grouped by what they paint.
- AI - the Agentic assistant's backend, conversation limits, and API keys.
- Scripting - Wrangle's step budget and its Python stage.
- Installed Nodes - node presets (
.mmnode files) installed on this machine.
For where all of this actually lives on disk, see Where Settings Are Stored.
Studio and Graph › Settings
General
Interface scale, undo limits, landmarks, updates, camera, masking, the two viewport panes and the environment image.
Interface
Undo / History
Landmarks
Turning Show landmarks through the mesh off hides landmarks on the far side of the model entirely - it is a plain on/off switch, with deliberately no fade for points that are only partly occluded.
Updates
Mesh Morpher also checks once right after startup regardless of this interval.
Camera (both viewports)
These are the same values the viewport's own Camera Speed panel edits (see Camera and Display), but the spin boxes here use narrower ranges - for example Camera speed only goes down to 50 and up to 5000 here, against 1 to 100000 in the viewport panel.
Masking
This is the one "counts as painted" threshold shared by the mask overlay, the sculpt and deform tools, and the graph's own mask-reading nodes - changing it here changes all of them at once.
Source viewport / Target viewport
The Settings window has two copies of this section, one per pane, each with the same six rows and the same defaults and ranges - only which pane they write to differs.
These match the per-pane rows on the Camera and Display and Projection, Grid and Floor pages - this is just a second way to reach the same values.
Viewport environment (both viewports)
Unlike the section above, environment settings are shared between both panes - there is only one HDRI.
In short: Browse... and Reset always work, but Ground projection only turns on once you have loaded a custom HDRI, and Room radius and Capture height only turn on once Ground projection itself is also on.
Studio and Graph › Settings
Shortcuts
Pick a camera scheme, rebind any command, choose the held modifiers and fill the ten brush palette slots.
Camera scheme
A combo box at the top picks which of the three navigation presets the viewport uses; a paragraph underneath always shows that preset's own gesture list verbatim.
- Mesh Morpher (default) - "Alt+LMB orbit, Alt+RMB zoom, MMB or LMB+RMB pan, wheel zoom. Hold RMB to look around and fly with WASDQE; a plain LMB drag walks the camera."
- Maya - "Alt+LMB tumble, Alt+MMB pan, Alt+RMB zoom, wheel zoom. Plain LMB is left to the active tool. Hold RMB to look around and fly with WASDQE."
- Blender - "MMB orbit, Shift+MMB pan, Ctrl+MMB zoom, wheel zoom. LMB (including Alt+LMB) always goes to the active tool. Hold RMB to look around and fly with WASDQE."
See Navigating for what these gestures actually do in the viewport.
Rebinding
Every command below is one row: its display name, a button that captures your next key press as its new chord, and a Reset button that is disabled once the command is already at its shipped default.
Rebinding onto a chord that is already in use somewhere else pops this prompt instead of overwriting silently:
"{0}" is already assigned to "{1}".
Reassign it to "{2}"?
The existing binding will be cleared.
{0} is the chord you just pressed, {1} is the command that currently owns it, and {2} is the command you were trying to rebind. Confirming clears the old assignment so the chord only ever fires one command at a time.
A Reset All to Defaults button at the bottom of the page puts every shortcut back to its shipped default in one click.
Default bindings by category
General
Graph Editor
Viewport
Sculpt Brush
Viewport View Mode
All four are unbound out of the box - assign a chord here if you want a key for them. See View Modes for the full mode list.
Viewport Camera
Landmarks
Sewing
Hidden from this page entirely unless the simulation nodes are visible to you.
Camera (hold RMB)
These six only fire while the right mouse button is held - see WASDQE fly.
Held Modifiers
Six rows, each a combo choosing Shift, Ctrl or Alt:
Brush Palette
Ten combos, one per numbered slot (keys 1 through 9, then 0 for slot 10, plus the radial menu on Space), each labelled Slot {n} with its key shown alongside. Each combo picks which brush that slot fires: None, Sculpt, Smooth, Grab, Move, Inflate, Pinch, Flatten, Clay, Scrape, Fill, Plane, Restore, Project, Displace, Blend, Scale or Twist.
Dragging a tool from the tool tower onto a wedge of the radial brush menu reassigns that slot the same way.
Studio and Graph › Settings
Theme
Every colour the application uses, and which changes apply live rather than on the next launch.
An intro line on the page itself sets the rule for everything below it:
"Viewport, graph, and document-tab colours apply live; the rest of the app chrome (surfaces / text / overlays) applies on the next launch."
In other words: recolour the viewport, the graph canvas or a document tab and you see it immediately. Recolour general app chrome - panel surfaces, text, buttons, most overlays - and it takes a restart to show everywhere. Where the app states a row's own timing explicitly, this page says so under that row; otherwise, go by the rule above.
A Reset to defaults button restores the built-in theme in one click. Its tooltip:
"Restore the built-in 'Graphite + Azure' theme. Live colours update immediately; restart for the full app chrome."
It resets every colour on this page, plus the viewport colours documented on Camera and Display (Background Color, Wireframe Color).
Accent
Surfaces
All of these apply on next launch.
Interaction overlays
Controls (each independent)
All of these apply on next launch.
Text
Feedback (status colours)
Panel tabs
All of these take effect after restarting the app.
3D viewport
Applies live, except the two pane-badge rows below, which apply on next launch.
Graph editor
Details panel
Timeline (frame range)
Landmarks
Code editor (syntax highlighting)
All of these apply live.
One more syntax colour, for string literals, exists in the underlying settings but has no row on this page, so it is not user-editable from Theme.
Studio and Graph › Settings
AI
The assistant backend, its conversation limits, the API keys stored encrypted on this machine, and the local MCP server.
This page configures the Agentic panel's assistant. Most of it is a details panel, so the rows below are grouped by the same categories the app itself uses.
Backend
The model and effort fields for each backend are not exposed on this page - use the model combo in the Agentic panel's own header instead.
Conversation
Chat
Integration
API keys and the MCP token
Below the details panel, hand-built rows hold the actual secrets:
All three provider keys are encrypted with Windows' own per-user encryption (DPAPI) before they touch disk, and are stored only on this machine - never as plain text.
Studio and Graph › Settings
Scripting
The limits that stop an expression or a Python stage from freezing the application, and which interpreter runs it.
"Wrangle expressions are bounded by the step budget (or, with unlimited step budget on, the run-time timer) so a loop cannot freeze the app. Python packages install from a '#@requires' line in the script, not from this page."
That is the page's own summary, and it is the reason every setting below exists: Wrangle runs arbitrary expressions and, optionally, arbitrary Python, so this page is entirely about how it gets stopped if that code misbehaves.
Runtime
"With no step limit and no time limit, an expression containing a loop that never ends will run for ever and the app will have to be closed from Task Manager. Set 'Unlimited run time limit (seconds)' to a non-zero value to keep a way out."
Python stage
It ships on. A fresh install with no scripting settings file behind it has the Python stage enabled, because nothing in Mesh Morpher ever runs a script by itself: opening a graph, pasting a node and importing a preset all deserialize without executing anything. The gate that matters is the explicit Run press on the Wrangle node, not this switch. Turn it off if you want the stage refused outright on this machine.
Interpreter
A status line below the path box reads one of three ways, depending on what is set above:
Interpreter: <path> (isolated) - a custom interpreter path is set.
Interpreter: built-in 3.11 (isolated) - no custom path, but Isolate built-in interpreter is on.
Interpreter: built-in 3.11 (in-process) - no custom path, and not isolated.
"With no timeout, an in-process Python script that hangs (an infinite loop, a network call that never returns) will freeze the app until it is closed from Task Manager. Turn on 'Isolate built-in interpreter' (or set a custom interpreter path) above and a hang can still be cancelled from the progress dialog instead, since that run is a separate, hard-killable process. Set 'Python timeout (seconds)' to a non-zero value for a guaranteed way out either way."
A Reset to defaults button at the bottom-right puts every setting on this page back to the value the app ships with.
Studio and Graph › Settings
Installed Nodes
Node presets installed on this machine from .mmnode files, and how to import or remove one.
"Presets you or someone else exported to a .mmnode file and installed on this machine. They show up under 'Installed Nodes' in the Add Node menu. Uninstalling never changes a graph you already placed one into. You can organize them into subfolders here or in the plugin's own folder, and a folder can carry Python scripts alongside its .mmnode - both are picked up automatically."
Controls
The table
Row actions
- Open Folder reveals the preset's folder on disk.
- Uninstall removes the preset from My Presets. Its tooltip: "Remove this preset from My Presets. Graphs you already placed it into are not affected." Presets that shipped with the app cannot be uninstalled at all - the button is disabled, with the tooltip "This preset shipped with the app and cannot be uninstalled."
Toasts you may see: "Uninstalled" on success, "Uninstall failed" on failure, and "Could not read the file" if a preset file itself is unreadable.
Studio and Graph › Settings
Where Settings Are Stored
Which file on disk holds which settings, and where saved captures go.
Every settings file lives in a MeshMorpher folder under your Windows user settings directory - %LOCALAPPDATA%\MeshMorpher\ in practice. Everything is plain JSON, not an .ini file.
Legacy fallback
If none of the files above exist yet, Mesh Morpher reads (but never writes) the same file names from a Config folder next to the executable instead - a fallback kept for installs from before this settings folder existed. Once you save any setting, the current location above is used from then on.
Captures
Saved viewport images and turntable sequences default to a folder under your Documents directory, with the base file name MeshMorpher_YYYYMMDD_HHMMSS. See Capture: Images and Turntables.