gs_catalog_html — DRIVE gsplat op

• Data kinds: table → table

• Call: import fullseye as fs; fs.ledger.gs_catalog_html(items, out_path=None, *, title='3DGS catalogue', lang=('ja', 'en', 'zh', 'tw', 'ko', 'de', 'hi', 'fr'), up=(0.0, 0.0, 1.0), bg: 'str' = 'gray', max_bytes: 'int' = 16777216, unit_mm: 'float' = 1000.0, fov_deg: 'float' = 35.0, thumb_px: 'int' = 256, dims=True, spin: 'bool' = True, spin_deg_per_s: 'float' = 20.0, bake_light=(0.3, -0.5, 0.8), ambient: 'float' = 0.35, max_radius: 'int' = 64, mobile_quality=0.5, mobile_above: 'int' = 300000) -> 'dict' (to call the implementation directly, import gsviewer; gsviewer.gs_catalog_html(items, out_path=None, *, title='3DGS catalogue', lang=('ja', 'en', 'zh', 'tw', 'ko', 'de', 'hi', 'fr'), up=(0.0, 0.0, 1.0), bg: 'str' = 'gray', max_bytes: 'int' = 16777216, unit_mm: 'float' = 1000.0, fov_deg: 'float' = 35.0, thumb_px: 'int' = 256, dims=True, spin: 'bool' = True, spin_deg_per_s: 'float' = 20.0, bake_light=(0.3, -0.5, 0.8), ambient: 'float' = 0.35, max_radius: 'int' = 64, mobile_quality=0.5, mobile_above: 'int' = 300000) -> 'dict'; from the registry, opsdrive.get("gs_catalog_html"))

• GPU: none (CPU reference implementation only)

Usage

Writes a single self-contained catalogue HTML page where several 3DGS models are chosen from a list of thumbnails and viewed.

> The detailed description below is the original text — the summary and the headings are translated.

各品のサムネイルは gsplatnp.gs_render(numpy の EWA 描画)が、ページの最初の視点と同じカメラで描いた PNG (thumb_px 四方)。押すと同じページの中で 3-D の表示に切り替わり、「一覧に戻る」(Esc でも)で戻る。データは選ばれた品の分だけ DecompressionStream で伸ばし、切り替えると前の品のテクスチャ・バッファを解放する。容量の上限 max_bytes は全体で、品ごとの割り当て = (上限 − ページ − サムネイル) をガウシアンの数に比例して配る。

割り当てを超える品は gs_viewer_html と同じ順で間引き、品ごとの記録を返す。

Parameters

items : list of dict

{"gs": dict | "path": str, "name": str|{lang}, "desc": str|{lang}, "note": str|{lang}, "hotspots": [...], "camera": {...}}。name は必須。

out_path, title, lang, up, bg, max_bytes, unit_mm, fov_deg, dims, spin, bake_light, ambient, max_radius, mobile_quality :

gs_viewer_html と同じ。

thumb_px : int

サムネイルの 1 辺(画素)。

Returns

dict

path・bytes・items(品ごとの n_input / n_kept / n_dropped / thinned / dims_mm /

thumb_bytes / camera)・n_dropped_total・external_urls(= 0)。out_path が None なら html も。

Raises

ValueError

items が空・name が無い・gs と path のどちらも無い、ほかは gs_viewer_html と同じ。

空の入力(items が空の list)は ValueError。

Examples

>>> import gsviewer

>>> r = gsviewer.gs_catalog_html([{"path": "mug.ply", "name": "Mug"}, {"path": "shoe.splat", "name": "Shoe"}],

... "catalog.html", title="Shop") # doctest: +SKIP

References (sample data, literature)

• Sample-data catalog (download URLs / licences) — 2-D uses skimage.data (BSD/public domain) plus synthetic images; 3-D lists download URLs for real data sources (Stanford, PDS, …).

• Operator provenance and references — the sources of the research/methods this op family came from.

• The canonical algorithm (author, year) and its uses are named in the family usage guide above.

Runnable examples (verified samples that actually call this op)

• gsplat_product_viewer — py -3.11 examples/gsplat_product_viewer.py

Ops the type connects to (they accept table as input)

course_layout · course_occupancy · course_contains · world_build · world_camera · world_move · lidar_scan · rss_longitudinal_same

Same category (gsplat)

gs_from_world · gs_update · gs_render · gs_render_fn · gs_read_file · gs_viewer_html


*Provenance: gsviewer.py — DRIVE operator registry. This per-op note is generated by tools/opdocs.py md (do not hand-edit).*

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.