# Endustriyel Web CAD Viewer Mimari Analizi

Tarih: 2026-03-13

Bu belge, onculer endustriyel web CAD viewer'larinin mimarilerini analiz eder ve FikoYT 3D motoruna uyarlanabilecek teknikleri belirler.

---

## 1. Onshape

### Mimari Yaklasim
- **Tamamen bulut-yerlesik (cloud-native)**: Tum geometri islemleri sunucu tarafinda calisir
- **Parasolid kernel**: Siemens Parasolid, sunucu tarafinda calisan B-Rep (Boundary Representation) cekirdegi
- **Thin client**: Tarayici sadece goruntuleme ve etkilesim yapar; geometri hesaplamalari sunucuda
- **Microservices mimarisi**: Her islem (modelleme, montaj, cizim) bagimsiz servisler

### Rendering Pipeline
- Sunucu tarafinda tessellation (B-Rep -> ucgen mesh donusumu)
- Tessellated mesh WebGL ile istemcide render
- Kamera degistikce sunucudan yeni tessellation istenmez - onceden hesaplanmis mesh kullanilir
- Edge rendering ayri pass olarak yapilir (wireframe overlay)
- Anti-aliasing: MSAA veya FXAA istemci tarafinda

### Real-time Collaboration
- **OT (Operational Transformation)** tabanli: Google Docs benzeri
- Ayni anda birden fazla kullanici ayni part/assembly uzerinde calisabilir
- Her islem (feature ekleme, olcu degistirme) atomik transaction olarak sunucuya gider
- Sunucu conflict resolution yapar ve tum istemcilere broadcast eder
- Cursor pozisyonlari ve secim durumlari WebSocket ile senkronize

### Performans Teknikleri
- Sunucu tarafinda on-bellekleme (tessellation cache)
- Incremental tessellation: Sadece degisen parcalar yeniden tessellate edilir
- View-frustum bazli onceliklendirme
- Montaj icin instanced rendering (ayni parca tekrari)
- Progressive mesh yukleme (dusuk LOD oncelikli)

### Guclu Yanlar
- Sifir kurulum, platform bagimsiz
- Version control entegre (Git benzeri branch/merge)
- Multi-user gercek zamanli isbirligi
- Sunucu tarafinda sinirsiz islem gucu

### Zayif Yanlar
- Internet bagimliligi zorunlu
- Buyuk modellerde network latency darbogazlari
- Sunucu maliyeti yuksek (her kullanici icin CPU/RAM)
- Offline calisma imkani yok

### FikoYT'ye Uyarlanabilecek Teknikler
1. **Incremental tessellation cache**: Sadece degisen geometriyi yeniden isle
2. **OT-tabanli isbirligi**: Soyagaci veya CAD projeleri icin multi-user editing
3. **Instanced rendering**: Tekrarlanan parcalar icin GPU instance kullanimi (zaten mevcut)

---

## 2. Shapr3D (Web Version)

### Mimari Yaklasim
- **Hibrit mimari**: Parasolid kernel istemci tarafinda WASM olarak calisir
- **Siemens Parasolid**: C++ kernel WebAssembly'e derlenmis
- **Cross-platform**: Ayni WASM kernel iOS, iPadOS, macOS, Windows ve Web'de calisir
- **Yerel-hissiyatli web uygulamasi**: Kernel istemcide oldugu icin sunucu bagimliligini azaltir

### GPU Rendering Stratejisi
- Metal (Apple), DirectX (Windows), WebGL/WebGPU (Web) abstraction layer
- Ozel render engine - Three.js veya benzeri framework kullanmaz
- **PBR (Physically Based Rendering)**: Metallic-roughness workflow
- **Real-time shadows**: Shadow mapping ile gercek zamanli golgelendirme
- **Edge detection**: Geometry shader veya post-process ile kenar cizimleri

### Cross-Platform Mimari
```
[Kullanici Arayuzu] (Platform-spesifik: SwiftUI / WinUI / Web)
         |
[Rendering Layer] (Platform-spesifik: Metal / DX / WebGL)
         |
[Modeling Kernel] (Parasolid WASM - paylasilan)
         |
[Dosya I/O] (STEP, X_T, IGES import/export)
```

