ArmorPaint: A developer-focused 3D PBR texture painting tool
ArmorPaint is a developer-oriented 3D PBR texture painter with public source and multi-platform builds, while binaries are paid.
GitHub armory3d/armorpaint Updated 2026-09-11 Branch main Stars 4.4K Forks 521
C Metal 3D PBR texturing Windows/Linux/macOS WASM

🧭 Decision Guide

Try it if you

  • You need to study or compile ArmorPaint's 3D PBR texture-painting source rather than only install a ready-made application.
    README Note 1 says the repository is aimed at developers and that all development happens here; the README describes ArmorPaint as 3D PBR texture-painting software.
  • Your target is one of Windows, Linux, macOS, Android, iOS, or WASM.
    The README provides build commands for Windows (x64), Linux (x64), macOS (arm64), Android (arm64), iOS (arm64), and WASM.
  • You need to modify locale resources or build embedded data files.
    The README provides the extract_locales.js command in Generating a locale file and the --embed command in Embedding data files.

Skip it if you

  • You only accept a stable release and not the git version that the README explicitly warns may be unstable.
    README Note 1 states: This repository is aimed at developers and may not be stable.
  • You need a free ready-made binary rather than source compilation or a paid download.
    README Note 1 states that distributed binaries are paid and links to armorpaint.org/download.
  • Your environment lacks the compiler and git required by the README, so source compilation is not possible.
    README Note 2 requires a compiler and git, listing Visual Studio with clang tools, clang + dependencies, Xcode, or Android Studio by platform.

Requirements

  • git is required; README Note 2 says “you need to have a compiler ... and git installed”.
  • Windows requires Visual Studio with clang tools; Linux requires clang + dependencies; macOS/iOS requires Xcode; Android requires Android Studio.
  • Embedding data files requires clang 19 or newer with C23 #embed support.
  • The README lists Windows x64, Linux x64, macOS arm64, Android arm64, and iOS arm64 targets.

First step (verbatim from README)

git clone https://github.com/armory3d/armorpaint

Watch out

  • After a Windows build, open build\\ArmorPaint.sln rather than running directly from the source directory.
    The Windows (x64) section asks you to run ..\\base\\make and open the generated Visual Studio project at build\\ArmorPaint.sln.
  • After a macOS build, open build/ArmorPaint.xcodeproj and use Build and run.
    The macOS (arm64) section explicitly gives the generated Xcode project path.
  • The Android and iOS commands describe device-build flows and both require Build for device.
    The Android (arm64) and iOS (arm64) sections both state Build for device.
  • Using --embed with clang older than 19 or without C23 #embed support does not meet the README requirement.
    The Embedding data files section requires a compiler with c23 #embed support (clang 19 or newer).

Not stated in the README

  • The README does not specify minimum runtime GPU, VRAM, or graphics API requirements.
  • The README does not specify minimum operating-system versions for Windows, Linux, macOS, Android, or iOS.
  • The project metadata lists the license as Other, but the material does not provide the license name or commercial-use terms.
  • The README does not explain feature differences or upgrade compatibility between version 1.0 and the git version.
  • The README does not provide build times, artifact sizes, or test coverage by platform.

💡 Deep Analysis

6
No I only want a stable downloadable 3D PBR texturing tool on Windows, Linux, or macOS and do not want to install Visual Studio, clang, Xcode, or Git. Is this GitHub repository suitable for me?
For: A 3D artist who only wants a stable downloadable version on Windows, Linux, or macOS and does not plan to install compilers or platform SDKs

No, not as a no-build stable-download entry point, because the README explicitly positions the repository for developers and requires you to prepare a platform toolchain.

  • The README says the repository is “aimed at developers and may not be stable,” which directly conflicts with treating the Git version as a stable finished application.
  • Building the Git version requires a compiler and Git: Visual Studio with clang tools on Windows, clang plus dependencies on Linux, and Xcode on macOS.
  • The README directs distributed binaries to armorpaint.org/download and states that distributed binaries are paid, so the repository and the packaged release are separate paths.
  • If your goal is usage rather than modifying C, Metal, HLSL, or build scripts, the official distribution route is more relevant than starting from the source repository.
  • README: "this repository is aimed at developers and may not be stable"
  • README: "If you are compiling git version ... compiler ... and git installed"
  • README: toolchain requirements for Windows, Linux, and macOS
  • README: "Distributed binaries are paid" and armorpaint.org/download
