Desktop application
Video
Intuitive light field creator, viewer, and neural field trainer.

LightField / Neural

Capture a scene, then walk through its recorded light. Direct ray-field modes reveal both convincing views and surreal seams, layers and gaps; those artifacts are part of the visual exploration. Refocus the same observations or fit NeRF, Instant-NGP and Gaussian splats to compare another way of carrying the scene.

Explore connections Brochure · 10 chapters ↓
Recorded rays → a view through the field
SampleRenderRefocus
Native path-traced reference: copper GGX, glass, mirror and an anisotropic metal plinth. 640 × 640, 1,024 samples per pixel. This image is the source scene, not a learned reconstruction.
Native path-traced reference: copper GGX, glass, mirror and an anisotropic metal plinth. 640 × 640, 1,024 samples per pixel. This image is the source scene, not a learned reconstruction.
An implemented pipeline

One capture, several ways to render a scene

One set of observations supports faithful reconstruction and an exploration of its artifacts. Direct ray-field rendering, synthetic optics and learned models expose different ways to extend the captured views.

  1. 01

    Capture directional samples

    Render a calibrated camera rig; every image stores colors indexed by direction at a known position.

  2. 02

    Enter the ray field

    Move a virtual camera among the sample positions and render from the captured directional images.

  3. 03

    Reshape the view

    Change matching, focus and aperture; explore both aligned views and the layers or seams that appear between samples.

  4. 04

    Learn another representation

    Fit NeRF or Gaussian splats to the observations and explore a saved checkpoint.

  5. 05

    Compare the same camera

    Inspect raw-ray synthesis, learned appearance and the source scene at a corresponding view.

Light-field rendering

A visible field of directional sources

Calibrated capture positions and their directional images become the data for a free-camera renderer, with sample markers and ray coverage visible.

Geometric intuition

Optics expressed as data operations

Ray matching and synthetic aperture turn camera motion, focus and blur into operations on the recorded views. Epipolar slices expose their parallax geometry.

Surreal exploration

The artifacts have a visual language

Narrow matching, nearest-view selection and proxy-depth blending produce different seams, fragments and layers. Camera coverage explains which parts of a new view remain constrained.

Neural comparison

Explicit rays meet learned appearance

The native viewer coordinates Python jobs, saved NeRF/GS models and matched-camera inspection, keeping the original field available beside the learned representation.

Capabilities / connected systems

Read the system by what it makes possible

Related techniques belong to one family. Follow a family into the interface, recorded results and mathematical detail.

01 / 03

Recorded light, ray geometry & virtual optics

Direct ray-field rendering makes the sample geometry visible: convincing views, surreal fragments, and focus or aperture changes all come from querying the captured field.

Virtual directional sourcesVisible ray geometryConfigurable camera rigsSynthetic aperture and refocusInterpolation and epipolar views
Feature set · 5 capabilities
  • Virtual directional sourcesEach calibrated capture position carries a directional image that the free-camera renderer queries and blends.
  • Visible ray geometryCamera markers, a scene map and coverage views connect sample selection to the synthesized image.
  • Configurable camera rigsPlanar, look-at, ring, sphere, cap and parabolic layouts change where positions and directions are sampled.
  • Synthetic aperture and refocusCombine captured views toward a chosen focus plane and vary the participating aperture region.
  • Interpolation and epipolar viewsRay matching, proxy-depth blending and image/view slices expose how sample geometry becomes visible parallax and blur.
02 / 03

Neural representations & training orchestration

Retain the explicit light field while learning two alternative representations of its observations: neural radiance functions and spatial Gaussian primitives.

NeRF representationGaussian primitivesTraining job controlsProgress and checkpoints
Feature set · 4 capabilities
  • NeRF representationDensity and view-dependent color are learned along rays with coarse/fine sampling and checkpointed training.
  • Gaussian primitivesA reference gsplat integration and a separate experimental route represent appearance with projected spatial Gaussians.
  • Training job controlsThe C++ interface launches Python jobs with dataset, method, backend and profile settings.
  • Progress and checkpointsStatus files, subprocess output, previews, queues and saved models make each training stage observable.
03 / 03

Matched views, live inspection & evaluation

Move a corresponding camera through direct light-field synthesis, learned appearance and the source scene, then evaluate with explicit image identities.

