armorpaint
Graphics Creation Tools
Learn architectural considerations for adding new brush types material nodes and IO plugins to ArmorPaint Understand canvas separation node registration and serialization patterns
How ArmorPaint Viewport Rendering Handles MSAA, Post-Processing, and Real-Time Brush PreviewsArmorPaint viewport rendering uses GPU MSAA resolution, tone-mapping, FXAA post-processing, and immediate-mode draw calls for real-time brush previews and low-latency feedback.
How ArmorPaint Dynamically Loads Extensions Like io_gltf, io_fbx, and io_exr via plugins/plugins.cDiscover how ArmorPaint dynamically loads extensions like io_gltf, io_fbx, and io_exr using its plugin system in plugins.c. Learn about runtime dispatch for seamless file parsing.
Compiling ArmorPaint from Source with Clang on Windows vs Linux: Common Pitfalls and FixesFix common ArmorPaint build failures compiling from source with Clang on Windows vs Linux. Learn about MSVC runtime and Vulkan SDK issues.
How ArmorPaint Serializes Projects to the ARM File Format: Inside boxexport.c and ioexportarm.pyExplore how ArmorPaint serializes projects to the ARM file format. Discover the synergy between Python and C in the export pipeline for efficient project saving and loading.
How the Depth Pass (make_depth.c) Powers Selection Masking and Raycast Accuracy in ArmorPaintDiscover how ArmorPaint's depth pass (make_depth.c) creates accurate selections and raycasts by generating a per-pixel depth buffer for precise masking and world-space position reconstruction.
How ArmorPaint's Timeline Integrates with the Render Pipeline for PBR Texture AnimationDiscover how ArmorPaint's timeline tab integrates with the PBR render pipeline to capture and play back GPU animation keyframes. Experience seamless texture animation and scrubbing.
ArmorPaint Clone Brush Architecture: How 3D Sampling Replaces UV Space MappingExplore the ArmorPaint clone brush architecture. Discover how 3D sampling replaces UV space mapping using ray-casts into scene space for accurate texture reading.
ArmorPaint WASM Compilation: How `--target wasm --compile --embed` WorksLearn how ArmorPaint WASM compilation with --target wasm --compile --embed creates a browser-ready package. Discover its runtime constraints and asset embedding process.
How config.c and boxpreferences.c Manage Persistent User Configurations Across Platforms in ArmorPaintLearn how ArmorPaint uses config.c and boxpreferences.c with Kinc to manage persistent user configurations and UI layouts across different platforms via JSON files.
How ArmorPaint's extract_locales.js Generates Localized JSON Assets for strings.cLearn how ArmorPaint's extract_locales.js generates localized JSON assets by scanning C code for translation macros and preparing them for consumption by strings.c and translator.c.
Extensibility Patterns in ArmorPaint: How `trait.c` Enables Modular Plugin ArchitectureExplore ArmorPaint's extensibility patterns using trait c. Learn how function pointers enable modular plugin architecture for adding gameplay mechanics without core code changes.
Have a question about this repo?
These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →