How armory3d/armorpaint works
ArmorPaint is a 3D PBR texture-painting application. An artist works through the painting UI and viewport, edits project assets and materials, and relies on rendering to see the result before exporting textures or project data. The tree also shows importers, material and brush node systems, neural image features, and an embedded engine. The README establishes the product and painting workflow; source excerpts show application initialization and some module wiring, but many feature implementations were not sampled, so those relationships are marked unverified rather than asserted as calls.
Main entry points: make_paint.c Paint operations · project.c Project state · engine.c Engine services · ui_base.c Painting UI
Components 20
Application
- App startup
paint/sources/main.c - Painting UI
paint/sources/ui/ui_base.c - Viewport
paint/sources/viewport.c - Project state
paint/sources/project.c - Undo history
paint/sources/history.c
Painting
- Paint operations
paint/sources/render/make_paint.c - Render paths
paint/sources/render/render_path_paint.c - Material nodes
paint/sources/nodes_material.c - Brush nodes
paint/sources/nodes_brush.c - Neural image nodes
paint/sources/nodes_neural/neural_node.c
Assets and nodes
- Asset import
paint/sources/io/import_arm.c - Legacy import
paint/sources/io/import_legacy.c - Format plugins
paint/plugins/plugins.c - Texture export
paint/sources/io/export_texture.c - Project export
paint/sources/io/export_arm.c
Engine runtime
- Engine services
base/sources/engine.c - GPU abstraction
base/sources/iron_gpu.c - Math utilities
base/sources/iron_math.c - Dynamic arrays
base/sources/iron_array.c
Other components
- Artist
Connections 18
- Artist → Painting UI: uses
- Painting UI → Viewport: interacts
- App startup → Project state: initializes
- App startup → Render paths: initializes
paint/sources/main.c - Viewport → Paint operations: paints through
- Paint operations → Render paths: renders via
- Material nodes → Render paths: supplies materials
- Brush nodes → Paint operations: defines brushes
- Neural image nodes → Paint operations: provides image tools
- Painting UI → Undo history: records edits
- Project state → Asset import: loads assets
- Project state → Legacy import: loads legacy data
- Format plugins → Asset import: extends formats
- Project state → Project export: saves project
- Paint operations → Texture export: exports textures
- Engine services → GPU abstraction: uses GPU services
- Engine services → Math utilities: uses
- Engine services → Dynamic arrays: uses arrays