Matched camera viewsThree-way camera inspectionExplicit image correspondenceAvailable metrics only
Feature set · 4 capabilities
  • Matched camera viewsCaptured Cornell images and saved test renders are paired at known cameras, with training budgets stated alongside them.
  • Three-way camera inspectionFollow an inspection camera through the source scene, raw light-field parameterization and supported neural checkpoint renderer.
  • Explicit image correspondenceEvaluation manifests name each camera, render and reference, preventing silent shifts between filename conventions.
  • Available metrics onlyMissing LPIPS remains unavailable; per-view errors and coverage context qualify aggregate quality scores.
Technical brochure · 10 chapters

Inside LightField / Neural

LightField / Neural makes captured light explorable: move among recorded directional images, change how neighboring views blend, and refocus the array. Convincing reconstruction matters, but so does the surreal side—the seams, layers and fragments that appear between observations. Direct light-field modes are complete experiments in their own right; NeRF and Gaussian splatting offer additional representations of the same samples.

Description · what it doesExplanation · how it worksTheory · equations & assumptions

Scan the descriptions and figures, or open a layer for the implementation and mathematical detail.

Capability family

Recorded light, ray geometry & virtual optics

Direct ray-field rendering makes the sample geometry visible: convincing views, surreal fragments, and focus or aperture changes all come from querying the captured field.

01 · Core idea

A scene carried by sampled light

Description · at a glance

A photograph records directional information at one viewpoint. A calibrated collection records it at many positions. The workbench places those samples back into space and lets a virtual camera move through them: recorded images become the material from which another image is rendered.

The virtual-source interpretation makes the geometry visible. Each sample position carries many directional colors, rather than one uniform light intensity. Moving the viewer, blending neighboring samples or changing the synthetic aperture produces parallax and focus effects directly from this field. NeRF and Gaussian splatting extend the study with learned representations; the raw light-field renderer is a complete experiment in its own right.

Image A path-traced Cornell observation at the first test camera. The source scene, image and calibration remain available for comparison with learned representations.
Video Native ray-space walkthrough: move the inspection camera around the captured Cornell observations while the rig map, sample markers and matching controls stay visible. This recording shows direct image-based reconstruction, not a trained neural model.
ExplanationWhat a virtual source storesA calibrated position plus a directional image, queried to reconstruct the virtual camera image.

The GLSL renderer reads a texture array of captured images together with camera transforms and intrinsics. A query direction is transformed into a captured camera frame and projected to a texture coordinate. Candidate views are checked against sidedness and image bounds, then their stored RGB samples are combined.

This resembles replaying the recorded appearance from virtual directional sources. It is an image-based representation: the shader does not turn each capture position into an inverse-square point light, trace illumination from those points to new surfaces, or solve a new lighting configuration.

The capture metadata distinguishes single-sided and bidirectional sampling. In the bidirectional convention, the viewer can reuse the same sensor image along the continued line through the pinhole. This is a representation convention, not a second independently measured view of the scene.

Keeping the source scene and camera calibration also makes a second question possible: whether a missing surface, a wide interpolation kernel or an imperfect learned fit explains a visible error. The Cornell results retain that comparison without reducing the light field to a preprocessing check.

C^(r)=∑iwi(r) ci(r)∑iwi(r)\widehat C(\mathbf r)=\frac{\sum_i w_i(\mathbf r)\,\mathbf c_i(\mathbf r)}{\sum_i w_i(\mathbf r)}
For a ray r with contributing samples, the renderer normalizes their stored RGB colors c_i by interpolation weights w_i. The mode determines the selected views, directional or proxy-point lookup and weights. These weights describe image synthesis, not source power; a ray without contributing samples receives the background color.
Source evidenceDirectional lookup, projection and normalized blendingoffline_projs/LightField_Neural/viewer/shaders/light_field_rayspace.fragCamera metadata, texture layers and preview selectionoffline_projs/LightField_Neural/viewer/src/rayspace_view.cpp
02 · Reconstruction and surrealism

Keep the view. Explore the gaps.

Description · at a glance

A sparse field does more than blur. Nearest-view selection breaks it into territories; a wider matching kernel lets images overlap; a proxy-depth sweep stretches them into layers. These modes expose different visual structures in the same observations, before any neural model is fitted.

I treat those artifacts as material to explore, much as in the photon-primitive studies. The artistic question is where to preserve a recognizable view and where to let the representation become strange. Missing observations still limit reconstruction: a striking extension is not evidence that an unseen view is physically correct.

Image Existing native Soft-3D mode, using a 16-step proxy-depth sweep. Overlapping image layers are visible: a property of this direct ray-field interpretation, without a neural fit or a recovered surface.
ExplanationA function-extension directionPreserve chosen views, explore the continuation elsewhere. This is a design direction, not an implemented protected-region control.

