Skip to content

Method camera rendering, viewport preview, capability-gated GUI, shared eval#1407

Open
MrNeRF wants to merge 1 commit into
feat/method-modules-contractfrom
feat/method-modules-preview
Open

Method camera rendering, viewport preview, capability-gated GUI, shared eval#1407
MrNeRF wants to merge 1 commit into
feat/method-modules-contractfrom
feat/method-modules-preview

Conversation

@MrNeRF

@MrNeRF MrNeRF commented Jul 10, 2026

Copy link
Copy Markdown
Owner

Stacked on #1406. Makes external training methods visible and comparable:

  • render_camera(request) -> {rgb, depth?, alpha?} on IMethodSession; frames publish through the existing CUDA-tensor -> Vulkan viewport upload (generation-based cache, latest-frame retention on resize; methods never touch Vulkan).
  • The method branch in renderVulkanFrame is inert unless an external session advertises FramePreview; the 3dgs viewport path is unchanged (verified: 7k MCMC + eval smoke, PSNR 22.76/SSIM 0.598 on bicycle images_4).
  • Capability-gated GUI: method display name + read-only options in the training panel, primitive-noun labels, checkpoint controls hidden without HostCheckpointIO.
  • MetricsEvaluator renders via callback; methods with HostEvaluation get the same validation-camera PSNR/SSIM protocol (final evaluation after the session run).
  • lichtfeld.trainer_method_info() exposes the active descriptor to Python plugins.

Verified end-to-end with an out-of-tree module via -DLFS_METHOD_PATHS: camera-dependent frames render live in the viewport and final eval produces a report.

Methods advertising FramePreview render camera-dependent CUDA frames that
publish through the existing tensor->Vulkan viewport path; the GUI hides
3dgs-only controls by capability and labels counts with the method's
primitive noun. MetricsEvaluator renders via a callback so methods reuse
the validation PSNR/SSIM protocol; the 3dgs path is unchanged.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant