The Preferences dialog gives you centralized control over every aspect of ArmorPaint’s behavior — from window layout and rendering quality to camera navigation, brush physics, pen pressure, and AI neural processing. Open it at any time with Ctrl+K (theDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/armory3d/armorpaint/llms.txt
Use this file to discover all available pages before exploring further.
edit_prefs keymap action). The dialog is organized into tabs: Interface, Theme, Usage, Camera, Pen/Pencil, Viewport, Keymap, Neural, and Plugins.
All preferences are persisted automatically to
config.json in your application data directory. Changes take effect immediately; no manual save step is needed.Preferences Sections
Window (Interface tab)
Window (Interface tab)
These settings control the operating-system window presented at startup.
* The default scale is raised automatically to
* Defaults to
| Setting | Type | Default | Description |
|---|---|---|---|
window_mode | integer | 0 (Windowed) | 0 = windowed, 1 = fullscreen |
window_w | integer | 1720 | Initial window width in pixels |
window_h | integer | 960 | Initial window height in pixels |
window_resizable | bool | true | Allow the window to be resized by dragging its edges |
window_maximizable | bool | true | Show the maximize button in the window title bar |
window_minimizable | bool | true | Show the minimize button in the window title bar |
window_vsync | bool | true | Lock the render loop to the display refresh rate |
window_frequency | integer | system Hz | Target refresh rate (Hz) when vsync is enabled |
window_scale | float | 1.0–3.0* | Global UI scale multiplier. Slider range: 1.0–4.0 |
2.0 on macOS, iOS, and Android, and further to 2.5–3.0 on high-DPI mobile displays. On desktop monitors with a resolution ≥ 2560×1600 the default is also 2.0.Additional Interface options available in this tab:| Setting | Type | Default | Description |
|---|---|---|---|
node_previews | bool | false | Show a live preview thumbnail on each material node |
wrap_mouse | bool | false | Wrap the pointer around viewport edges during camera navigation |
show_asset_names | bool | false | Display file names below asset thumbnails in the browser |
touch_ui | bool | false* | Enlarge UI elements for touch/tablet interaction |
splash_screen | bool | false* | Show the splash screen on launch |
grid_snap | bool | false | Snap nodes to the grid in the node editor |
experimental | bool | false | Enable in-development features that may be unstable |
true on Android and iOS.Rendering (Viewport tab)
Rendering (Viewport tab)
Controls the real-time rendering pipeline quality in the 3D viewport.
* Disabled by default on Android and iOS to conserve GPU memory.The Renderer combo (
| Setting | Type | Default | Description |
|---|---|---|---|
rp_supersample | float | 1.0 | Super-sampling multiplier. Options: 0.25×, 0.5×, 1.0×, 1.5×, 2.0×, 4.0× |
rp_ssao | bool | true* | Screen-Space Ambient Occlusion (deferred renderer only) |
rp_bloom | bool | false | Post-process bloom glow (deferred renderer only) |
rp_vignette | float | 0.2 | Vignette darkening at viewport edges (0.0–1.0) |
rp_grain | float | 0.09 | Film grain / noise overlay intensity (0.0–1.0) |
lut_path | string | "" | Absolute path to a .cube LUT file for color grading |
texture_filter | bool | true | Apply bilinear filtering to textures in the viewport |
displace_strength | float | 0.0 | Mesh displacement magnitude driven by the height channel (0.0–10.0) |
render_mode) lets you switch between Desktop (deferred, full feature set) and Mobile (forward renderer). A Path Tracer quality mode is also available: Fast or Quality.Camera (Camera tab)
Camera (Camera tab)
Tune how the 3D viewport camera responds to mouse and keyboard input.
| Setting | Type | Default | Description |
|---|---|---|---|
camera_fov | float | 0.69 | Default camera field-of-view in radians (range 0.3–1.4) |
camera_pan_speed | float | 1.0 | Pan speed multiplier (0.1–4.0) |
camera_zoom_speed | float | 1.0 | Zoom speed multiplier (0.1–4.0) |
camera_rotation_speed | float | 1.0 | Orbit/rotation speed multiplier (0.1–4.0) |
camera_upside_down | bool | false | Allow the camera to flip upside-down past the poles |
zoom_direction | enum | Vertical | Mouse-axis used for zooming: Vertical, Vertical Inverted, Horizontal, Horizontal Inverted, Vertical and Horizontal, Vertical and Horizontal Inverted |
wrap_mouse | bool | false | Wrap the pointer around viewport edges during camera moves |
camera_pivot | enum | Center | Rotation pivot: Cursor (orbit around the surface point under the cursor) or Center (orbit around the world origin) |
camera_controls | enum | Orbit | Navigation mode: Orbit, Rotate, or Fly |
Painting (Usage tab)
Painting (Usage tab)
Global defaults that govern paint-stroke behavior and layer management.
*
| Setting | Type | Default | Description |
|---|---|---|---|
brush_live | bool | false | Draw a live brush preview ring in the viewport while hovering |
brush_depth_reject | bool | true | Skip painting on surfaces facing away from the camera (depth test) |
brush_angle_reject | bool | true | Skip painting on surfaces whose normal exceeds the angle threshold |
brush_alpha_discard | float | 0.1 | Alpha threshold below which brush mask pixels are discarded (0.0–1.0) |
dilate_radius | integer | 2 | Pixels to dilate painted textures outward to prevent UV seams (0–16) |
displace_strength | float | 0.0 | Displacement strength applied to the mesh at render time |
layer_res | enum | 2048 | Default resolution for new layers: 2048, 4096, 8192, or 16384 |
scene_atlas_res | enum | 8192 | Resolution of the scene texture atlas: 2048, 4096, 8192, or 16384 |
grid_snap | bool | false | Snap nodes to grid in the node editor |
material_live | bool | true* | Instantly rebuild the material preview whenever a node changes |
undo_steps | integer | 6* | Number of undo history slots (1–64) |
material_live defaults to false on macOS, iOS, and Android. undo_steps defaults to 4 on Android and iOS.Pen / Tablet (Pen tab)
Pen / Tablet (Pen tab)
Configure how stylus pressure maps to brush attributes. These settings are shown as Pen on desktop and Pencil on iOS.
| Setting | Type | Default | Description |
|---|---|---|---|
pressure_radius | bool | true | Modulate brush radius with pen pressure |
pressure_hardness | bool | true | Modulate brush hardness with pen pressure |
pressure_opacity | bool | false | Modulate brush opacity with pen pressure |
pressure_angle | bool | false | Modulate brush angle with pen pressure |
pressure_sensitivity | float | 2.0 | Global pressure curve exponent (0.0–10.0). Higher values make light strokes feel lighter |
touch_ui | bool | false | Enable enlarged touch-friendly UI elements (also in Interface tab) |
Application (Usage tab — continued)
Application (Usage tab — continued)
General application behavior options found in the Usage tab alongside the painting settings.
| Setting | Type | Default | Description |
|---|---|---|---|
undo_steps | integer | 6 | Depth of the undo/redo history stack (1–64) |
show_asset_names | bool | false | Display filenames under asset thumbnails |
splash_screen | bool | false | Show the startup splash screen |
node_previews | bool | false | Enable per-node preview thumbnails in the material editor |
material_live | bool | true | Live-update the material preview on every node change |
experimental | bool | false | Unlock experimental and in-development features |
AI / Neural (Neural tab)
AI / Neural (Neural tab)
Settings for the on-device AI inference features. Available on desktop platforms (Windows, Linux, macOS) only.
All neural processing runs locally on your device by default. Individual AI models can be downloaded or removed from the Neural tab model list. A Models Directory button opens the folder where downloaded model files are stored.
| Setting | Type | Default | Description |
|---|---|---|---|
neural_res | integer | 512 | Resolution used for neural inference passes: 512, 1024, or 2048 |
server | string | https://cloud.armory3d.com | Remote inference server URL used as a fallback when a local model is unavailable |
Integrations
Integrations
| Setting | Type | Default | Description |
|---|---|---|---|
blender | string | "" | Absolute path to the Blender executable, used for pipeline integrations |
Locale & Appearance (Interface tab)
Locale & Appearance (Interface tab)
| Setting | Type | Default | Description |
|---|---|---|---|
locale | string | "en" | UI language code ("en", "de", "ja", etc.) or "system" to auto-detect the OS language |
theme | string | "default.json" | Active theme file name, relative to the themes/ data folder |
keymap | string | "default.json" | Active keymap preset file name, relative to the keymap_presets/ folder |
Config File Location
ArmorPaint writes all preferences to aconfig.json file. The exact location depends on your platform:
Standard install
config.json lives alongside the application data in the ArmorPaint data directory (next to the executable on most platforms).Protected path (e.g. Program Files)
When the application is installed in a system-protected directory,
config.json is written to the OS user application-data folder (iron_internal_save_path()).The config file is validated on load by checking the
version field. If the SHA does not match the current build, the config is reset to defaults automatically.Restoring Defaults
Inside the Interface tab, click Restore to reset all preferences to their defaults. A confirmation menu prevents accidental resets. You can also click Import… in the same menu to restore preferences from a previously exportedconfig.json backup.
The Reset Layout button resets only the panel and sidebar sizes to their initial proportions without touching any other preferences.