### Performans Teknikleri
- Parasolid kernel WASM ile yaklasik 80-90% native performans
- SharedArrayBuffer ile multi-threaded WASM
- GPU-accelerated tessellation (kernel ciktisi -> GPU pipeline)
- Lazy tessellation: Sadece gorunen parcalar tessellate edilir
- Touch-optimized interaction (Apple Pencil, gesture support)

### Guclu Yanlar
- Native-yakin performans (WASM kernel)
- Offline calisma mumkun
- Ayni kernel tum platformlarda
- Profesyonel CAD islemleri (boolean, fillet, chamfer) istemcide

### Zayif Yanlar
- Buyuk WASM bundle boyutu (Parasolid kernel ~50-100MB)
- Ilk yukleme suresi uzun
- Tarayici bellek sinirlamalari (ozellikle mobilde)
- Lisans maliyeti yuksek (Parasolid)

### FikoYT'ye Uyarlanabilecek Teknikler
1. **WASM kernel yaklasimi**: FikoYT zaten Rust WASM kullaniyor - daha fazla geometri islemi WASM'a tasiyabilir
2. **Cross-platform abstraction**: Rendering katmanini soyutlayarak WebGL/WebGPU gecisi kolaylastirmak
3. **Lazy tessellation**: Sadece kamera frustum'undaki parcalari tessellate etme

---

## 3. Autodesk Viewer (Forge/APS - Platform Services)

### Mimari Yaklasim
- **Sunucu tarafinda on-islem**: Model Derivative servisi CAD dosyasini goruntulemeye hazirlar
- **SVF/SVF2 formati**: Optimize edilmis akis formati (Streamable Viewable Format)
- **Thin client viewer**: Three.js tabanli JavaScript viewer
- **REST API entegrasyonu**: Tum islemler API uzerinden

### SVF2 Format (Dogrulanmis Veriler)
Web arastirmasindan elde edilen somut veriler:

| Metrik | SVF (v1) | SVF2 | Iyilesme |
|--------|----------|------|----------|
| Geometri boyutu (62MB model) | 34.6 MB | 24.1 MB | %30 kucuk |
| Mesh sayisi (62MB model) | 549 | 307 | %44 azalma |
| Yukleme suresi | 1.16s | 0.77s | %34 hizli |
| GPU bellek | 36.05 MB | 25.15 MB | %30 az |
| Geometri boyutu (92MB model) | 166.5 MB | 22.6 MB | **%86 kucuk** |
| Mesh sayisi (92MB model) | 29,646 | 3,362 | **%89 azalma** |
| Yukleme suresi (92MB model) | 1.51s | 0.60s | %60 hizli |
| GPU bellek (92MB model) | 101.4 MB | 22.6 MB | **%78 az** |

SVF2'nin temel optimizasyonu: **Ayni Viewable icinde ve hatta birden fazla Viewable arasinda mesh paylasimi**.
Dezavantaj: Translation (donusum) suresi artar (54s -> 83s, 385s -> 488s).

### Streaming Pipeline
```
[CAD Dosyasi] -> [Model Derivative Servisi] -> [SVF2 Donusumu]
                                                     |
                                              [Cloud Storage]
                                                     |
                              [Progressive Download / Streaming]
                                                     |
                                           [WebGL Viewer Client]
```

### LOD Stratejisi
- **Mesh paylasimi (mesh sharing/deduplication)**: Ayni geometri tekrar gonderilmez
- **Progressive loading**: Once dusuk-kalite mesh, sonra yuksek kalite
- **View-frustum culling**: Gorunmeyen nesneler render edilmez
- **Screen-space error metric**: Ekranda kucuk gorunen nesneler basitlestirilir
- **Consolidation**: Kucuk mesh'ler buyuk batch'lere birlestirilir (draw call azaltma)

