# FikoYT Engineering Platform — CAE-DIŞI Açık Kaynak Kütüphane Taraması

> **Amaç:** fikatia-local (native C++23 / Vulkan / ImGui / OCCT / OpenCAMLib, Windows/MSVC/CMake+ninja, vcpkg+vendored `ucuncu_taraf/`) için **CAE dışındaki tüm katmanlarda** (render, ImGui ekosistemi, geometri/mesh, dosya/serileştirme, altyapı, CAM ek, diğer) ücretsiz/açık kaynak kütüphane seçimi ve entegrasyon planı. Hedef: **ticari satılabilir ürün**.
> **CAE tarafı ayrı değerlendirildi:** `docs/cae_kutuphane_plani.md` (Gmsh/Elmer/CalculiX/Jolt/Open3D/NLopt/MFEM/VTK-IO). Burada o liste **tekrarlanmaz**; yalnız CAE-dışı katmanlar.
> **Lisans kuralı (aynı):** MIT/BSD/Apache/MPL2 = **yeşil** (in-process serbest). LGPL = dinamik link kabul (statik-link'te DLL sınırı korunmalı). GPL = **kırmızı** (in-process alınmaz, yalnız external exe). AGPL = **zehir** (hiç alınmaz). Ticari/dual lisans (turnover eşikli) = **sarı** (koşullu).

---

## 0. Mevcut durum — neyin üstüne kuruyoruz (native envanter)

Kod tabanı taraması (`ucuncu_taraf/`, kök + `motor/*/CMakeLists.txt`, vcpkg installed):

| Katman | Zaten var mı | İçerik / not |
|--------|-------------|--------------|
| **Vulkan bellek** | ✅ **VMA vendored** | `ucuncu_taraf/vma/vk_mem_alloc.h` + `motor/render/src/vma_uygulama.cpp`. **VMA'yı ALMA — zaten var.** |
| **ImGui** | ✅ **vendored, docking+viewports AÇIK** | `ucuncu_taraf/imgui/` (docking dalı: `ConfigFlags_DockingEnable` + `ViewportsEnable`), backend'ler `imgui_impl_win32` + `imgui_impl_vulkan`. Font: **Segoe UI + Segoe UI Symbol** (emoji değil sistem simge fontu). |
| **Vulkan loader** | Statik link | `${FIKO_VULKAN_SDK}/Lib/vulkan-1.lib` — volk YOK (aşağıda değerlendirildi). |
| **CAD çekirdek** | ✅ OCCT (vcpkg `opencascade`) | `find_package(OpenCASCADE CONFIG)` + `TK*` link. STEP/BREP/boolean/fillet/mesh (TKMesh). |
| **CAM** | ✅ OpenCAMLib vendored (LGPL) | `ucuncu_taraf/opencamlib` yalın STATIC + `fiko::ocl`. Boost header-only kullanıyor. |
| **Voxel/dexel** | ✅ `motor/kutuk` | dexel3/zbuffer6 Vulkan compute — döküm/CAM voxel altyapısı. **Marching Cubes/SurfaceNets henüz yok** (kendi yazılacak veya meshopt yardımcı). |
| **Lua betik** | ✅ vendored `ucuncu_taraf/lua` + elle binding | `motor/betik/src/makro_motor.cpp` (`fiko::lua`). sol2 YOK. |
| **Test** | ✅ **kendi mikro framework** | `motor/core/test/fiko_test.hpp` (`fiko::test::Ekle`, `hepsiniCalistir`). doctest/Catch2 YOK. |
| **Log** | ✅ kendi (`motor/core/src/gunluk.cpp`) | fmt/spdlog YOK. `OlayGunlugu` ayrıca cekirdek'te. |
| **JSON** | ❌ YOK | Hiçbir JSON lib yok — FikoOp formatı için seçim gerekli. |
| **Görev sistemi** | ✅ `motor/cekirdek/gorev.hpp` (`GorevSistemi`) | Kendi worker havuzu + iptal + main-thread finalize. Taskflow/TBB YOK. |
| **vcpkg mevcut** | opencascade, freetype, libpng, zlib, brotli, bzip2, boost (tam) | freetype+libpng zaten kurulu (OCCT bağımlılığı) → ImGui FreeType rasterizer bedavaya erişilebilir. |

**Vendoring kalıbı** (`ucuncu_taraf/opencamlib/CMakeLists.txt`): resmi CMake yerine yalın `add_library(ad STATIC)` + `fiko::ad` alias + `/W0` vendor uyarı bastırma + `${FIKO_VCPKG}/include`. **vcpkg kalıbı** (`motor/geometri`): `find_package(X CONFIG REQUIRED)` + hedef link. Header-only (VMA gibi): `ucuncu_taraf/<ad>/` + `target_include_directories`.

**Minimal-güçlü set felsefesi:** Kendi Vulkan motoru + OCCT + `motor/kutuk` + `GorevSistemi` + kendi test/log güçlü. Yeni bağımlılık yalnız **somut kuyruk işini** hızlandırıyor/mümkün kılıyorsa alınır. "Moda diye" ALINMAZ.

---

## 1. KARAR TABLOSU

Öncelik: **AL-P0** (yakın kuyruk işine doğrudan hizmet, düşük risk) · **AL-P1** (net değer, biraz sonra) · **BELKİ** (koşullu/ileride) · **ALMA** (gerek yok/mevcutla karşılanıyor/lisans engeli).

### 1.1 Render / Vulkan

| Kütüphane | Lisans | vcpkg | fikatia rolü (hangi kuyruk işi) | KARAR |
|-----------|--------|-------|--------------------------------|-------|
| **VMA (Vulkan Memory Allocator)** | MIT | ✅ (vendored zaten) | Vulkan bellek allocator | **ALMA — ZATEN VAR** (`ucuncu_taraf/vma`). |
| **meshoptimizer** | MIT | ✅ `meshoptimizer` | Büyük STEP sahne: vertex cache optimize, overdraw, **LOD simplify** (`meshopt_simplify`), vertex/index quantize+encode. Hiyerarşik import ağır sahnelerde FPS. | **AL-P0** |
| **Tracy profiler** | BSD-3 | ✅ `tracy` (v0.13+) | Frame + zone + GPU (Vulkan) profiling, bellek izleme. **Final performans fazı** için birebir (bkz memory: fikatia final faz + Vulkan donma fix'leri). | **AL-P1** (final performans dalgası) |
| **volk** | MIT | ✅ `volk` | Vulkan fonksiyon meta-loader (dispatch hızlandırma, uzantı yönetimi). | **ALMA** — şu an statik `vulkan-1.lib` çalışıyor, tek-GPU masaüstünde kazanç marjinal. Mevcut yeterli, minimal bağımlılık. |
| **SPIRV-Reflect** | Apache-2.0 | ✅ `spirv-reflect` | SPIR-V'den otomatik descriptor set/binding/push-constant reflection → pipeline layout elle bakımını bitirir. Compute shader'lar arttıkça bakım kolaylığı. | **BELKİ-P2** — compute shader sayısı artarsa elle layout yükü azalır; şimdilik yönetilebilir. |
| **basis_universal / KTX2** | Apache-2.0 | ✅ `ktx` / `basisu` | GPU-sıkıştırılmış doku (BC7/ASTC), KTX2 konteyner. | **ALMA** — fikatia CAD/CAM; doku ağırlıklı değil (heat-map/renkli mesh vertex-color). İhtiyaç doğarsa P3. |

### 1.2 ImGui ekosistemi

| Kütüphane | Lisans | vcpkg | fikatia rolü | KARAR |
|-----------|--------|-------|--------------|-------|
| **ImGuizmo** | MIT | ✅ `imguizmo` | **CATIA compass/pusula** + 3B manipülatör (translate/rotate/scale gizmo). Kuyrukta: pusula + sürüklenebilir Lim1/Lim2 tutamakları. | **AL-P0** |
| **ImPlot** | MIT | ✅ `implot` | **Analiz workbench + döküm sonuç grafikleri** (soğuma eğrisi, katılaşma f_s-t, Feeds&Speeds, gerilme-zaman). ImGui-native, tek-motor tutarlı. | **AL-P0** |
| **IconFontCppHeaders + ikon fontu (Material Symbols / Font Awesome)** | MIT (header) + OFL/CC (font) | header-only vendored | **Tüm pencereler profesyonel görünüm** — şu an Segoe UI Symbol; MDI/FA ile tutarlı vektör ikon seti (toolbar/ağaç/menü). ImGui 16-bit codepoint uyumlu. | **AL-P1** |
| **ImNodes** | MIT | ✅ `imnodes` | İleride **formül/işlem/parametre düğüm editörü** (RecomputeMotor DAG görselleştirme, makro node-graph). | **BELKİ-P2** — DAG editörü kuyruğa girince. Şimdilik yok. |
| **imgui_test_engine** | **Dual (özel)** — <$2M turnover ÜCRETSİZ, üstü PAID | ⚠️ (bundle) | UI otomasyon/smoke test. | **BELKİ (sarı)** — MIT DEĞİL: ticari üründe turnover eşiği aşılırsa **ücretli lisans gerekir**. Ürün büyürse maliyet. Kendi `fiko_test` UI kapsamıyor ama UI test disiplini şart değil. **Şimdilik ALMA**, gerekirse lisans farkındalığıyla. |

### 1.3 Geometri / mesh

| Kütüphane | Lisans | vcpkg | fikatia rolü | KARAR |
|-----------|--------|-------|--------------|-------|
| **Manifold** | Apache-2.0 | ✅ `manifold` (bağımlılıksız) | **Hızlı garantili-manifold mesh boolean** — kütük sim/önizleme, voxel→mesh sonrası boolean, hızlı görsel boolean OCCT'den ~10-100x hızlı (kesin B-rep gerekmeyen önizleme/tessel yollarında). | **AL-P1** (rol ayrımı §3'te kritik) |
| **Eigen** | MPL-2.0 | ✅ (OCCT/boost yanında) | Lineer cebir. | **ALMA** — `motor/core` kendi Vec/Mat4/Quat'a sahip; OCCT `gp_*` var. Eigen çekmek mükerrer + derleme yükü. CAE solver'ları zaten external. |
| **libigl** | MPL-2.0 | ✅ `libigl` (header) | Geometri işleme algoritma koleksiyonu (parametrizasyon, curvature, geodesic). | **ALMA** — header-only ama ağır (Eigen bağımlı), çoğu işlev OCCT + kendi kodla karşılanıyor. Over-engineering. |
| **mikktspace** | ZLib | header-only vendored | Standart tanjant-uzayı üretimi (normal-map). | **ALMA** — CAD render'ında normal-map merkezi değil; flat/vertex-normal yeterli. |
| **OpenSubdiv** | Apache-2.0 (mod.) | ⚠️ | Catmull-Clark subdivision surface. | **ALMA** — CAD tessel OCCT'den; subdivision modelleme kuyrukta yok. |
| **CGAL (LGPL çekirdek)** | dual GPL/LGPL | ✅ | Delaunay/AABB/mesh onarım. | **ALMA (bu doküman kapsamında)** — CAE planında değerlendirildi; OCCT+kendi BVH yeterli. Mükerrer. |
| **Clipper2** | — | — | 2D poligon boolean/offset. | ⛔ **KULLANICI TARAFINDAN YASAKLI — ÖNERİLMEZ.** `poligon_ofset.cpp` kendi/OCCT ile. |

### 1.4 Dosya / serileştirme

| Kütüphane | Lisans | vcpkg | fikatia rolü | KARAR |
|-----------|--------|-------|--------------|-------|
| **Glaze** | MIT | ✅ `glaze` | **FikoOp JSON oku/yaz** — compile-time reflection (makrosuz struct↔JSON), en hızlı sınıf, C++23-native (bu projeye tam uyum). 9MB dosya hız + tip-güvenli proje kaydı. | **AL-P0** |
| **simdjson** | Apache-2.0 | ✅ `simdjson` | SIMD salt-okuma parser (en hızlı bulk parse). | **ALMA** — yalnız okuma (yazma yok), custom allocator yok, DOM erişim ergonomisi Glaze'den zayıf. **Glaze tek JSON seçimi** → mükerrer alma yok. |
| **nlohmann/json** | MIT | ✅ | Ergonomik JSON. | **ALMA** — yavaş (9MB'de darboğaz), Glaze kapsar. |
| **zstd** | BSD-3 | ✅ `zstd` | Proje kaydı / FikoOp / mesh cache **sıkıştırma** (hız/oran dengesi en iyi). | **AL-P1** |
| **miniz** | MIT | header-only vendored | zlib-uyumlu deflate (zip). | **ALMA** — `zlib` zaten vcpkg'de kurulu (OCCT bağımlılığı) → deflate gerekirse onu kullan. zstd yeni sıkıştırma için. |
| **cereal** | BSD-3 | ✅ | Binary serileştirme (proje kaydı). | **ALMA** — Glaze **BEVE** (binary) formatını da veriyor → tek lib ile hem JSON hem binary. cereal mükerrer. |
| **bitsery** | MIT | ✅ | Yüksek-hız binary serileştirme. | **ALMA** — Glaze BEVE kapsar. |
| **assimp** | BSD-3 | ✅ `assimp` | **Çok-format mesh import** (OBJ/STL/PLY/FBX/glTF + **VRML/WRL** opsiyonel importer). STEP zaten OCCT'de. | **BELKİ-P1** — kullanıcı "wrl dahil mi" sordu: **evet, `ASSIMP_BUILD_VRML_IMPORTER`/X3D ile WRL okur.** Ama ağır (40+ format). Gerçekten STL/OBJ/PLY/glTF import kuyrukta ise AL; yalnız WRL için tinygltf+tinyply+kendi STL daha hafif. **Karar: import matrisi netleşince** (yalın hedefse ALMA, geniş hedefse AL-P1). |
| **tinygltf** | MIT | ✅ `tinygltf` | glTF 2.0 oku/yaz (hafif, tek başına). | **BELKİ-P2** — glTF import/export kuyruğa girerse; assimp almazsan bu + tinyply hafif ikili. |
| **tinyply / miniply** | MIT / public | header-only vendored | PLY nokta/mesh IO (hafif). | **BELKİ-P2** — CAE planında P2 (nokta bulutu). Burada tekrar: nokta bulutu/PLY import gelince. |
| **pugixml** | MIT | ✅ `pugixml` | Hafif XML DOM (VTU/collada/3MF parçaları). | **ALMA (şimdilik)** — VTU CAE planında; XML ihtiyacı doğarsa P2, ama çoğu şey JSON. |

### 1.5 Altyapı

| Kütüphane | Lisans | vcpkg | fikatia rolü | KARAR |
|-----------|--------|-------|--------------|-------|
| **fmt** | MIT | ✅ `fmt` | Tip-güvenli hızlı formatlama. | **BELKİ-P2** — C++23 `std::format` MSVC'de mevcut → **stdlib yeter, fmt gereksiz.** `std::format` yetmezse (renkli/stil) fmt. Şimdilik ALMA. |
| **spdlog** | MIT | ✅ `spdlog` | Async çok-hedefli loglama. | **ALMA** — kendi `gunluk.cpp` + `OlayGunlugu` var; disk günlüğü zaten kuruldu (memory: disk günlüğü Adım 4). Mükerrer. |
| **Taskflow** | MIT | ✅ `taskflow` | Görev-grafı (DAG) paralel exec — RecomputeMotor/CAM strateji paralelleştirme. | **BELKİ-P2** — kendi `GorevSistemi` (worker havuzu+iptal+finalize) linear işleri kapsıyor. **Gerçek görev-DAG bağımlılığı** (RecomputeMotor feature graph paralel) ihtiyacı büyürse Taskflow değerli; şu an kendi sistem yeter. |
| **oneTBB** | Apache-2.0 | ✅ `tbb` | Paralel algoritma + concurrent container. | **ALMA** — ağır runtime; Taskflow (header-only) + kendi havuz + `std::execution` yeter. |
| **sol2** | MIT | ✅ `sol2` | Lua↔C++ binding (otomatik, tip-güvenli). | **BELKİ (geçiş maliyeti notu §4)** — mevcut elle binding çalışıyor; sol2 yeni API yüzeyini **çok daha hızlı** bağlar (makro/plugin genişledikçe). Yeni Cekirdek registry API'leri çoğaldıkça elle binding yükü artar → o noktada **AL-P2**. Mevcut binding yeniden yazma maliyeti orta. |
| **doctest** | MIT | ✅ `doctest` | Tek-header test framework. | **ALMA** — kendi `fiko_test.hpp` çalışıyor, tüm modüllerde kurulu (`test_brep`, `test_cam`, `test_duzenle`...). Değiştirme kazancı yok, geçiş maliyeti var. **Kalıcı: kendi framework.** |
| **Catch2** | BSL-1.0 | ✅ `catch2` | Zengin test framework. | **ALMA** — aynı gerekçe; ağır derleme. Kendi mikro-framework tercih. |

### 1.6 CAM ek

| Kütüphane | Lisans | vcpkg | fikatia rolü | KARAR |
|-----------|--------|-------|--------------|-------|
| **libnest2d** | **LGPL-3** | ⚠️ (Cura fork, Conan) | 2D irregular nesting/yerleştirme — **levha/sac CAM** parça diziliş optimizasyonu. | **BELKİ-P2 (dikkat)** — LGPL dinamik-link OK **ama default backend `polyclipping` (Clipper ailesi) bağımlı** → **kullanıcı Clipper yasağıyla çakışır.** NFP backend (libnfporb, Boost.Geometry) Clipper'sız derlenebilir ama zahmetli. Levha nesting kuyruğa girerse: NFP-only derle **veya** kendi bin-packing (Boost.Geometry zaten var). |
| **FreeCAD Path algoritmaları** | LGPL-2 | — (fikir kaynağı) | CAM toolpath algoritma referansı. | **FİKİR KAYNAĞI** (kod alınmaz) — rest machining/adaptive için algoritma referansı, tıpkı CAE planındaki `fiko-dokum-kontrol` gibi. |
| **G-code parser/çözümleyici** | çeşitli | — | NC geri-parse/simülasyon doğrulama. | **ALMA** — post-compiler/CAM tarafı kendi G-code üretiyor; parse ihtiyacı doğarsa küçük kendi parser. |

### 1.7 Diğer

| Kütüphane | Lisans | vcpkg | fikatia rolü | KARAR |
|-----------|--------|-------|--------------|-------|
| **nativefiledialog-extended** | ZLib | ✅ `nativefiledialog-extended` | Native aç/kaydet dialog. | **ALMA** — mevcut Win32 dialog (`sistem_win32.cpp`) var. Mükerrer. |
| **stb (image/rect_pack/truetype)** | MIT/public | header-only | Görüntü yükle, font atlas pack. | **ALMA** — ImGui `imstb_*` gömülü; PNG için libpng zaten kurulu. İhtiyaç noktasal → o an tek header ekle. |
| **cpr / libcurl** | MIT / curl | ✅ | HTTP istemci. | **BELKİ-P3** — **lisans sunucusu / güncelleme kontrolü** ileride gerekirse. Ticari ürün lisanslama katmanı doğunca cpr (curl sarmalayıcı, MIT). Şimdilik yok. |
| **NanoSVG** | ZLib | header-only vendored | SVG oku (sketch/logo import). | **BELKİ-P2** — CAE planında değerlendirildi; sketch SVG import kuyruğa girince tek-header. |

---

## 2. AL LİSTESİ — ENTEGRASYON PLANI

Kesin **AL** kararları, dalga sırası + hedef modül + vendored/vcpkg + somut kazanım. Her yeni sarmalayıcı doğduğu an **Cekirdek registry → makro+plugin+olay bedavaya** ([[fikatia-mimari-ilke-makro-plugin-olay]]).

| # | Kütüphane | Öncelik | Dalga / kuyruk işi | Modül | Getirme | Somut kazanım |
|---|-----------|---------|--------------------|-------|---------|---------------|
| 1 | **Glaze** | **AL-P0** | **FikoOp format dalgası** (format ajanı spec yazıyor) | `motor/core` veya yeni `motor/serile` | **vcpkg** `find_package(glaze CONFIG)` | 9MB FikoOp JSON hızlı+tip-güvenli oku/yaz; proje kaydı BEVE binary (tek lib). Makrosuz struct reflection C++23 uyumu. |
| 2 | **ImGuizmo** | **AL-P0** | **Pusula + tutamak dalgası** (CATIA compass, Lim1/Lim2 sürükleme) | `motor/ui` (imgui yanına) | **vendored** `ucuncu_taraf/imguizmo/` (2 dosya, header+cpp; imgui'ye bağımlı → aynı derleme birimi) | 3B gizmo + view-manipulate compass; elle gizmo matris matematiği yazımını bitirir. |
| 3 | **ImPlot** | **AL-P0** | **Analiz workbench / döküm sonuç grafik dalgası** | `motor/ui` | **vcpkg** `implot` **veya vendored** (imgui'ye bağlı, vendored temiz) | Soğuma eğrisi / f_s-t / Feeds&Speeds / gerilme grafikleri ImGui-native (tek-motor, tema/fog-yok tutarlı). |
| 4 | **meshoptimizer** | **AL-P0** | **Büyük STEP sahne performans dalgası** (hiyerarşik import ağır sahne) | `motor/geometri` (tessel sonrası) veya `motor/render` | **vcpkg** `meshoptimizer` | Vertex cache optimize + `meshopt_simplify` LOD + vertex/index encode → büyük STEP'te FPS + bellek. Geçersiz-bbox guard korunur. |
| 5 | **ImGuizmo ile beraber: Material/FA ikon fontu + IconFontCppHeaders** | **AL-P1** | **Profesyonel UI görünüm dalgası** | `motor/ui` (`fontYukle()` genişlet) | **vendored** `ucuncu_taraf/iconfont/` (header + .ttf asset) | Tüm toolbar/ağaç/menü tutarlı vektör ikon (Segoe Symbol yerine MDI/FA). ImGui font-merge (16-bit codepoint). |
| 6 | **Manifold** | **AL-P1** | **Kütük hızlı boolean önizleme dalgası** | yeni `motor/meshbool` veya `motor/kutuk` yanı | **vcpkg** `manifold` (Apache2, bağımlılıksız) | Voxel→mesh sonrası + görsel boolean önizleme OCCT'den ~10-100x hızlı (kesin B-rep gerekmeyen yol). Rol ayrımı §3. |
| 7 | **zstd** | **AL-P1** | **Proje kaydı / mesh cache sıkıştırma** | `motor/core` / serile | **vcpkg** `zstd` | FikoOp/proje/mesh cache sıkıştırma (hız-oran en iyi). Glaze BEVE + zstd = kompakt proje dosyası. |
| 8 | **Tracy** | **AL-P1** | **Final performans fazı** (frame+zone+GPU profiling) | tüm motor (makro `FIKO_ZONE`) + `motor/render` GPU zone | **vcpkg** `tracy` (client) — Release'de `TRACY_ENABLE` opsiyonel | Frame/zone/GPU/bellek profil → Vulkan donma + hot-path avı (memory: final performans + donma fix). Prod'da kapatılabilir (sıfır overhead). |

**Getirme kalıbı özeti:**
- **vcpkg** (Glaze, ImPlot*, meshoptimizer, Manifold, zstd, Tracy): `find_package(X CONFIG REQUIRED)` + hedef link — OCCT kalıbı. Not: bunlar zaten kurulu değilse `vcpkg install` gerekir; kullanıcının vcpkg dizini `${FIKO_VCPKG}`.
- **vendored** (ImGuizmo, ikon fontu; ImPlot tercihe göre): `ucuncu_taraf/<ad>/` + `/W0` vendor uyarı bastırma + imgui include. ImGuizmo/ImPlot **ImGui'ye bağlı** → `motor/ui` derleme birimine katılır (imgui.cpp gibi).

**Dalga sırası (kritik yol):**
`AL-P0` (Glaze + ImGuizmo + ImPlot + meshoptimizer — hepsi bağımsız, paralel eklenebilir) → `AL-P1` (ikon fontu + Manifold + zstd + Tracy). Her biri ayrı ajana verilebilir netlikte; tek çakışma noktası `motor/ui/CMakeLists.txt` (ImGuizmo+ImPlot+ikon fontu aynı dosyaya dokunur → **tek elden birleştir**).

---

## 3. RİSKLER / ÇAKIŞMALAR / ROL AYRIMLARI

### 3.1 Manifold vs OCCT — NET ROL AYRIMI (en kritik)
İkisi de mesh/boolean yapar; **karıştırılırsa mükerrer + tutarsızlık**:
- **OCCT** = **kesin B-rep** otoritesi. Parametrik modelleme, STEP I/O, fillet/chamfer, ölçüm için topoloji, kalıcı ürün ağacı feature'ları. **Doğruluk gerektiren her yer OCCT.**
- **Manifold** = **hızlı üçgen-mesh önizleme boolean**. Kütük simülasyon anlık boolean, voxel→mesh (`motor/kutuk` çıktısı) sonrası birleştirme, gerçek-zamanlı görsel kesme önizleme. **B-rep'e dönmeyen, yalnız görsel/sim mesh** yolları. Sonuç kalıcı feature olmaz → OCCT'ye "commit" edilmez.
- **Kural:** Manifold çıktısı asla ürün ağacına kalıcı B-rep olarak yazılmaz; yalnız `mesh_veri` (render) veya sim ara-veri. Kalıcı boolean gerekince OCCT `TKBO`.

### 3.2 sol2 vs mevcut elle Lua binding — geçiş maliyeti
- Mevcut `makro_motor.cpp` elle binding **çalışıyor** ve undo-uyumlu `fiko.sahne` API sağlıyor. sol2'ye geçiş = tüm binding'i yeniden yazma (orta maliyet).
- **Değer eşiği:** Cekirdek registry API yüzeyi (yeni workbench/feature/kısıt/joint her biri makro erişimi ister — mimari ilke) büyüdükçe elle binding **her yeni tip için elle satır** demek. sol2 otomatik bind eder. **~20+ yeni tip biriktiğinde sol2 kazançlı** → o noktada AL-P2, öncesinde ALMA.
- Risk: sol2 ağır template derleme (MSVC'de compile süresi). Ölç, kabul edilirse geç.

### 3.3 imgui_test_engine — LİSANS TUZAĞI (sarı)
- MIT **DEĞİL**: turnover <$2M ücretsiz, üstü **ücretli**. Ticari ürün büyürse gizli maliyet. Bundle'a girdi diye farkında olmadan alınmamalı. **Şimdilik ALMA**; UI otomasyon testi gerekirse lisans bilinçli karar.

### 3.4 libnest2d — Clipper bağımlılığı (kullanıcı yasağı çakışması)
- Default backend `polyclipping` (Clipper ailesi) → **kullanıcının Clipper2 yasağı ruhuyla çakışır.** Alınırsa NFP-only (libnfporb + Boost.Geometry, Boost zaten var) derlenmeli. Levha nesting kuyruğa girene kadar **ertelendi (BELKİ-P2)**; girince kendi bin-packing (Boost.Geometry) ilk tercih.

### 3.5 Mükerrer önleme (ALMA gerekçeleri özet)
- **VMA** zaten vendored → tekrar alma.
- **fmt** ← C++23 `std::format` (MSVC var) yeter.
- **spdlog** ← kendi `gunluk` + `OlayGunlugu` + disk günlüğü var.
- **doctest/Catch2** ← kendi `fiko_test.hpp` tüm modüllerde kurulu.
- **simdjson/nlohmann/cereal/bitsery** ← **Glaze tek serileştirme** (JSON + BEVE binary) kapsar.
- **miniz** ← `zlib` zaten kurulu; yeni sıkıştırma zstd.
- **Eigen/libigl** ← kendi `core` matematik + OCCT `gp_*` yeter.
- **volk** ← statik `vulkan-1.lib` masaüstü tek-GPU'da yeterli.
- **oneTBB/nativefiledialog/stb** ← Taskflow-header + Win32 dialog + ImGui-gömülü-stb mevcutla karşılanıyor.

### 3.6 CMake çakışma noktası
- `motor/ui/CMakeLists.txt`: ImGuizmo + ImPlot + ikon fontu **aynı dosyaya** kaynak/include ekler → paralel ajanlarda çakışır. **Tek eldan birleştir** (lider). ImGuizmo/ImPlot vendored ise imgui.cpp yanına `/W2` benzeri uyarı seviyesiyle.

---

## 4. ÖZET

- **Çekirdek zaten güçlü:** kendi Vulkan + OCCT + `motor/kutuk` voxel + `GorevSistemi` + kendi test/log + vendored VMA/ImGui(docking+viewports). Yeni bağımlılık yalnız **somut kuyruk işini** açan 8 kütüphaneyle sınırlı.
- **AL-P0 (hemen, bağımsız):** **Glaze** (FikoOp JSON/binary), **ImGuizmo** (pusula+tutamak), **ImPlot** (analiz/döküm grafik), **meshoptimizer** (büyük STEP LOD/perf).
- **AL-P1:** **ikon fontu+IconFontCppHeaders** (profesyonel UI), **Manifold** (hızlı mesh boolean önizleme — OCCT'den ayrı rol), **zstd** (proje sıkıştırma), **Tracy** (final performans profiling).
- **BELKİ (koşullu):** SPIRV-Reflect (compute artınca), ImNodes (DAG editörü), assimp/tinygltf/tinyply/NanoSVG (import matrisi netleşince), Taskflow (görev-DAG büyürse), **sol2** (registry API ~20+ tip birikince), libnest2d (levha nesting — Clipper'sız NFP), cpr (lisans sunucusu).
- **ALMA (mükerrer/lisans/mevcut):** VMA(var), fmt(std::format), spdlog(kendi log), doctest/Catch2(kendi test), simdjson/nlohmann/cereal/bitsery(Glaze), miniz(zlib), Eigen/libigl(kendi+OCCT), volk, oneTBB, nativefiledialog(Win32), stb, basis/KTX, OpenSubdiv/mikktspace. **imgui_test_engine (sarı-lisans), Clipper2 (⛔ yasak).**
- **Lisans karnesi temiz:** tüm AL kararları **MIT/BSD/Apache** (in-process güvenli). LGPL/GPL/AGPL in-process yok; sarı-lisans (imgui_test_engine) ve Clipper (yasak) alınmadı.

---

## 5. KAYNAKLAR (2026 doğrulama)
- meshoptimizer / VMA / spirv-reflect / volk / tracy — vcpkg port mevcut: [vcpkg.link](https://vcpkg.link/ports/spirv-reflect), [tracy](https://vcpkg.roundtrip.dev/ports/tracy)
- Manifold (Apache-2.0, bağımlılıksız, vcpkg): [github.com/elalish/manifold](https://github.com/elalish/manifold)
- ImGuizmo / ImPlot / ImNodes / Taskflow (vcpkg, MIT): [imguizmo](https://vcpkg.link/ports/imguizmo), [implot](https://vcpkg.link/ports/implot), [taskflow](https://vcpkg.link/ports/taskflow)
- Glaze (MIT, C++23, vcpkg) vs simdjson/nlohmann: [github.com/stephenberry/glaze](https://github.com/stephenberry/glaze), [glaze vcpkg](https://vcpkg.link/ports/glaze)
- IconFontCppHeaders (MIT, MDI/FA/Lucide): [github.com/juliettef/IconFontCppHeaders](https://github.com/juliettef/IconFontCppHeaders)
- assimp (BSD-3, VRML/WRL opsiyonel importer, vcpkg): [github.com/assimp/assimp](https://github.com/assimp/assimp)
- imgui_test_engine (**dual lisans, turnover eşikli**): [dearimgui.com/licenses](https://www.dearimgui.com/licenses/)
- libnest2d (**LGPL-3, polyclipping backend**): [github.com/tamasmeszaros/libnest2d](https://github.com/tamasmeszaros/libnest2d)