Not stated in the README:The README does not specify which OS versions, hardware configurations, or installation methods are supported by the official release.;It does not describe functional, stability, or project-file compatibility differences between the release and Git versions.
Yes I am creating 3D PBR textures for an indie game on Windows x64, and our team already uses Visual Studio with clang tools. Is ArmorPaint suitable as our primary texture-painting tool?
For: An indie-game asset creator who needs 3D PBR textures and works on Windows x64 with Visual Studio clang tools

Yes, it is suitable because the project is specifically designed for 3D PBR texture painting and documents a direct Windows x64 build path.

  • The repository targets painting materials on 3D models rather than generic 2D editing, which matches your asset-production requirement.
  • Windows requires Visual Studio with clang tools, matching your existing toolchain. The build generates build\\ArmorPaint.sln, so you can continue using Visual Studio to build and run it.
  • However, the README states that the repository is developer-oriented and may not be stable. The Git version should not be treated as equivalent to a fully stabilized release, and distributed binaries are paid.
  • Its documented scope is texture painting, so it should not be assumed to replace modeling, rigging, animation, or a complete asset-management suite.
  • README: "ArmorPaint is a software for 3D PBR texture painting"
  • README: "Windows (x64)" and "Visual Studio with clang tools"
  • README: "Open generated Visual Studio project at `build\\ArmorPaint.sln`"
  • README: "this repository is aimed at developers and may not be stable"
git clone https://github.com/armory3d/armorpaint
Not stated in the README:The README does not specify supported game engines, export formats, or PBR channel naming.;It does not provide Windows performance requirements, VRAM requirements, or limits for large textures.
Yes I want to customize ArmorPaint from source, add a team locale file, and embed data directly into the final build. Does the project provide an executable path for this?
For: A graphics-tool maintainer who needs to customize ArmorPaint, generate team locale files, and embed assets into the build

Yes, because the README directly documents both locale generation and data embedding; however, the embedding path requires a recent compiler, and the license and binary-distribution terms need separate review.

  • Locale files can be generated with extract_locales.js and written to paint/assets/locale/<locale code>.json, providing a concrete entry point for a team-specific language.
  • Data embedding uses ../base/make --embed, and the README explicitly requires clang 19 or newer with C23 #embed support.
  • The WASM example combines --compile --embed, showing that embedding is also used for a specific delivery target.
  • The project data lists the license as Other, while the README says distributed binaries are paid. If your modified build will be redistributed, source accessibility alone is not enough to determine the legal terms.
  • README: "Generating a locale file"
  • README: "./base/make --js base/tools/extract_locales.js <locale code>"
  • README: "Requires compiler with c23 #embed support (clang 19 or newer)"
  • Project data: license is "Other"; README: "Distributed binaries are paid"
./base/make --js base/tools/extract_locales.js <locale code>
Not stated in the README:The README does not say whether generated locale files require additional registration, build configuration, or runtime loading settings.;It does not specify the exact restrictions of the Other license for modification, internal deployment, redistribution, or commercial integration.
Yes I maintain a Linux x64 build environment with clang, the documented dependencies, and Git, and I want to customize the texturing workflow in C. Is this repository suitable as a development base?
For: A C developer maintaining a Linux x64 graphics-tool build environment and wanting to customize the texturing workflow from source

Yes, provided that you accept the possible instability of the Git version and are prepared to maintain Linux dependencies yourself. The repository is better suited to building and modifying a graphics application than to downloading a ready-made product.

  • C is the main language, with approximately 12,273,678 lines in the project data. The repository also contains build scripts, tool scripts, and graphics-backend-related code, making it appropriate for source-level study and customization.
  • The README explicitly requires clang plus dependencies on Linux and provides ../base/make --run as the minimal build-and-run path.
  • The unified base/make workflow can reduce the need to maintain a separate Linux project, but the README does not promise API stability or compatibility between Git commits.
  • If you need a stable production distribution, this repository is not the safest default because the README explicitly says it is aimed at developers.
  • Project data: C is the main language with 12,273,678 lines
  • README: "Linux, clang + dependencies"
  • README: "../base/make --run"
  • README: "All of the development is happening here" and the warning that the repository may be unstable
../base/make --run
Not stated in the README:The README does not specify a complete Linux dependency version matrix, GPU-driver requirements, or distribution coverage.;It does not state whether a stable plugin interface or automated test suite exists for C-level changes.
Yes I already maintain Apple-platform code with Xcode and need both macOS arm64 and iOS arm64 builds while reusing one 3D PBR painting codebase. Does this project's build approach fit?
For: A graphics programmer already using Xcode who needs to reuse 3D PBR painting code across macOS arm64 and iOS arm64

Yes, it fits a shared Apple-platform development workflow, but whether it meets your production iOS requirements depends on input, performance, and release details that the README does not document.

  • The README provides build commands for both macOS arm64 and iOS arm64, and both generate Xcode projects, matching your existing Xcode workflow.
  • Objective-C and Metal appear in the project’s language distribution, so Apple integration and graphics-backend support are part of the actual project composition rather than external assumptions.
  • macOS and iOS use different --target settings through the same build entry point, which supports maintaining one repository, but does not prove identical behavior on both platforms.
  • The README only says to “Build for device”; it does not explain signing, App Store distribution, touch interaction, iOS resource limits, or Metal feature coverage.
  • README: "macOS (arm64)" and "Open generated Xcode project"
  • README: "iOS (arm64)" and "../base/make --target ios"
  • Project data: Objective-C 378,579 and Metal 228,756
  • README: "Build for device"
../base/make --target ios
Not stated in the README:The README does not specify the minimum iOS version, device models, signing configuration, or App Store release process.;It does not describe differences in touch input, file access, or graphics features between macOS and iOS.
It depends I need macOS arm64, Android arm64, and WASM builds and want to maintain a cross-platform texturing tool from one repository. Can ArmorPaint meet this delivery constraint?
For: A cross-platform graphics engineer who needs the same 3D PBR texturing tool on macOS arm64, Android arm64, and WASM

It depends: the README covers all three targets and provides a unified build entry point, but the existence of build commands does not prove equivalent functionality, performance, or input behavior across them.

  • The README provides separate base/make commands for macOS arm64, Android arm64, and WASM, showing that these targets are part of the intended build workflow.
  • macOS requires Xcode, Android requires Android Studio, and WASM requires --compile --embed, so delivery depends on multiple platform toolchains and different artifact flows.
  • The project data lists Metal, HLSL, Objective-C, and JavaScript, indicating platform and graphics-backend adaptation, but not identical feature coverage on every target.
  • The README gives no quantitative conclusions about mobile performance, browser runtime behavior, GPU capability, memory use, or touch input limitations.
  • README sections for "macOS (arm64)", "Android (arm64)", and "WASM" builds
  • README: "../base/make --target android"
  • README: "../base/make --target wasm --compile --embed"
  • Project data: Objective-C, Metal, JavaScript, and HLSL all appear in the language distribution
../base/make --target wasm --compile --embed
Not stated in the README:The README does not describe feature differences or minimum hardware requirements across macOS, Android, and WASM.;It does not specify browser compatibility, touch-input support, memory limits, or mobile texture-resolution limits.

✨ Highlights

  • Build targets include Windows, Linux, macOS, Android, and iOS
  • Provides a WASM target with the --compile --embed command
  • The C codebase accounts for 12,273,678 bytes
  • The README explicitly targets developers and documents source builds

🔧 Engineering

  • Used for 3D PBR texture painting, with the ArmorPaint manual linked in the README
  • base/make generates Visual Studio, Xcode, and Android Studio projects
  • extract_locales.js can generate files under paint/assets/locale

⚠️ Risks

  • The README warns that the git version targets developers and may be unstable
  • Distributed binaries are paid downloads and should not be assumed to be free
  • Compilation requires Visual Studio, clang, Xcode, or Android Studio
  • embed requires clang 19 or newer with C23 #embed support

👥 For who?

  • Developers who need to compile ArmorPaint on Windows, Linux, or macOS
  • Developers targeting Android arm64 or iOS arm64 builds
  • Project maintainers who need WASM builds or locale-file generation