### 2D/3D Hybrid Rendering
- 2D cizimler (DWG, PDF) ayri render pipeline
- 2D: Canvas 2D veya SVG tabanli, vektorel
- 3D: WebGL tabanli (Three.js turkevi)
- Ayni viewer'da 2D ve 3D gorunumler arasinda gecis

### Performans Teknikleri
- **Consolidation rendering**: Binlerce kucuk mesh'i az sayida buyuk buffer'da birlestirme
- **Instancing**: Ayni geometrinin tekrarlanan kullanimi icin GPU instancing
- **Texture atlasing**: Birden fazla texture'i tek atlas'ta birlestirme
- **Web Worker**: Agir islemleri (JSON parsing, geometry decode) worker'larda
- **IndexedDB cache**: Indirilen geometriyi yerel olarak onbellekleme

### Guclu Yanlar
- Cok genis format destegi (60+ CAD formati)
- Sunucu tarafinda donusum - istemci yuku hafif
- SVF2 ile dramatik boyut azalma
- Olgun ekosistem, genis API

### Zayif Yanlar
- Sunucu tarafinda donusum gecikmesi (dakikalar)
- API maliyetleri (kullanim bazli faturalandirma)
- Gercek zamanli CAD duzenleme yok (sadece goruntuleyici)
- Three.js bagimliligi (performans siniri)

### FikoYT'ye Uyarlanabilecek Teknikler
1. **Mesh deduplication/paylasimi**: Ayni geometriyi tespit edip tek kopya tutma - SVF2'nin en buyuk kazanimi
2. **Consolidation rendering**: Kucuk mesh'leri buyuk buffer'larda birlestirerek draw call azaltma
3. **IndexedDB cache**: Indirilen geometriyi tarayici deposunda onbellekleme
4. **Screen-space error LOD**: Ekranda kucuk gorunen nesneler icin otomatik basitlestirme

---

## 4. xBIM WebUI & IFC.js / That Open Engine (BIM Viewers)

### xBIM WebUI

#### Mimari Yaklasim
- **WexBIM formati**: Ozel ikili (binary) format, xBIM kutuphanelerinden uretilir
- **Sifir framework bagimliligi**: Kendi WebGL implementasyonu (Three.js, Babylon.js kullanmaz)
- **Sunucu on-islemi**: IFC -> WexBIM donusumu .NET tarafinda yapilir
- **Web Workers**: Agir hesaplamalar icin worker thread destegi

#### Teknik Ozellikler
- Ham WebGL API kullanimi - overhead minimizasyonu
- Geometrik ve topolojik islem destegi
- IFC-COBie cift yonlu format donusumu
- Webpack worker konfigurasyonu

### IFC.js / That Open Engine (web-ifc)

#### Mimari Yaklasim (Dogrulanmis)
- **C++ -> WASM**: IFC parser C++ ile yazilmis, Emscripten ile WASM'a derlenmis
- **Fragment-based rendering**: IFC modeli "fragment"lere ayrilir, her fragment bagimsiz render
- **Three.js entegrasyonu**: Rendering katmani Three.js uzerine kurulu
- **Component mimarisi**: Modeler, bagimsiz bilesenlere ayrilir

#### WASM Varyantlari (Dogrulanmis)
| Varyant | Kullanim |
|---------|----------|
| `web-ifc.wasm` | Standart tarayici |
| `web-ifc-mt.wasm` | Multi-threaded tarayici (SharedArrayBuffer) |
| `web-ifc-node.wasm` | Node.js ortami |

#### Fragment-Based Rendering
```
[IFC Dosyasi] -> [web-ifc WASM Parser] -> [IFC Model Verisi]
                                                |
                                     [FragmentsManager]
                                                |
                              [Fragment 1] [Fragment 2] [Fragment N]
                                    |            |            |
                              [Three.js InstancedMesh - her fragment]
```

- Her IFC element tipi (duvar, kapi, pencere) bir fragment grubunda
- Fragment = InstancedMesh + metadata
- Gorunurluk toggle'i fragment bazinda (tum duvarlari gizle/goster)
- **Classifier**: IFC tipine, kata, bolgeye gore siniflandirma ve filtreleme

#### Olcum Araclari (Dogrulanmis)
- `LengthMeasurement`: Mesafe olcumu
- `AreaMeasurement`: Alan olcumu
- `VolumeMeasurement`: Hacim olcumu
- `AngleMeasurement`: Aci olcumu

#### Bellek Yonetimi
- `CloseModel(modelID)`: Acik model kapatildiginda WASM bellegi serbest birakilir
- Model ID tabanli izleme sistemi
- Fragment lazy loading: Sadece gorunen fragmentlar bellekte

### Guclu Yanlar (BIM Viewers Genel)
- IFC standardina tam uyumluluk
- WASM ile hizli parsing (native'e yakin)
- Fragment mimarisi buyuk modelleri yonetilebilir parcalara boler
- Acik kaynak (web-ifc, That Open Engine)

### Zayif Yanlar
- IFC-spesifik, genel CAD formatlarina sinirli destek
- Three.js bagimliligi (That Open Engine)
- Buyuk modellerde (100K+ nesne) hala bellek sorunlari olabilir
- BIM-spesifik is mantigi, mekanik CAD icin yetersiz

### FikoYT'ye Uyarlanabilecek Teknikler
1. **Fragment-based rendering**: Buyuk modelleri tip-bazli fragment'lere ayirip InstancedMesh kullanma
2. **Multi-threaded WASM**: SharedArrayBuffer ile paralel WASM islemleri
3. **Component-based architecture**: Olcum, secim, navigasyon modulleri bagimsiz bilesenlere
4. **Tip-bazli siniflandirma ve filtreleme**: Parca tipine gore toplu gizle/goster

---

## 5. CAD Exchanger Web Toolkit

### Mimari Yaklasim
- **Hibrit islem modeli**: Hem sunucu hem istemci tarafinda CAD islemleri
- **Multi-format SDK**: 30+ CAD formatini okuma/yazma
- **WASM destegi**: Istemci tarafinda hafif geometri islemleri
- **REST API + WebGL**: Sunucu donusum + istemci goruntuleme

### Mimari Diyagram
```
[CAD Dosyasi (STEP, IGES, JT, 3MF, ...)]
              |
    [Server-Side SDK (C++)]
      - Format parsing
      - B-Rep -> Mesh tessellation
      - Geometri optimizasyonu
              |
    [Optimized Output (GLTF, mesh data)]
              |
    [Web Toolkit Client (JavaScript/WASM)]
      - WebGL rendering
      - Interaction (secim, olcum)
      - Annotation
```

### Desteklenen Formatlar (Onemli Olanlar)
STEP, IGES, Parasolid (X_T/X_B), SolidWorks, CATIA, NX, Creo, Inventor, JT, 3MF, STL, OBJ, GLTF, FBX, IFC, DWG, DXF, PDF

### Performans Teknikleri
- Sunucu tarafinda agir islem (tessellation, format donusum)
- Istemciye sadece optimize edilmis mesh gonderimi
- Incremental loading destegi
- WebGL 2.0 rendering

### Guclu Yanlar
- En genis format destegi
- Server-side processing ile istemci yuku dusuk
- Profesyonel B-Rep islem kalitesi
- SDK olarak entegre edilebilir

### Zayif Yanlar
- Ticari lisans (yuksek maliyet)
- Server deployment gereksinimleri
- Sinirli belgelendirme (kiyasla)
- Kapali kaynak

### FikoYT'ye Uyarlanabilecek Teknikler
1. **Server-side tessellation pipeline**: Agir donusum islerini sunucuya yikma
2. **Format abstraction layer**: Birden fazla CAD formatini tek pipeline'dan gecirme
3. **Optimize edilmis mesh cikti formati**: Sunucu -> istemci arasinda minimum veri transferi

---

## 6. HOOPS Communicator (Tech Soft 3D)

### Mimari Yaklasim
- **Iki modlu mimari**: Client-Side Rendering (CSR) ve Server-Side Rendering (SSR)
- **Stream Cache Server (SCS)**: Ozel streaming protokolu ve format
- **SC format**: Tessellated CAD verisi icin optimize edilmis ikili format
- **HOOPS Exchange**: 30+ CAD formatini import eden C++ kutuphanesi

### Client-Side Rendering (CSR) Modu
```
[CAD Dosyasi] -> [HOOPS Exchange] -> [SC Dosyasi (Server)]
                                           |
                                    [HTTP Streaming]
                                           |
                                    [WebGL Client]
                                      - Rendering
                                      - Selection
                                      - Measurement
```
- SC dosyalari statik HTTP sunucudan servis edilir
- Progressive streaming: Once bounding box, sonra geometri
- Tum rendering istemci tarafinda (WebGL)
- Offline calisma mumkun (SC dosyalari indirildiginde)

### Server-Side Rendering (SSR) Modu
```
[CAD Dosyasi] -> [HOOPS Exchange] -> [Stream Cache Server]
                                           |
                                    [Render Server GPU]
                                           |
                                    [Video/Image Stream]
                                           |
                                    [Thin Client (HTML5)]
```
- Sunucu GPU'sunda rendering yapilir
- Istemciye video stream veya image tile'lar gonderilir
- Mobil cihazlar icin ideal (dusuk GPU gereksinimi)
- Buyuk modeller icin (10M+ ucgen) tercih edilir

### Stream Cache Formati (SC)
- Hierarchical BVH (Bounding Volume Hierarchy) yapisi
- Her dugum icin bounding box + LOD bilgisi
- Geometry data: Vertex, normal, UV, index buffer'lar
- Metadata: Part ismi, renk, material, transform
- Compression: Draco benzeri geometri sikistrma

### Measurement Tools
- **Point-to-point**: Iki nokta arasi mesafe
- **Edge-to-edge**: Kenar mesafesi (minimum/maksimum)
- **Face-to-face**: Yuzey mesafesi
- **Angle measurement**: Yuzeyler arasi aci
- **Section cutting**: Kesit duzlemi ile goruntuleme
- **Snap system**: Vertex, edge midpoint, face center snap'leri

### Selection System
- **ID-based picking**: Her nesneye benzersiz renk atamasi (color picking)
- **GPU picking**: Offscreen framebuffer'a render, piksel rengi ile nesne tespiti
- **BVH traversal**: Ray-BVH intersection ile hizli aday eleme
- **Multi-level selection**: Part, body, face, edge, vertex seviyeleri

### Progressive Loading Stratejisi
1. Once model agaci (tree structure) yukle
2. Gorunen nesnelerin bounding box'larini yukle
3. Kameraya yakin nesnelerin geometrisini yukle
4. Arka plandaki nesneleri dusuk oncelikle yukle
5. Idle zamanlarda tam geometri yukle

### Guclu Yanlar
- CSR ve SSR arasinda secim esnekligi
- Cok olgun measurement ve annotation araclari
- 30+ CAD format destegi (HOOPS Exchange ile)
- Endustriyel olcekte kullanim (Boeing, Airbus, vb.)
- Progressive loading ile anlik yanit

### Zayif Yanlar
- Yuksek lisans maliyeti
- Stream Cache Server deployment karmasikligi
- Kapali kaynak - ozellestirme sinirli
- SSR modunda sunucu GPU maliyeti

### FikoYT'ye Uyarlanabilecek Teknikler
1. **GPU color picking**: Her nesneye benzersiz renk atayarak offscreen render ile secim (FikoYT'de zaten FikoGPUPicker.ts ile mevcut - genisletilebilir)
2. **Progressive loading stratejisi**: 5-asamali yukleme sirasi (agac -> bbox -> yakin geometri -> uzak -> idle)
3. **Hierarchical SC format**: BVH + LOD bilgisi iceren streaming format tasarimi
4. **Multi-level selection**: Part/Body/Face/Edge/Vertex seviye gecisleri
5. **Snap system**: Olcum araclari icin vertex/edge/face snap noktasi hesaplama

---

## 7. Ortak Paternler ve Karsilastirma

### Server-Side vs Client-Side Tessellation

| Yaklasim | Kim Kullaniyor | Avantaj | Dezavantaj |
|----------|---------------|---------|------------|
| **Server-side** | Onshape, Autodesk, CAD Exchanger | Istemci yuku dusuk, genis format | Latency, sunucu maliyeti |
| **Client-side (WASM)** | Shapr3D, IFC.js, FikoYT | Offline calisma, dusuk latency | WASM boyutu, bellek siniri |
| **Hibrit** | HOOPS (CSR+SSR) | Esneklik | Karmasiklik |

**FikoYT Konumu**: Client-side WASM (occt-import-js + Rust WASM). Bu iyi bir secim cunku:
- Offline calisma mumkun
- Sunucu maliyeti yok
- Dusuk gecikme suresi

### Progressive Loading / Streaming

Tum buyuk viewer'larin ortakligi:
1. **Once metadata**: Model agaci, parca isimleri, bounding box'lar
2. **Sonra gorunen geometri**: Kamera frustum'undaki nesneler oncelikli
3. **Son olarak detay**: Yuksek LOD, edge'ler, texture'lar

FikoYT icin oneri:
```
Aşama 1: Model ağacı + bounding box'lar (anında göster)
Aşama 2: Frustum içindeki parçaların düşük LOD mesh'leri
Aşama 3: Yüksek LOD mesh + edge rendering
Aşama 4: Idle zamanında arka plan parçaları
```

### Level-of-Detail (LOD) Hiyerarsileri

| Viewer | LOD Yaklasimi |
|--------|---------------|
| Onshape | Server-computed multi-LOD tessellation |
| Autodesk SVF2 | Screen-space error + mesh consolidation |
| HOOPS | BVH-based progressive LOD |
| IFC.js | Fragment-based visibility toggle |
| FikoYT | FikoAdvancedLOD + FikoAggressiveLOD |

**En etkili teknikler**:
- **Screen-space error metric**: Ekranda N pikselden kucuk -> basit LOD
- **Mesh consolidation**: Kucuk mesh'leri buyuk batch'te birlestirme (Autodesk SVF2)
- **Geometry instancing**: Ayni mesh'i farkli transform'larla render (tum viewer'lar)

### GPU Memory Management

Ortak stratejiler:
1. **Texture atlasing**: Birden fazla texture'i tek GPU texture'ina birlestirme
2. **Buffer pooling**: GPU buffer'larini yeniden kullanma (allocation onleme)
3. **LOD-based unloading**: Uzaktaki nesnelerin yuksek LOD verilerini GPU'dan kaldirma
4. **Compressed geometry**: Draco/Meshopt ile sikistirilmis geometri, GPU'da acimlama
5. **Virtual geometry**: Nanite-benzeri (Unreal) - FikoYT icin gelecek hedef olabilir

### Selection Optimization

| Teknik | Hiz | Dogruluk | Kim Kullaniyor |
|--------|-----|----------|----------------|
| **GPU color picking** | Cok hizli | Piksel dogruluk | HOOPS, FikoYT |
| **BVH raycasting** | Hizli | Geometri dogruluk | FikoYT, Three.js |
| **WASM batch** | En hizli | Yaklasik | FikoYT (benzersiz) |
| **Octree** | Hizli | Geometri dogruluk | xBIM |

FikoYT'nin 3-katmanli secim sistemi (WASM -> GPU -> CPU) endustrinin en iyi uygulamalariyla uyumlu.

### Tile-Based Rendering

- **Autodesk**: 2D cizimler icin tile-based rendering (Google Maps benzeri)
- **HOOPS SSR**: Sunucu tarafinda tile rendering + istemciye streaming
- **FikoYT**: Henuz kullanilmiyor. 2D cizim goruntulemesi icin degerlendirilmeli

---

## 8. FikoYT Icin Oncelikli Iyilestirme Onerileri

### Yuksek Oncelik (Kisa Vade)

#### 1. Mesh Deduplication (SVF2 Ilhami)
Ayni geometriyi tespit edip tek kopya tutma. SVF2'de %86'ya varan boyut azalma saglandi.
```
Uygulama: FikoImporter.STP.ts'de mesh hash hesaplama
-> Ayni hash = ayni InstancedMesh referansi
-> GPU bellek %30-80 azalma potansiyeli
```

#### 2. Progressive Loading Pipeline (HOOPS Ilhami)
5-asamali yukleme sistemi:
```
1. Model agaci (BVH) -> aninda goruntulenebilir
2. Bounding box'lar -> frustum culling baslasin
3. Yakin parcalarin dusuk LOD mesh'leri
4. Yuksek LOD + edge data
5. Idle: Arka plan parcalari
```

#### 3. IndexedDB Geometri Cache (Autodesk Ilhami)
Daha once import edilmis STEP dosyalarinin tessellated mesh'lerini IndexedDB'de onbellekleme:
```
- Hash(STEP dosyasi) -> Cached mesh data
- Tekrar import'ta aninda yukleme
- TTL-based cache expiry
```

### Orta Oncelik (Orta Vade)

#### 4. Mesh Consolidation (Autodesk SVF2 Ilhami)
Kucuk mesh'leri buyuk buffer'lara birlestirerek draw call azaltma:
```
1000 kucuk parca x 1 draw call = 1000 draw call
vs.
10 consolidated buffer x 1 draw call = 10 draw call
```

#### 5. Multi-Level Selection (HOOPS Ilhami)
Part -> Body -> Face -> Edge -> Vertex seviye gecisleri:
```
- Tek tikla: Part sec
- Cift tikla: Body sec
- Uclu tikla: Face sec
- Shift+tikla: Edge sec
```

#### 6. Fragment-Based Model Yonetimi (IFC.js Ilhami)
Buyuk modelleri tip-bazli fragment'lere ayirma:
```
[Tum Model]
  -> [Vidalar Fragment] (InstancedMesh)
  -> [Plakalar Fragment] (InstancedMesh)
  -> [Boru Fragment] (InstancedMesh)
  -> Toplu gizle/goster/sec
```

### Dusuk Oncelik (Uzun Vade)

#### 7. WebGPU Gecisi
Three.js WebGPURenderer destegi ile:
- Compute shader'lar (tessellation, BVH yapimi)
- Indirect draw calls
- Daha iyi memory management

#### 8. Streaming Format Tasarimi
FikoYT icin ozel streaming format (SC/SVF2 benzeri):
```
Header: Model agaci + metadata
Chunk 1: BVH + bounding box'lar
Chunk 2-N: LOD-sorted geometry chunks
Footer: Edge data + annotations
```

#### 9. Server-Side Rendering Opsiyonu (HOOPS SSR Ilhami)
Mobil cihazlar veya cok buyuk modeller icin:
- Go backend'de headless rendering (osmesa/EGL)
- Image/video stream istemciye
- Fallback olarak (normal mod CSR)

---

## 9. Sonuc ve Karsilastirmali Pozisyon

```
                    Server Yuku    Istemci Yuku    Format     Offline
Onshape             ■■■■■          ■              B-Rep      Hayir
Shapr3D             ■              ■■■■■          B-Rep      Evet
Autodesk Viewer     ■■■■           ■■             Mesh       Kismi
HOOPS CSR           ■■             ■■■■           Mesh       Evet
HOOPS SSR           ■■■■■          ■              Stream     Hayir
IFC.js              ■              ■■■■           IFC/Mesh   Evet
xBIM                ■■             ■■■            WexBIM     Kismi
CAD Exchanger       ■■■            ■■■            Multi      Kismi
FikoYT (Mevcut)     ■              ■■■■■          STEP/Mesh  Evet
```

FikoYT, Shapr3D ve IFC.js ile ayni kategoride - istemci agirlikli, WASM destekli mimari. Bu mimari kucuk-orta olcekli modeller icin ideal. Buyuk modeller (10M+ ucgen) icin progressive loading ve mesh deduplication en kritik iyilestirmeler olacaktir.
