Files

462 lines
20 KiB
Markdown
Raw Permalink Normal View History

2026-07-09 02:59:53 +03:00
# Krita → HCIE 3: Taşınabilir Özellikler ve Rust'a Dönüşüm Analizi
**Tarih:** 2026-05-24
**Kaynak:** `/run/media/hc/data/Downloads/krita_source` (Krita 5.x)
**Hedef:** `/home/hc/Documents/00_PROJECTS/hcie-rust-v3` (HCIE Rust v3)
---
## İçindekiler
1. [Yürütme Özeti](#1-yürütme-özeti)
2. [Mevcut HCIE Mimarisi ile Kıyaslama](#2-mevcut-hcie-mimarisi-ile-kiyaslama)
3. [Önerilen Taşıma Kategorileri](#3-önerilen-taşıma-kategorileri)
4. [Kategori A: Düşük Maliyet — Yüksek Etki](#4-kategori-a-düşük-maliyet--yüksek-etki)
5. [Kategori B: Orta Maliyet — Yüksek Etki](#5-kategori-b-orta-maliyet--yüksek-etki)
6. [Kategori C: Yüksek Maliyet — Stratejik](#6-kategori-c-yüksek-maliyet--stratejik)
7. [Kategori D: Düşük Öncelik](#7-kategori-d-düşük-öncelik)
8. [Rust'a Dönüşüm Değerlendirmesi](#8-rusta-dönüşüm-değerlendirmesi)
9. [Öncelikli Yol Haritası](#9-öncelikli-yol-haritası)
---
## 1. Yürütme Özeti
Krita, 20+ yıllık bir C++ Qt/KDE projesidir. Yaklaşık 2M+ satır kod içerir. HCIE 3 ise 0.1 sürümünde, 23 atomik Rust crate'inden oluşan bir image editor'dur.
Bu rapor, Krita'nın hangi özellik/fonksiyonlarının HCIE 3'e taşınabileceğini ve her birinin Rust'a dönüşüm zorluğunu değerlendirir.
**Temel bulgular:**
- **Düşük maliyetli kazanımlar:** Brush preset yönetimi, seçim filtreleri (grow/shrink/feather), gradient doldurma, layer stilleri (drop shadow, stroke)
- **Orta maliyetli:** Gelişmiş brush motoru (scatter, texture, dual-brush), deform/warp/liquify araçları, tile engine'in swap/kompresyon mimarisi
- **Yüksek maliyetli (uzun vadeli):** Renk yönetimi (ICC profiller, CMS), MyPaint brush engine, animasyon sistemi, tam Photoshop PSD/ASL desteği
- **Taşınması zor:** Qt/OpenGL bağımlılığı olan UI bileşenleri, KDE Frameworks mimari katmanları
---
## 2. Mevcut HCIE Mimarisi ile Kıyaslama
| Bileşen | Krita (C++) | HCIE 3 (Rust) | Durum |
|---------|-------------|---------------|-------|
| **Pixel Storage** | Tile engine (64×64, COW, LZF swap) | KisTile (basit tile, swap yok) | Eksik |
| **Blend Modes** | 100+ (KoCompositeOpRegistry) | ~27 (hcie-blend) | Geliştirilebilir |
| **Brush Engine** | KisPaintOp (dab pipeline, sensors) | Temel brush stamp + spacing | Geliştirilebilir |
| **Color** | ICC CMS, 20+ colorspace | sRGB, HSL, Lab | Temel |
| **Selection** | Pixel + vector selection | Temel pixel selection | Geliştirilebilir |
| **Filters** | 30+ plugin filter | 7 temel filter | Geliştirilebilir |
| **Layer Styles** | Drop shadow, bevel, stroke, glow, overlay | Yok | Eklenebilir |
| **Vector** | Flake (KoShape, KoPathShape) | Temel vector shape | Geliştirilebilir |
| **Undo** | KUndo2 + KisTransaction + memento | KisHistory (basit) | Geliştirilebilir |
| **Animation** | Full animation (keyframe, onion skin) | Yok | Uzak vade |
| **File I/O** | PSD, KRA, EXR, TIFF, etc. | PNG, PSD (kısmi) | Geliştirilebilir |
| **GUI** | Qt5/QML | egui/eframe | Farklı toolkit |
| **Plugin** | Python + C++ plugin API | Yok | Uzak vade |
---
## 3. Önerilen Taşıma Kategorileri
Her özellik şu kriterlere göre değerlendirilmiştir:
- **Maliyet:** Rust'a dönüşüm zorluğu (1-10)
- **Etki:** HCIE kullanıcısına sağlayacağı değer (1-10)
- **C++→Rust uyumu:** Nesne modeli, bellek yönetimi, template kullanımı
---
## 4. Kategori A: Düşük Maliyet — Yüksek Etki (Hemen Yapılabilir)
### 4.1 Seçim Filtreleri (Grow, Shrink, Feather, Border, Smooth)
**Kaynak:** `libs/image/kis_selection_filters.{h,cpp}`
| Filtre | Krita Sınıfı | Algoritma |
|--------|-------------|-----------|
| Grow | `KisGrowSelectionFilter` | Morphological dilation, ayarlanabilir X/Y radius |
| Shrink | `KisShrinkSelectionFilter` | Morphological erosion |
| Feather | `KisFeatherSelectionFilter` | Gaussian benzeri blur (radius bazlı) |
| Border | `KisBorderSelectionFilter` | Kenar çevresinde border seçimi |
| Smooth | `KisSmoothSelectionFilter` | Jagged kenar yumuşatma |
| Anti-Alias | `KisAntiAliasSelectionFilter` | FXAA-inspired kenar yumuşatma |
**Mevcut HCIE:** `hcie-selection` crate'inde temel mask ops var (grow, shrink, feather). Krita'daki border ve smooth eklenebilir.
**Dönüşüm Değerlendirmesi:**
- **Karmaşıklık:** 3/10 — Basit morfolojik operasyonlar
- **C++→Rust uyumu:** Yüksek — Saf piksel döngüleri, `unsafe` gerektirmez
- **Tahmini süre:** 1-2 gün
```cpp
// Krita: KisGrowSelectionFilter (basitleştirilmiş)
void process(KisPaintDeviceSP device, KisPaintDeviceSP mask,
const QRect& rect, const KisFilterConfiguration* config) {
int xradius = config->getInt("xradius", 1);
int yradius = config->getInt("yradius", 1);
// ... morphological dilation ...
}
```
```rust
// Rust eşdeğeri
// hcie-selection crate'ine eklenebilir
fn grow_mask(mask: &[u8], width: u32, height: u32, xradius: u32, yradius: u32) -> Vec<u8> {
// morphological dilation
}
```
### 4.2 Gradient Doldurma (Linear, Radial, Conical, Spiral)
**Kaynak:** `libs/image/kis_gradient_painter.{cc,h}`
**Ayrıca:** `libs/image/kis_gradient_shape_strategy.{h,cpp}`, `kis_cached_gradient_shape_strategy.{h,cpp}`, `kis_polygonal_gradient_shape_strategy.{h,cpp}`
Krita gradient painter şu modları destekler: Linear, Bilinear, Radial, Square, Conical (sweep), Spiral.
**Mevcut HCIE:** `hcie-draw` crate'inde gradient desteği kısıtlı.
**Dönüşüm Değerlendirmesi:**
- **Karmaşıklık:** 4/10 — Renk interpolasyonu + geometri
- **Dikkat edilmesi gereken:** Krita'daki gradient renk durdurma noktaları (color stop) sistemi kompleks
- **Tahmini süre:** 2-3 gün
### 4.3 Temel Layer Stilleri (Drop Shadow, Stroke)
**Kaynak:** `libs/image/layerstyles/kis_ls_drop_shadow_filter.{h,cpp}`, `kis_ls_stroke_filter.{h,cpp}`
Layer style'lar Photoshop efekti olarak son derece yaygın. Krita implementasyonu:
- **Drop Shadow / Inner Shadow / Outer Glow / Inner Glow:** Aynı `KisLsDropShadowFilter` sınıfı, `Mode` enum ile seçilir. Blur + offset + renk + opacity.
- **Stroke:** Layer içeriğinin etrafına çizgi; color/gradient/pattern fill, outside/inside/center position.
**Mevcut HCIE:** Yok. Tamamen yeni eklenti.
**Dönüşüm Değerlendirmesi:**
- **Karmaşıklık:** 5/10 — Gaussian blur + offset compositing
- **Sınama:** Gaussian blur için `hcie-filter` crate'inde `gaussian_blur` var mı kontrol edilmeli
- **Tahmini süre:** 3-5 gün
```cpp
// Krita: KisLsDropShadowFilter::processDirectly()
void processDirectly(KisPaintDeviceSP dev, KisPaintDeviceSP srcDev,
KisLayerStyleFilterEnvironment* env) {
// 1. src alpha channel'dan seçim oluştur
// 2. seçimi offset + blur uygula
// 3. shadow rengiyle doldur
// 4. src üzerine kompozitle
}
```
### 4.4 Brush Preset Serileştirme
**Kaynak:** `libs/brush/``KisBrushModel.{h,cpp}`, `KisAbrStorage.{h,cpp}`
Krita'nın brush preset sistemi (`.kpp` dosyaları) oldukça olgun: XML tabanlı konfigürasyon, gömülü brush imajları, sensor eğrileri.
**Mevcut HCIE:** `ToolState::brush_presets` var ancak serileştirme yok.
**Dönüşüm Değerlendirmesi:**
- **Karmaşıklık:** 3/10 — JSON/XML serialize, dosya I/O
- **Tavsiye:** HCIE kendi `.hcie_brush` formatını tanımlamalı, Krita `.kpp`'den import desteği sonra eklenebilir
- **Tahmini süre:** 1-2 gün
---
## 5. Kategori B: Orta Maliyet — Yüksek Etki (Kısa-Orta Vade)
### 5.1 Gelişmiş Brush Dab Pipeline (Scatter, Texture, Dual Brush)
**Kaynak:** `plugins/paintops/libpaintop/`
| Özellik | Krita Dosyası | Açıklama |
|---------|--------------|----------|
| Scatter | `KisScatterOption{.h/cpp}` | Dab'ların stroke yolundan rastgele X/Y sapması |
| Texture | `KisTextureOption{.h/cpp}` | Dab üzerine pattern/texture bindirme |
| Dual Brush | `KisMaskingBrushOption{.h/cpp}` | İkinci bir brush'ın maskeleme olarak kullanımı |
| Mirror | `KisMirrorOption{.h/cpp}` | Yatay/dikey aynalama |
| HSV | `KisHSVOption{.h/cpp}` | Fırça darbesi sırasında HSV ayarı |
| Sensor System | `KisDynamicSensor*.h/cpp` | Pressure, tilt, speed, random, fade, distance |
| Airbrush | `KisAirbrushOptionData{.h/cpp}` | Time-based spacing |
**Mevcut HCIE:** `hcie-brush-engine` temel stamp + spacing sunar, ancak sensor-driven parametreler ve opsiyon zinciri yok.
**Dönüşüm Değerlendirmesi:**
- **Karmaşıklık:** 7/10 — Krita'daki opsiyon/sensor sistemi oldukça modüler ve kapsamlı
- **Tasarım önerisi:** Rust'ta trait-based option sistemi kullanılabilir:
```rust
trait BrushOption {
fn apply(&self, info: &PaintInfo, dab: &mut Dab) -> Dab;
}
struct SizeOption {
curve: SensorCurve,
sensor: SensorType,
}
struct ScatterOption {
amount: SensorCurve,
axis: ScatterAxis, // X, Y, Both
}
```
- **Tahmini süre:** 1-2 hafta
### 5.2 Gelişmiş Deform Araçları (Cage, Liquify, Warp)
**Kaynak:** `plugins/tools/tool_transform2/` ve `libs/image/`
| Araç | Krita Sınıfı | Dosya |
|------|-------------|-------|
| Cage Transform | `KisCageTransformWorker` | `kis_cage_transform_worker.{h,cpp}` |
| Liquify | `KisLiquifyTransformWorker` | `kis_liquify_transform_worker.{h,cpp}` |
| Warp | `KisWarpTransformWorker` | `kis_warptransform_worker.cc` |
| Perspective | `KisPerspectiveTransformWorker` | `kis_perspectivetransform_worker.{h,cpp}` |
| Mesh | `KisBezierTransformMesh` | `kis_bezier_transform_mesh.{h,cpp}` |
**Mevcut HCIE:** Temel dönüşüm (ölçekleme, döndürme) var.
**Dönüşüm Değerlendirmesi:**
- **Karmaşıklık:** 7-8/10 — Green coordinates (cage), grid-based interpolation (liquify)
- **Matematik bağımlılığı:** Lineer cebir, biharmonik interpolasyon
- **Tahmini süre:** Her biri için 1-2 hafta
### 5.3 Tile Engine Swap + Kompresyon
**Kaynak:** `libs/image/tiles3/`
Krita tile engine'in kritik özellikleri:
- **COW (Copy-on-Write):** `KisTileData` paylaşımı + `KisTileDataPooler` (arka planda clone ön-üretimi)
- **Swap:** LRU-approximation clock algorithm, `KisTileDataSwapper` thread, `KisSwappedDataStore`
- **Kompresyon:** LZF (hızlı, düşük oran), `KisTileCompressor2`
- **Memory-mapped I/O:** `KisMemoryWindow` (16 MiB pencereler)
**Mevcut HCIE:** `hcie-tile` crate'inde basit `KisTile` var, boyut 64×64. Swap/kompresyon/COW yok.
**Dönüşüm Değerlendirmesi:**
- **Karmaşıklık:** 7/10 — Thread safety, lock management, memory mapping
- **Rust avantajı:** `Arc<Mutex<T>>` ve `RwLock` COW için daha güvenli; `mmap` için `memmap2` crate'i
- **Swap için Rust dezavantajı:** `unsafe` gerekebilir (raw memory mapping)
- **Tahmini süre:** 2-3 hafta
```rust
// Rust'ta COW tile tasarımı
struct TileData {
pixels: Vec<u8>,
age: AtomicU32,
state: TileState, // Normal | Compressed | Swapped
}
struct Tile {
data: Arc<TileData>,
pos: (u32, u32),
}
impl Tile {
fn write(&mut self) -> &mut [u8] {
// COW: clone Arc if refcount > 1
Arc::make_mut(&mut self.data).pixels.as_mut_slice()
}
}
```
### 5.4 Renk Yönetimi Temelleri (ICC Profile Desteği)
**Kaynak:** `libs/pigment/``KoColorSpaceRegistry`, `KoColorConversionSystem`, `KoColorProfile`
Krita, LittleCMS 2 (LCMS2) üzerinden ICC v4 profil desteği sunar.
**Mevcut HCIE:** `hcie-color` crate'inde sRGB, HSL, Lab dönüşümleri var. ICC yok.
**Dönüşüm Değerlendirmesi:**
- **Karmaşıklık:** 7/10 — LCMS2 FFI binding gerekli
- **Crate önerisi:** `lcms2` veya `qicc` crate'i kullanılabilir
- **Tahmini süre:** 2-4 hafta (temel entegrasyon için), görüntü üzerinde dönüşüm pipeline'ı ek süre
### 5.5 PSD Dosya Formatı (Gelişmiş)
**Kaynak:** `libs/psd/`, `libs/ui/flake/` (PSD stilleri), `libs/image/kis_psd_layer_style.{h,cpp}`
Krita'nın PSD desteği oldukça kapsamlıdır: layer maskeler, adjustment layer, layer style (ASL), blend modes, group layer, clipping path.
**Mevcut HCIE:** `hcie-io` crate'inde temel PSD import var.
**Dönüşüm Değerlendirmesi:**
- **Karmaşıklık:** 6/10 — Binary format parsing, RLE/RAW compression
- **Öncelik:** Export yetenekleri import'a göre daha öncelikli olabilir
- **Tahmini süre:** 1-2 hafta
---
## 6. Kategori C: Yüksek Maliyet — Stratejik (Uzun Vade)
### 6.1 MyPaint Brush Engine Entegrasyonu
**Kaynak:** `plugins/paintops/mypaint/`
MyPaint brush engine, gerçekçi boyama simülasyonu için gelişmiş bir model sunar: süngerimsi yüzey, boya birikimi, ıslaklık.
**Dönüşüm Değerlendirmesi:**
- **Karmaşıklık:** 9/10 — MyPaint C kütüphanesi FFI veya saf Rust implementasyonu
- **Alternatif:** Rust'ta `mypaint` crate'i olup olmadığı araştırılmalı
- **Tahmini süre:** 4-8 hafta
### 6.2 Animasyon Sistemi (Keyframe, Onion Skin, Timeline)
**Kaynak:** `libs/image/kis_keyframe.{h,cpp}`, `kis_keyframe_channel.{h,cpp}`, `kis_image_animation_interface.{h,cpp}`, `kis_onion_skin_compositor.{h,cpp}`
**Bileşenler:**
- `KisKeyframeChannel` — Raster, scalar, shape keyframe kanalları
- `KisRasterKeyframeChannel` — Frame-based pixel data
- `KisOnionSkinCompositor` — Önceki/sonraki frame'leri yarı-saydam gösterim
- Frame tag'leri, frame hareketi
**Dönüşüm Değerlendirmesi:**
- **Karmaşıklık:** 9/10 — Büyük bir mimari ekleme
- **Öncelik:** HCIE önce non-animation olgunlaşmalı
- **Tahmini süre:** 2-3 ay
### 6.3 Plugin Sistemi (Python Scripting)
**Kaynak:** `sdk/`, `plugins/python/`
Krita, Python scripting için `PyQt` tabanlı `libkis` API'si sunar. Ayrıca C++ plugin sistemi.
**Dönüşüm Değerlendirmesi:**
- **Karmaşıklık:** 8/10 — WASM, Lua, veya Python embed
- **Rust seçeneği:** `rhai` (Rust-native scripting) veya `mlua` (Lua) daha uygun olabilir
- **Tahmini süre:** 2-4 ay
### 6.4 Tam Renk Yönetimi (CMS)
**Kaynak:** `libs/pigment/` + `libs/ui/` — Display renderer, soft-proofing, gamut check
- ICC v4 profil rendering intent (perceptual, relative colorimetric, absolute, saturation)
- Soft-proofing (proofing transformation)
- OCIO (OpenColorIO) entegrasyonu
**Dönüşüm Değerlendirmesi:**
- **Karmaşıklık:** 9/10 — LCMS2 binding + matematik + kullanıcı arayüzü
- **Tahmini süre:** 2-3 ay
---
## 7. Kategori D: Düşük Öncelik
| Özellik | Kaynak | Sebep |
|---------|--------|-------|
| **Karbon/Karbon vektör araçları** | `plugins/tools/karbonplugins/` | HCIE zaten temel vektör desteğine sahip; Krita'nın calligraphy aracı niş |
| **Hatching Brush** | `plugins/paintops/hatching/` | Niş kullanım, düşük talep |
| **Particle Brush** | `plugins/paintops/particle/` | Eğlenceli ama düşük öncelik |
| **Grid Brush** | `plugins/paintops/gridbrush/` | Pattern oluşturma için alternatif yöntemler var |
| **Touch/Multihand araçları** | `plugins/tools/basictools/` | Tablet desteği sonra gelebilir |
| **Referans Images Tool** | `plugins/tools/defaulttool/` | Kullanışlı ama ek UI gerektirir |
| **Magnetic Selection** | `plugins/tools/selectiontools/` | Karmaşık algoritma (graph cut / intelligent scissors) |
| **SeExpr (Il) blend modes** | 35+ blend mode | HCIE'de 27 var, ihtiyaç halinde çoğaltılabilir |
| **TGA/EXR/JPEG2000 I/O** | `libs/impex/` | Öncelik mevcut formatların iyileştirilmesi |
---
## 8. Rust'a Dönüşüm Değerlendirmesi
### 8.1 Kolay Dönüşen Kalıplar (C++ → Rust)
| C++ Kalıbı | Rust Karşılığı | Örnek |
|-----------|----------------|-------|
| `QSharedPointer<T>` | `Arc<T>` | Tile data paylaşımı |
| `QReadWriteLock` + `QWriteLocker` | `RwLock<T>` | Tile lock mekanizması |
| `QHash<K,V>` | `HashMap<K,V>` | Tile hash table |
| `QVector<T>` | `Vec<T>` | Pixel buffer'lar |
| `QRect` / `QPoint` | `egui::Rect` / `egui::Pos2` | Geometri tipleri |
| virtual method (interface) | `trait` + `dyn` | PaintOp option sistemi |
| `QMutex` + `QWaitCondition` | `Mutex` + `Condvar` | Thread sync |
| `QThread` | `std::thread` | Background işlemler |
| `KUndo2Command` | `Box<dyn Fn()>` / enum-based | Undo sistemi |
### 8.2 Zor Dönüşen Kalıplar (C++ → Rust)
| C++ Kalıbı | Sorun | Çözüm Önerisi |
|-----------|-------|---------------|
| `QObject` tree + signals/slots | Qt meta-object system, runtime introspection | Kullanma, event bus + closure kullan |
| `QTemplate` + SFINAE | Rust generics daha katı | `trait` bounds ile çalış |
| Multiple inheritance | Rust'ta yok | Trait composition + delegation |
| Qt containers (COW implicit sharing) | Rust ownership model farklı | `Arc::make_mut()` ile COW |
| void pointer casts (`static_cast`, `qobject_cast`) | `unsafe` gerekir | `Any` trait + downcast |
| `QImage` / `QPixmap` | Rust'ta `image::RgbaImage`, egui `ColorImage` | Mevcut dönüşüm |
| RTTI (`dynamic_cast`, `typeid`) | Rust'ta `Any::type_id()` var | Enum-based polymorphism daha iyi |
| Qt Plugin system (`QPluginLoader`) | Yok | WASM plugin veya `dlopen` (unsafe) |
### 8.3 C++→Rust Dönüşüm Maliyet Matrisi
```
Kolay (1-3/10) : Selection ops, gradient, layer styles (basic), brush preset serialization
Orta (4-6/10) : Color management, PSD I/O, tile compression, scatter/texture options
Zor (7-8/10) : MyPaint engine, liquify, cage transform, animation
Çok Zor (9-10) : Full ICC CMS, plugin system, complete PSD ASL parser
```
### 8.4 Özel Rust Avantajları
| Konu | Rust Üstünlüğü |
|------|----------------|
| **Bellek güvenliği** | C++'da tile engine'de sık görülen use-after-free ve data race'ler Rust'ta compile-time'da yakalanır |
| **Concurrency** | `Send`/`Sync` trait'leri tile swapper thread'lerinin güvenliğini compile-time garanti eder |
| **FFI** | Krita'nın LCMS, MyPaint bağımlılıkları için `unsafe` FFI Rust'ta daha kontrollü |
| **Test** | Krita'da test ekosistemi dağınık; Rust'ta `cargo test` entegre |
| **Zero-cost abstractions** | Brush option chain trait'leri C++ virtual call overhead'suz çalışır (monomorphization) |
| **Pattern matching** | Blend mode seçiminde `match` ifadeleri C++ `if/else` zincirlerinden çok daha temiz |
---
## 9. Öncelikli Yol Haritası
### Aşama 1: Quick Wins (1-2 ay)
```
[ ] Selection border & smooth (hcie-selection)
[ ] Gradient fill (linear, radial, conical) — hcie-draw
[ ] Drop shadow layer style — yeni crate (hcie-layer-style)
[ ] Stroke layer style
[ ] Brush preset serialization (JSON) — hcie-gui-egui
```
### Aşama 2: Brush Engine Geliştirme (2-3 ay)
```
[ ] Scatter option — hcie-brush-engine
[ ] Texture option
[ ] Sensor curve system (pressure, tilt, speed)
[ ] Mirror option
[ ] Airbrush (time-based spacing)
[ ] Dab cache (KisDabCache)
```
### Aşama 3: Görüntü İşleme (2-3 ay)
```
[ ] Tile swap + LZF compression — hcie-tile
[ ] Deform araçları: cage, liquify (ilk etapta warp)
[ ] Gelişmiş PSD/KRA export
```
### Aşama 4: Uzun Vade (6+ ay)
```
[ ] ICC CMS (LCMS2 binding)
[ ] MyPaint brush engine
[ ] Animasyon (keyframe, onion skin)
[ ] Plugin sistemi (WASM/Rhai)
```
---
## Ek: Krita Source Tree Reference (Önemli Yollar)
| Klasör | İçerik | HCIE Karşılığı |
|--------|--------|----------------|
| `libs/image/` | Core image: layer, paint device, tile engine, selection, transform, filter | `hcie-document`, `hcie-tile`, `hcie-selection`, `hcie-draw` |
| `libs/image/brushengine/` | PaintOp framework | `hcie-brush-engine` |
| `libs/image/tiles3/` | Tile engine (COW, swap, compression) | `hcie-tile` |
| `libs/image/layerstyles/` | Drop shadow, bevel, stroke, satin, overlay | Yok |
| `libs/pigment/` | Color spaces, composite ops, CMS | `hcie-color`, `hcie-blend` |
| `libs/brush/` | Brush types (ABR, GBR, PNG, SVG, text, pipe) | `hcie-brush-engine` (kısmi) |
| `libs/flake/` | Vector shapes, path, svg, text | `hcie-vector`, `hcie-text` |
| `libs/ui/` | Qt/KDE UI framework | `hcie-gui-egui` (farklı toolkit) |
| `plugins/filters/` | 30+ görüntü filtresi | `hcie-filter` |
| `plugins/tools/` | 20+ araç | `hcie-gui-egui` |
| `plugins/paintops/` | 15+ brush motoru | `hcie-brush-engine` |
| `sdk/` | Python API, libkis | Yok |