panel-image

GitHub

解析ThreeDeeRender中ImageMode面板机制,涵盖Worker解码、相机投影及标注渲染。

.github/skills/panel-image/SKILL.md lichtblick-suite/lichtblick

Trigger Scenarios

询问3D面板图像显示原理 查询Worker图片解码流程 了解相机模型与标注叠加逻辑

Install

npx skills add lichtblick-suite/lichtblick --skill panel-image -g -y
More Options

Non-standard path

npx skills add https://github.com/lichtblick-suite/lichtblick/tree/develop/.github/skills/panel-image -g -y

Use without installing

npx skills use lichtblick-suite/lichtblick@panel-image

指定 Agent (Claude Code)

npx skills add lichtblick-suite/lichtblick --skill panel-image -a claude-code -g -y

安装 repo 全部 skill

npx skills add lichtblick-suite/lichtblick --all -g -y

预览 repo 内 skill

npx skills add lichtblick-suite/lichtblick --list

SKILL.md

Frontmatter
{
    "name": "panel-image",
    "description": "Deep Image panel knowledge: the panel is ThreeDeeRender's ImageMode SceneExtension, WorkerImageDecoder pipeline, camera-model projection (pinhole\/fisheye), and annotation overlays."
}

Panel Image Skill

The Image panel is not a separate panel — it is a specialized mode of the 3D panel (ThreeDeeRender) that uses a 2D camera projection.

Architecture

ImagePanel (re-export wrapper, panels/Image/)
    │
    ▼
ThreeDeeRender (Renderer.ts)
    │
    ▼
ImageMode SceneExtension
    │
    ├── WorkerImageDecoder (JPEG/PNG/… in a Worker)
    ├── Camera-model projection (pinhole, fisheye, …)
    └── Annotation overlays (boxes, points, text)

Core Components

File Role
renderables/Images/ImageMode.ts SceneExtension for image display
renderables/Images/WorkerImageDecoder.ts Worker-based image decoding (Comlink)
renderables/Images/WorkerImageDecoder.worker.ts Worker-side decode implementation
renderables/Images/annotations/ Overlay rendering (boxes, points, text)

Image Decoding Pipeline

  1. Raw image message arrives (compressed JPEG/PNG or raw bytes)
  2. Sent to WorkerImageDecoder via Comlink (off the main thread)
  3. Decoded to an ImageBitmap or raw pixel buffer
  4. Applied as a THREE.js texture on a plane geometry
  5. The camera model determines UV mapping (handles distortion)

Camera Models

  • Pinhole — standard perspective projection
  • Fisheye — equidistant / equisolid / stereographic projections
  • Custom — extensions register additional models via installedCameraModels

CameraInfo intrinsics map pixels to 3D rays correctly.

Annotations

Overlaid on the image plane as THREE.js objects in screen space: bounding boxes (with labels), point annotations, and text overlays.

Performance Notes

  • JPEG/PNG decompression is CPU-heavy → always in a Worker
  • ImageBitmap enables a GPU-side decode path in supported browsers
  • Large images (4K+) strain GPU memory — consider downscaling
  • At high frame rates, skip decode if the previous frame isn't yet displayed

Key Files

  • packages/suite-base/src/panels/ThreeDeeRender/renderables/Images/
  • packages/suite-base/src/panels/ThreeDeeRender/renderables/Images/WorkerImageDecoder.ts
  • packages/suite-base/src/panels/Image/ (re-export wrapper)

Skills Reference

  • For 3D rendering fundamentals: load 3d-rendering skill
  • For Worker patterns (image decode): load web-workers skill

Version History

  • cab9317 Current 2026-07-24 12:17

Same Skill Collection

.github/skills/3d-rendering/SKILL.md
.github/skills/caching-internals/SKILL.md
.github/skills/deserialization/SKILL.md
.github/skills/e2e-playwright-mcp/SKILL.md
.github/skills/electron-internals/SKILL.md
.github/skills/extensions-internals/SKILL.md
.github/skills/layouts-internals/SKILL.md
.github/skills/mcap-format/SKILL.md
.github/skills/message-path/SKILL.md
.github/skills/message-pipeline/SKILL.md
.github/skills/panel-extension-api/SKILL.md
.github/skills/panel-log/SKILL.md
.github/skills/panel-map/SKILL.md
.github/skills/panel-raw-messages/SKILL.md
.github/skills/panel-state-transitions/SKILL.md
.github/skills/panel-user-scripts/SKILL.md
.github/skills/performance/SKILL.md
.github/skills/player-internals/SKILL.md
.github/skills/plot-internals/SKILL.md
.github/skills/remote-caching/SKILL.md
.github/skills/test-conventions/SKILL.md
.github/skills/theme/SKILL.md
.github/skills/unit-testing/SKILL.md
.github/skills/web-workers/SKILL.md
.github/skills/websocket-connection/SKILL.md

Metadata

Files
0
Version
cab9317
Hash
9e5872d7
Indexed
2026-07-24 12:17

Accueil - Wiki
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-08-08 23:14
浙ICP备14020137号-1 $Carte des visiteurs$