A finite capture constrains only part of ray space. One possible artistic extension would keep a chosen base reconstruction on protected rays and blend toward another continuation elsewhere. A mask equal to one on the protected set would preserve that base exactly there; its transition region would determine how the effect joins the scene.

The current native modes already offer different lookups and blends. They do not yet provide this protection mask or certify agreement with every measured ray. Such a control would need explicit reference-view checks; interpolation, finite footprints and noisy captures already affect the base reconstruction.

Lext(r)=m(r)Lbase(r)+[1−m(r)]A(r)L_{\mathrm{ext}}(r)=m(r)L_{\mathrm{base}}(r)+[1-m(r)]A(r)
Proposed construction: m=1 keeps a chosen base view; m=0 uses an artistic continuation A. This preserves the base where specified, not unknown ground truth.
03 · Saved models · ready to explore

Copper, glass and a cloud

Description · at a glance

Two captured scenes take the experiment beyond the Cornell box. Copper and glass pairs moving reflections with a brushed-metal plinth; Cloud on brushed metal replaces the central surface with an actual heterogeneous participating medium. The native renderer supplies the observations. The learned models reproduce their appearance with different compromises.

The copper rig records 224 views around a full orbit. The cloud rig uses 147 overlapping views across a front arc from −75° to +75°. Both capture 192 × 192 images at 128 samples per pixel. These modest input images keep training practical; a larger output does not create missing source detail.

The saved Gaussian, Instant-NGP and NeRF checkpoints can open directly in Model Viewer. For recording, use the Gaussian model for smoother camera movement; the PyTorch neural renderers suit slow moves and settled views. The native reference remains available alongside each approximation. Reflection blur, splat artifacts and uncaptured viewpoints are part of the comparison.

Image Native path-traced reference: copper GGX, glass, mirror and an anisotropic metal plinth. 640 × 640, 1,024 samples per pixel. This image is the source scene, not a learned reconstruction.
Image Novel camera through the trained Gaussian model: 12,000 steps from 224 captured views. Reflections remain recognizable; thin strips, disocclusions and the plinth expose splat artifacts. 384 × 384 output from 192-pixel source views.
Image Native path-traced reference: a heterogeneous participating medium above brushed metal, with reflective and refractive neighbors. 640 × 640, 1,024 samples per pixel.
Image NeRF after 6,000 steps, rendered from a new camera within the captured front arc. It reproduces the cloud’s broad appearance but softens geometry and highlights. Learned density is not a recovered physical extinction field.
Explanation · 1 media examplesA hash field of the same copper sceneThe saved Instant-NGP checkpoint supplies a third representation, with a different speed/quality compromise.

This project’s PyTorch hash-grid implementation is not the fused CUDA Instant-NGP renderer. It supports settled neural views here; the Gaussian model is the practical first choice for moving-camera recordings. Blur and reduced detail remain visible even after the longer training run.

Image Instant-NGP at 12,000 steps, rendered with the actual native viewer server from a novel camera. 384 × 384 output; the same 224-view copper capture as the Gaussian model.
04 · Synthetic acquisition

Place the samples that carry the light field

Capture generates images from a configured family of cameras. The implementation supports planar grids, look-at planar grids, rings, spheres, spherical caps and parabolic arrangements. A rig carries positions, orientation rules, field of view, resolution and sampling settings. Capture metadata records the resulting views and sidedness so the inspection tools can interpret the array.

A planar array gives the field a clear spatial grid; ring and sphere layouts distribute directional views around a region. The scene map and camera markers make this arrangement part of the rendered experience. Changing the baseline or orientation changes the ray samples available to a moving viewer, connecting acquisition choices to parallax, overlap and disocclusion.

Scene presets coordinate acquisition and training settings, but capture and training remain explicit operations. This is useful when revisiting an experiment: the rig, dataset and model configuration can be examined separately instead of assuming that one preset label defines every part of the run.

Coverage and density solve different problems. A front-facing grid can be locally dense but says little about the back of an object; a coarse sphere sees more sides but leaves large jumps between observations. Increasing blur joins sparse contributions at the cost of detail. More overlapping views address the sampling gap, while lower per-view resolution keeps acquisition and storage practical. Neither interpolation nor blur recovers an unseen disocclusion.

A sampling schematic, not a render: choose the viewing range, fill it with overlapping observations, then align an aperture of rays at a selected depth.
Diagram A sampling schematic, not a render: choose the viewing range, fill it with overlapping observations, then align an aperture of rays at a selected depth.

