# vsoptomech/vkquicklook architecture

> Architecture diagram of the GitHub repository vsoptomech/vkquicklook, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-25). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/vsoptomech/vkquicklook
- Repository: https://github.com/vsoptomech/vkquicklook

## Overview

VKQuickLook is a native macOS viewer for Keyence VK4/VK6 measurement files. Its main workflow begins in Finder: the thumbnail provider or Quick Look preview controller requests a render, and the shared renderer returns an image and metadata for display. VK4 rendering selects embedded RGB layers according to thumbnail or preview priorities; VK6 rendering uses the container’s wrapper BMP preview. A command-line renderer invokes the same native implementation for diagnostics. The renderer excerpt is partial, so finer parsing and image-processing links are omitted where not evidenced.

Main entry points: [`macos/QuickLook/Sources/Shared/NativeVKRenderer.swift`](https://github.com/vsoptomech/vkquicklook/blob/public-main/macos/QuickLook/Sources/Shared/NativeVKRenderer.swift) (Native renderer), [`macos/QuickLook/Sources/Shared/RendererService.swift`](https://github.com/vsoptomech/vkquicklook/blob/public-main/macos/QuickLook/Sources/Shared/RendererService.swift) (Renderer service), [`macos/QuickLook/Sources/ThumbnailExtension/ThumbnailProvider.swift`](https://github.com/vsoptomech/vkquicklook/blob/public-main/macos/QuickLook/Sources/ThumbnailExtension/ThumbnailProvider.swift) (Thumbnail provider), [`macos/QuickLook/Sources/PreviewExtension/PreviewViewController.swift`](https://github.com/vsoptomech/vkquicklook/blob/public-main/macos/QuickLook/Sources/PreviewExtension/PreviewViewController.swift) (Preview controller)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["User entry points"]
  node_thumbnail_provider["Thumbnail provider"]
  node_preview_controller["Preview controller"]
  node_cli_renderer["Render CLI"]
end

subgraph group_render["Shared rendering"]
  node_renderer_service["Renderer service"]
  node_native_renderer["Native renderer"]
  node_vk4_layers["VK4 RGB layers"]
  node_vk6_preview["VK6 BMP preview"]
  node_render_asset["PNG and metadata"]
end

subgraph group_host["macOS host"]
  node_app_host["App host"]
end

node_finder(("Finder"))
node_quicklook(("Quick Look"))
node_cli_user(("CLI user"))
node_vk_file["VK4/VK6 file"]

node_finder -->|"requests thumbnail"| node_thumbnail_provider
node_quicklook -->|"requests preview"| node_preview_controller
node_thumbnail_provider -->|"requests render"| node_renderer_service
node_preview_controller -->|"requests render"| node_renderer_service
node_renderer_service -->|"dispatches render"| node_native_renderer
node_cli_user -->|"invokes mode"| node_cli_renderer
node_cli_renderer -->|"calls render"| node_native_renderer
node_native_renderer -->|"reads file"| node_vk_file
node_native_renderer -->|"selects VK4 layers"| node_vk4_layers
node_native_renderer -->|"loads VK6 preview"| node_vk6_preview
node_native_renderer -->|"writes image and metadata"| node_render_asset
node_renderer_service -->|"returns asset"| node_render_asset
node_thumbnail_provider -->|"uses image URL"| node_render_asset
node_preview_controller -->|"displays image and summary"| node_render_asset

click node_thumbnail_provider "https://github.com/vsoptomech/vkquicklook/blob/public-main/macos/QuickLook/Sources/ThumbnailExtension/ThumbnailProvider.swift"
click node_preview_controller "https://github.com/vsoptomech/vkquicklook/blob/public-main/macos/QuickLook/Sources/PreviewExtension/PreviewViewController.swift"
click node_cli_renderer "https://github.com/vsoptomech/vkquicklook/blob/public-main/macos/QuickLook/Sources/CLI/VKQuickLookRender.swift"
click node_renderer_service "https://github.com/vsoptomech/vkquicklook/blob/public-main/macos/QuickLook/Sources/Shared/RendererService.swift"
click node_native_renderer "https://github.com/vsoptomech/vkquicklook/blob/public-main/macos/QuickLook/Sources/Shared/NativeVKRenderer.swift"
click node_vk4_layers "https://github.com/vsoptomech/vkquicklook/blob/public-main/macos/QuickLook/Sources/Shared/NativeVKRenderer.swift"
click node_vk6_preview "https://github.com/vsoptomech/vkquicklook/blob/public-main/macos/QuickLook/Sources/Shared/NativeVKRenderer.swift"
click node_render_asset "https://github.com/vsoptomech/vkquicklook/blob/public-main/macos/QuickLook/Sources/Shared/RendererService.swift"
click node_app_host "https://github.com/vsoptomech/vkquicklook/blob/public-main/macos/QuickLook/Sources/App/VKQuickLookApp.swift"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_thumbnail_provider,node_preview_controller,node_cli_renderer,node_cli_user toneBlue
class node_renderer_service,node_native_renderer,node_vk4_layers,node_vk6_preview,node_render_asset toneAmber
class node_app_host toneMint
class node_finder,node_quicklook,node_vk_file toneIndigo
```

## Components

### User entry points

- [Thumbnail provider](https://github.com/vsoptomech/vkquicklook/blob/public-main/macos/QuickLook/Sources/ThumbnailExtension/ThumbnailProvider.swift): `macos/QuickLook/Sources/ThumbnailExtension/ThumbnailProvider.swift`
- [Preview controller](https://github.com/vsoptomech/vkquicklook/blob/public-main/macos/QuickLook/Sources/PreviewExtension/PreviewViewController.swift): `macos/QuickLook/Sources/PreviewExtension/PreviewViewController.swift`
- [Render CLI](https://github.com/vsoptomech/vkquicklook/blob/public-main/macos/QuickLook/Sources/CLI/VKQuickLookRender.swift): `macos/QuickLook/Sources/CLI/VKQuickLookRender.swift`

### Shared rendering

- [Renderer service](https://github.com/vsoptomech/vkquicklook/blob/public-main/macos/QuickLook/Sources/Shared/RendererService.swift): `macos/QuickLook/Sources/Shared/RendererService.swift`
- [Native renderer](https://github.com/vsoptomech/vkquicklook/blob/public-main/macos/QuickLook/Sources/Shared/NativeVKRenderer.swift): `macos/QuickLook/Sources/Shared/NativeVKRenderer.swift`
- [VK4 RGB layers](https://github.com/vsoptomech/vkquicklook/blob/public-main/macos/QuickLook/Sources/Shared/NativeVKRenderer.swift): `macos/QuickLook/Sources/Shared/NativeVKRenderer.swift`
- [VK6 BMP preview](https://github.com/vsoptomech/vkquicklook/blob/public-main/macos/QuickLook/Sources/Shared/NativeVKRenderer.swift): `macos/QuickLook/Sources/Shared/NativeVKRenderer.swift`
- [PNG and metadata](https://github.com/vsoptomech/vkquicklook/blob/public-main/macos/QuickLook/Sources/Shared/RendererService.swift): `macos/QuickLook/Sources/Shared/RendererService.swift`

### macOS host

- [App host](https://github.com/vsoptomech/vkquicklook/blob/public-main/macos/QuickLook/Sources/App/VKQuickLookApp.swift): `macos/QuickLook/Sources/App/VKQuickLookApp.swift`

### Other components

- **Finder**
- **Quick Look**
- **CLI user**
- **VK4/VK6 file**

## Connections

- Finder → Thumbnail provider: requests thumbnail
- Quick Look → Preview controller: requests preview
- Thumbnail provider → Renderer service: requests render
- Preview controller → Renderer service: requests render
- Renderer service → Native renderer: dispatches render
- CLI user → Render CLI: invokes mode
- Render CLI → Native renderer: calls render
- Native renderer → VK4/VK6 file: reads file
- Native renderer → VK4 RGB layers: selects VK4 layers
- Native renderer → VK6 BMP preview: loads VK6 preview
- Native renderer → PNG and metadata: writes image and metadata
- Renderer service → PNG and metadata: returns asset
- Thumbnail provider → PNG and metadata: uses image URL
- Preview controller → PNG and metadata: displays image and summary
