Krita is a cross-platform digital painting application built for professional artists who need robust, feature-rich tools to create artwork from scratch. It serves comic book illustrators, concept artists, matte painters, and VFX professionals seeking a powerful alternative to proprietary software. Built on the KDE and Qt frameworks, Krita provides a native experience across Linux, Windows, and macOS with deep integration into open source ecosystems.
The application is developed in C++ with a modular architecture, supporting plugins and extensions. It is hosted on KDE’s GitLab instance (Invent) with continuous integration pipelines, nightly builds, and debug/ASAN builds for developers. Deployment options include AppImage, native installers, and source compilation, with full transparency in licensing under GNU GPL v3.
What You Get
- Brush Engine with 120+ Brushes - Customizable brushes with pressure sensitivity, texture, and dynamics for realistic painting, including oil, watercolor, and airbrush simulations.
- Layer System with Blend Modes - Advanced layer management with 60+ blend modes, layer groups, and non-destructive editing for complex compositions.
- HDR Painting Support - Full high dynamic range painting with 16-bit and 32-bit per channel color depth for professional-grade color grading.
- Vector Layers and Shape Tools - Create and edit vector shapes and paths with precision tools, compatible with SVG standards.
- Animation Timeline and Frame-by-Frame Support - Built-in 2D frame-by-frame animation tools with onion skinning and export to GIF, MP4, and PNG sequences.
- Asset Management with Docker Panels - Customizable workspace with dockable panels for brushes, colors, gradients, and textures, optimized for artist workflows.
Common Use Cases
- Creating concept art for film studios - Artists use Krita’s HDR painting and brush engine to produce high-resolution concept art with realistic lighting and textures.
- Illustrating comic books - Comic artists leverage Krita’s layer system and vector tools to draft panels, ink lines, and color pages without switching applications.
- Designing textures for 3D models - VFX artists paint detailed albedo, normal, and roughness maps directly in Krita using its high-bit-depth support and tile-based canvas.
- Producing frame-by-frame animations - Indie animators use Krita’s timeline and onion skinning to create short films and game assets without expensive software.
Under The Hood
Architecture
- Modular design centered on KoColor and KisPaintDevice, enabling flexible color space implementations through pluggable KoColorSpace components
- Plugin-based extension system via libs/libkis and metadata configurations, allowing external modules to extend functionality without core modifications
- Clear separation between rendering, compositing, and UI layers using Qt framework, with dependency injection achieved through factory patterns and plugin registries
- Integration with KDE Frameworks and third-party libraries like OpenColorIO and OpenImageIO via CMake, supporting component substitution and cross-platform consistency
Tech Stack
- C++ codebase built on Qt5 and KDE Frameworks (KF5), leveraging KCoreAddons, KGuiAddons, and KI18n for UI, internationalization, and core utilities
- CMake-driven build system managing complex dependencies including OpenEXR, LCMS2, Eigen, and Exiv2 with optimized compilation via CCache
- CI/CD pipeline with cross-platform builds for Linux, Windows, macOS, and Android, supported by static analysis tools and comprehensive test reporting
- Python scripting and QML extensions enabled through sipbuild and custom compilation scripts, allowing artist-driven customization without recompilation
Code Quality
- Extensive test suite using Qt’s QTest framework with precise validation for color management, geometric operations, and file I/O
- Strong separation of concerns between core image processing, UI components, and plugin systems, following Qt’s object-oriented patterns
- Deterministic error handling through assertions and direct value comparisons, prioritizing stability in mathematical and graphical computations
- Consistent naming conventions and explicit type usage (QPointF, qreal) ensuring type safety and readability across the codebase
- Automated linting and test compilation integrated via CMake, maintaining code hygiene and library linkage integrity
What Makes It Unique
- Deep, native integration of professional color management systems including CIE LAB and ICC profiles, unmatched in open-source creative tools
- Embedded mathematical expression parser enabling real-time formula-based input for brushes and transforms without external dependencies
- Custom QML component system with theme-aware overlays and dynamic state transitions, delivering a unified, accessible user experience
- Advanced tile-based brush engine optimized for pressure-sensitive tablets with adaptive dynamics that respond to hardware capabilities
- Native bidirectional text support via FriBidi, enabling multilingual annotation workflows rarely found in digital painting applications