Three recording presets: a fair density comparison

Dense orbit preview uses 48 × 9 cameras across 360° of azimuth and elevations −30° to +50°. At 160 × 160 pixels and 16 samples per pixel, it trades fine texture resolution for 432 nearby viewpoints. Sparse orbit control uses the same range with 12 × 3 cameras, so the effect of sampling density can be shown directly.

Refocus preview uses a converging 21 × 21 planar array: 441 cameras, 35 mm spacing and a 0.7 m total baseline. It is designed for a front-facing synthetic-aperture demonstration, not all-direction coverage. Capture the dataset first; a preset configures acquisition and viewing, it does not supply a trained model.

Rig familyGeometric arrangementQuestion it exposes
Plane / PlaneLookAtA translated array, parallel or converging toward a targetHow much local parallax and forward-facing coverage is enough?
Ring / Sphere / SphereCapCameras distributed around a regionWhich surfaces and viewing directions become constrained?
ParabolicA curved acquisition surfaceHow does changing the spatial sampling geometry alter interpolation and coverage?
Image Planar sampling in the native application: the selected 11 by 11 dataset, coverage markers and scene map show where observations sit relative to the viewer. This is the ray-space inspection view, not a raw contact sheet.
Image The 72-camera sphere dataset in the same native workbench. The rig map, selected ray-space view and matching controls explain its sampling geometry; the black regions show missing ray support. This is a qualitative layout example, not an equal-budget comparison with the planar array.
The 432-view orbit rendered directly through the native light-field viewer, with zero synthetic aperture. The 192-pixel inspection render retains noise from the 16-sample captures; density improves angular support, not the sampling noise inside each image.
Image The 432-view orbit rendered directly through the native light-field viewer, with zero synthetic aperture. The 192-pixel inspection render retains noise from the 16-sample captures; density improves angular support, not the sampling noise inside each image.
Recorded examples · 1Sample positions and directional viewsThe camera array becomes a visible sampling of the light field: spatial positions, recorded directional images and the current virtual view.
Image Cornell capture view with its scene map, selected dataset and reference Gaussian-splatting training controls.
05 · Direct light-field rendering

Render the field, then change its optics

Description · at a glance

The raw field has its own renderer. A free camera queries the recorded directional images, while Sharp and Smooth matching change how tightly a ray selects nearby capture positions. The scene map, sample markers and ray-coverage display connect the synthesized image to the data that contributes to it.

Refocusing turns the camera array into a synthetic aperture. Views are reprojected toward a chosen focus plane and combined: features aligned by that plane stay sharper, while other depths spread across the image. Aperture changes the contributing region of the array. Epipolar slices provide a complementary view of the same geometry by laying image rows alongside their camera positions.

For a rectified pair of cameras, a useful approximation is residual disparity Δx ≈ f B (1/z − 1/z₍focus₎), with focal length f in pixels and baseline B in scene units. A wider baseline makes wrong-depth features separate more strongly; denser camera sampling fills that blur more smoothly. Moving focus changes alignment, while increasing the ray-matching kernel merely mixes less similar observations. They are different controls.

Video A recorded limitation study across captured scenes: wider matching blends over missing ray support, but layered edges and uncovered regions remain. The capture map and ray-matching controls expose why a softer image is not the same as denser observations. This is a qualitative walkthrough, not a matched sparse-versus-dense benchmark.
Image Shift-and-add refocus with a Gaussian aperture: displaced edges around the foreground block and ceiling light show the active blending.
Focus on the foreground: native direct light-field refocus at 1.2 m makes the small glass object at the left more distinct while the central sphere blurs. 441 captured views, 0.3 m synthetic aperture; 192-pixel output from 160-pixel, 16-sample captures.
Image Focus on the foreground: native direct light-field refocus at 1.2 m makes the small glass object at the left more distinct while the central sphere blurs. 441 captured views, 0.3 m synthetic aperture; 192-pixel output from 160-pixel, 16-sample captures.
Focus on the central sphere: the same camera and aperture, refocused to 1.7 m. The large sphere becomes sharper while the foreground spreads. These two stills compare native refocus results; they do not show an animated sweep or a computed epipolar-slice measurement.
Image Focus on the central sphere: the same camera and aperture, refocused to 1.7 m. The large sphere becomes sharper while the foreground spreads. These two stills compare native refocus results; they do not show an animated sweep or a computed epipolar-slice measurement.
ExplanationFrom sample selection to a new viewThe rendering modes expose different ways to query and combine the recorded rays.

