ArmorPaint’s interface is organized around a central viewport flanked by a vertical tool toolbar on the left and a tabbed sidebar panel on the right. A horizontal menubar sits at the top, an optional header bar just below it shows tool properties and workspace controls, and a collapsible status bar runs along the bottom. Every region can be resized by dragging its border, and the sidebar can be collapsed to a minimal strip or hidden entirely to maximize painting space.Documentation 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.
Workspaces
ArmorPaint provides five workspaces, selectable from Workspace in the menubar or from the header bar’s workspace switcher. Each workspace reconfigures the central area for a different task.| Workspace | Enum Value | Purpose |
|---|---|---|
| Paint 3D | WORKSPACE_PAINT_3D (0) | The primary workspace. The central area shows the 3D viewport where you paint directly onto the mesh in real time. All brush tools and PBR channel controls are active here. |
| Paint 2D | WORKSPACE_PAINT_2D (1) | Replaces the 3D viewport with a flat 2D view of the texture atlas. You can paint in UV space, view individual channels, UV maps, node outputs, fonts, or layer content via the 2D view type selector. |
| Nodes | WORKSPACE_NODES (2) | Opens the node editor as the main content area, used to build procedural material graphs (CANVAS_TYPE_MATERIAL) or brush graphs (CANVAS_TYPE_BRUSH). Node previews can be toggled per-socket. |
| Script | WORKSPACE_SCRIPT (3) | Provides a built-in text editor for writing and running C scripts or plugin code without leaving the application. |
| Player | WORKSPACE_PLAYER (4) | Launches a real-time player preview for exported or scripted scenes. Available when the experimental flag is enabled in Preferences. |
Interface Regions
Viewport (center)
The main 3D or 2D rendering area. In Paint 3D mode it displays the mesh under the active lighting and material using the selected Viewport Mode (Lit, Base Color, Normal, Occlusion, Roughness, Metallic, Opacity, Height, Emission, Subsurface, TexCoord, Object Normal, Material ID, Object ID, Mask, or Path Traced). Camera navigation, brush strokes, and gizmo transforms all take place here.
Toolbar (left)
A vertical strip of icon buttons along the left edge for selecting the active painting tool. The active tool is highlighted. Clicking the Properties icon at the top pins tool settings to the header bar; clicking it again collapses them into a floating popup accessible via the
> button or by clicking a tool icon a second time.Sidebar (right)
A context-sensitive panel area docked to the right edge, split into two resizable panes (SIDEBAR0 and SIDEBAR1). Each pane displays a row of tabs; clicking a tab switches the panel content. The sidebar can be collapsed to a minimal mini-strip or hidden entirely with the
> / < toggle button.Menubar (top)
A horizontal menu strip containing File, Edit, Viewport, Mode, Camera, Workspace, and Help categories. Each category opens a dropdown with grouped actions, toggles, sliders, and radio buttons. On touch devices the menubar is replaced with icon buttons for the most common actions.
Header Bar
Sits below the menubar and above the viewport. When visible (
LAYOUT_SIZE_HEADER = 1), it shows context-sensitive tool properties (radius, opacity, hardness, blending mode, symmetry axes, etc.) for the active tool alongside the workspace tab switcher and the 3D view toggle. It can be hidden to recover vertical space; tool properties then appear in the floating toolbar popup instead.Status Bar (bottom)
A narrow horizontal strip at the bottom of the window. It displays the current application version and provides access to additional status tabs. Its height is adjustable; collapsing it to the minimum hides the expanded content while keeping the version label visible.
Sidebar Panels
The sidebar tabs are distributed across the two sidebar panes. The following panels are available:| Tab | Contents |
|---|---|
| Layers | Full layer stack with visibility toggles, blending modes, opacity, channel masks (base, opacity, occlusion, roughness, metallic, normal, height, emission, subsurface), fill material assignment, and drag-and-drop reordering. Supports layers, masks, and groups. |
| Materials | List of project materials. Each material slot shows a live preview icon. New, duplicate, and delete operations are available, as well as a Nodes button that opens the node editor for that material. |
| Brushes | Library of brush presets. Each brush stores a full node canvas defining its shape and behavior. Brushes can be created, duplicated, deleted, and exported. |
| Textures | Imported texture assets used as inputs for nodes, layers, Color ID maps, decals, or environment maps. Textures can be promoted directly to a layer or mask. |
| Meshes | List of mesh objects in the scene with visibility controls, material override assignment, and transform (location, rotation, scale) editing. Meshes can be reordered by dragging. |
| Fonts | Imported font assets (TTF, TTC, OTF) available to the Text tool. |
| Swatches | A palette of saved swatch_color_t entries, each storing base color, opacity, occlusion, roughness, metallic, normal, emission, height, and subsurface values. Swatches can be imported and exported. |
| Timeline | Keyframe timeline for animating layer content and mesh transforms across frames, with configurable frame rate and maximum frame count. |
| Browser | File browser for navigating the filesystem and bookmarked folders. Asset files can be dragged directly into the project from here. |
| Plugins | List of installed plugins with enable/disable controls. Plugin files are loaded at startup from the configured plugin directories. |
| Scripts | Script assets stored in the project, editable and runnable from within ArmorPaint. |
| Console | Displays runtime log messages, warnings, and errors. Toast notifications from console_toast also appear here. |
| Debug | Diagnostic information for developers, including render target inspection and internal state readouts. |
Camera Controls
The camera control mode is selected under Camera → Mode in the menubar and persists across sessions. Three modes are available:| Mode | Enum Value | Behavior |
|---|---|---|
| Orbit | CAMERA_CONTROLS_ORBIT (0) | The camera orbits around a fixed pivot point. Move the right mouse button (or the configured action_rotate shortcut) to rotate. Scroll or use action_zoom to zoom. Middle mouse or action_pan to pan. The pivot can be set to Cursor or Center under Camera → Pivot. |
| Rotate | CAMERA_CONTROLS_ROTATE (1) | Similar to Orbit but the camera rotates in place rather than orbiting a separate pivot. The same mouse/keyboard bindings apply. |
| Fly | CAMERA_CONTROLS_FLY (2) | Hold the right mouse button and use W / Up / scroll up to move forward, S / Down / scroll down to move backward, A / Left to strafe left, D / Right to strafe right, E to move up, Q to move down. Move the mouse to look. Hold Shift to move faster or Alt to move slower. |
ArmorPaint supports a Split View mode toggled from Viewport → Split View. When enabled, the viewport is divided into two panels so you can compare two different viewport display modes (for example, Lit vs. Roughness) side by side while painting.