In ray-matching modes, a ray must pass near a captured position or satisfy the angular/reprojection fallback; the directional lookup still checks sidedness and texture bounds. The matching width therefore changes both coverage and blur. Coverage and pipeline-stage views expose acceptance decisions, while colored markers remain an aid to reading the camera arrangement.

The projection sweep is an exploratory image blend, not a recovered depth field. Its multiple proxy depths can remain visible as overlapping layers, as in the supplied native capture. The patch-based disparity view separately searches horizontal shifts across a row of cameras and displays a normalized result; its current assumptions do not provide calibrated metric depth for every rig.

The ray-space preview selects at most 128 camera entries from the available capture. It retains image-layer identities and the associated poses. Larger captures can therefore have more recorded observations than the live ray-space shader displays at once.

OperationImplementationVisible effect
Sharp / SmoothProject the query direction into eligible captured images; use a narrow or wider Gaussian in ray-to-camera distance.Individual sample support becomes a more continuous, softer blend.
VoronoiUse the nearest accepted camera candidate for each query ray.Sample selection boundaries remain apparent.
Projection / captured Soft-3D modeSample several proxy points along a query ray and project them into captured cameras.Layered scene appearance without solving for a single reconstructed surface.
RefocusProject a shared focus point into aperture-selected cameras and apply Gaussian aperture weights.Image features align near the selected focus plane and spread away from it.
Epipolar sliceExtract a fixed image row across a sequence of views.Feature trajectories reveal the relationship between image position and viewpoint.
Source evidenceActual ray matching, projection and aperture kernelsoffline_projs/LightField_Neural/viewer/shaders/light_field_rayspace.fragEpipolar and disparity operationsoffline_projs/LightField_Neural/viewer/src/light_field_ops.cpp
Recorded examples · 2Rendering the recorded lightPinhole, refocus and projection views construct images directly from captured rays, exposing the geometry of interpolation and synthetic aperture.
Image Soft-3D ray blending with a 16-step sweep: overlapping image layers remain visible beside the active ray-matching controls.
Image A front-facing ray-space inspection with camera markers, zero aperture and Refocus blending selected.
Capability family

Neural representations & training orchestration

Retain the explicit light field while learning two alternative representations of its observations: neural radiance functions and spatial Gaussian primitives.

06 · NeRF and Gaussian splatting

Three representations, one set of observations

The explicit light field stores captured images and their calibrated positions. Learned representations reorganize those observations: NeRF into neural density and directional color, Gaussian splatting into spatial primitives. They can be explored under a corresponding inspection camera, making the choice of representation visible rather than hiding it behind one final render.

The NeRF route represents density and view-dependent color with neural functions and renders by accumulating samples along camera rays. The project includes coarse/fine sampling and training orchestration around this model. A representation can fit observations while still blurring edges or leaving unsupported regions ambiguous; the saved test renders make those effects inspectable.

Gaussian splatting uses an explicit collection of spatial Gaussian primitives. Their projected shapes, appearance and opacity contribute through a differentiable renderer. The reference backend uses gsplat rasterization and its density-control strategy; the project also includes my own experimental renderer.

Both methods can reproduce appearance from a calibrated set of observations. Neither image quality nor a completed training cycle alone establishes correct geometry, relightable material, or generalization outside the captured region. The workbench keeps those questions separate from the basic ability to synthesize a view.

Image Gaussian-splat model viewer: lf_planar checkpoint step_005000, with 77,125 Gaussians and the reconstructed Cornell scene.
C(r)=∫T(t) σ(r(t)) c(r(t),d) dtC(\mathbf r)=\int T(t)\,\sigma(\mathbf r(t))\,c(\mathbf r(t),\mathbf d)\,dt
The continuous volume-rendering model behind the NeRF route: transmittance T weights density σ and directional color c along a camera ray. The implementation approximates this integral with sampled coarse/fine evaluations; Gaussian splatting uses a different explicit representation and rendering path.
07 · Systems workflow

Training and inspection in one application

The C++ viewer launches Python jobs with explicit dataset, method, backend and profile settings. Status files, subprocess output, previews and checkpoints connect the running training loop back to the application. A queue can retain later jobs while the current job continues. The application reports failed stages explicitly, so a stalled job can be distinguished from a slowly updating preview.

Fast profiles are explicit budgets for each registered method, not a promise that every representation converges equally quickly. The standard NeRF preview uses 1,200 iterations and a 96-pixel evaluation image; Instant-NGP uses 600 iterations at the same preview size. Six experimental methods use smaller 500-iteration configurations. Their previews help inspect whether training is making progress, while longer runs remain necessary for difficult geometry and held-out views.

Training progress and final evaluation also mean different things. A high training PSNR can coexist with a weaker held-out view. The interface can show the process, while a report must identify the dataset partition and the quantity actually measured.

Some representations need more than images. Neural textures requires a mesh that agrees with the capture; its fallback Cornell mesh is a proxy, not recovered geometry. Fast mode now reports coverage and rejects an empty training mask, instead of reporting a deceptively perfect score for an all-black result. A successful short run validates the pipeline, not convergence.

  • Select a scene and acquisition rig; render and inspect the capture before starting training.
  • Choose method, backend and profile explicitly; retain the dataset and parameter files with the run.
  • Watch training status, preview updates and checkpoint creation as separate stages.
  • Render saved test cameras and inspect errors before selecting a checkpoint for live exploration.
An actual 96-pixel NeRF fast preview after 1,200 updates on the new refocus dataset. This deliberately small inspection image took about 26 seconds end-to-end in one local run; it is not a final-quality render or a universal timing promise.
Image An actual 96-pixel NeRF fast preview after 1,200 updates on the new refocus dataset. This deliberately small inspection image took about 26 seconds end-to-end in one local run; it is not a final-quality render or a universal timing promise.
Capability family

Matched views, live inspection & evaluation

Move a corresponding camera through direct light-field synthesis, learned appearance and the source scene, then evaluate with explicit image identities.

08 · Saved comparisons

A concrete comparison at one known camera

The supplied narrow Cornell capture contains 64 cameras: 56 training views and eight test views, with 400×400 images. Saved NeRF and reference-GS runs include test renders and per-view metrics. The images below use the first test camera, paired through the dataset frame and the producer's index convention rather than through matching filenames.

NeRF was recorded at 3,000 steps and reference GS at 5,000. Mean PSNR across the decoded PNG test images is approximately 29.37 and 23.41 dB respectively, using the corrected evaluator. The runs used different budgets and not all settings were saved, so these numbers describe the examples shown rather than rank the methods.

The comparison is most useful visually. Inspect surface softness, wall boundaries and the ceiling emitter. The captured target itself contains rendering noise, so the reference is a sampled synthetic observation rather than an exact noise-free image.

Image NeRF: first test camera after the recorded 3,000-step run.
Image Reference Gaussian splatting: the same test camera after the recorded 5,000-step run. The runs use different budgets and settings, so this is a visual comparison rather than a method ranking.
09 · Interactive comparison

Move one camera through the ray field and its models

The inspection camera moves through a directly rendered light field, a supported learned checkpoint and a source-scene reference. These views expose different ways of carrying the same observed appearance. The model registry distinguishes the project’s Gaussian, NeRF and Instant-NGP routes from the more exploratory methods; a method appearing in the registry is not a claim of equal preview speed or reconstruction quality.

The native application also projects the inspection camera into the raw light-field parameterization and can render a scene reference. This creates a useful three-way inspection of captured-ray interpolation, learned representation and known source scene. Synchronizing the camera does not automatically make the information budgets equal: the saved raw array includes observations that were excluded from model training.

A controlled interpolation experiment should restrict the raw-LF baseline to the same training observations and evaluate a newly held-out pose. The live mode remains valuable for finding coverage gaps, but those gaps should be interpreted with the permitted input views and the rig's parameterization in view.

Image A front-facing ray-space inspection with camera markers, zero aperture and Refocus blending selected.
10 · Correctness and evidence

Evaluation must know which camera produced each image

The generic evaluator now requires an explicit manifest containing camera identity, render filename and reference filename. This prevents a subtle failure: captures preserve original camera IDs, one trainer writes zero-based test indices, and another writes one-based indices. A file called r_1.png can therefore refer to different cameras. Missing or ambiguous mappings fail clearly rather than guessing an offset or silently skipping views.

A separate limitation remains in aggregate PSNR: empty black views can dominate a mean. One saved freewalk run contains six exact-black matches among nine views, inflating its average score. Coverage, nonempty-view errors and the full per-view breakdown should accompany any acquisition comparison. The next strong experiment is therefore controlled camera coverage under equal image and training budgets, not another unqualified scalar score.

Page reviewed September 12, 2026. Demonstrations and technical notes reflect the showcased version.
Project overview