How haian-jin/tensoir works
TensoIR is a PyTorch inverse-rendering system for learning scene geometry, materials, and lighting from multi-view images. Its main workflow loads scene images and lighting, trains a tensor-factorized scene representation, then renders learned-lighting views or relights the scene under unseen environment maps; it can also export a mesh. The README documents single-light, rotated multi-light, general multi-light, and optional NeRF-Synthetic training modes. Internal links are limited to relationships supported by the README or source-index references; several implementation details were not sampled.
Main entry points: renderer.py Renderer · tensoRF_rotated_lights.py Rotated Tensor Field · opt.py Run Configuration · relight_importance.py Relight Sampling
Components 25
Scene Inputs
- Scene Images
- Environment Maps
- Run Configuration
opt.py - Camera Rays
dataLoader/ray_utils.py - Blender Dataset
dataLoader/blender.py - Single-Light Dataset
dataLoader/tensoIR_simple.py - Rotated-Light Dataset
dataLoader/tensoIR_rotation_setting.py - General-Light Dataset
dataLoader/tensoIR_general_multi_lights.py
Scene Learning
- Single-Light Training
train_tensoIR.py - NeRF-Synthetic Training
train_tensoIR_simple.py - Rotated-Light Training
train_tensoIR_rotated_multi_lights.py - General-Light Training
train_tensoIR_general_multi_lights.py - Rotated Tensor Field
models/tensoRF_rotated_lights.py - General Tensor Field
models/tensoRF_general_multi_lights.py - Tensor Field Base
models/tensorBase_rotated_lights.py - General Field Base
models/tensorBase_general_multi_lights.py - Initial Tensor Field
models/tensoRF_init.py - SH Lighting Basis
models/sh.py
Rendering and Relighting
- Relighting Utilities
models/relight_utils.py - Renderer
renderer.py - Relight Sampling
scripts/relight_importance.py
Analysis and Outputs
- Mesh Export
scripts/export_mesh.py - Image Metrics
utils.py - Rendered Results
Other components
- Researcher
Connections 37
- Researcher → Run Configuration: sets options
README.md - Scene Images → Single-Light Dataset: loads images
- Environment Maps → General-Light Dataset: loads lighting
dataLoader/tensoIR_general_multi_lights.py - Camera Rays → Single-Light Dataset: generates rays
dataLoader/tensoIR_simple.py - Camera Rays → Rotated-Light Dataset: generates rays
dataLoader/tensoIR_rotation_setting.py - Camera Rays → General-Light Dataset: generates rays
dataLoader/tensoIR_general_multi_lights.py - Run Configuration → Single-Light Training: configures run
README.md - Run Configuration → NeRF-Synthetic Training: configures run
README.md - Run Configuration → Rotated-Light Training: configures run
README.md - Run Configuration → General-Light Training: configures run
README.md - Single-Light Dataset → Single-Light Training: provides samples
- Blender Dataset → NeRF-Synthetic Training: provides samples
- Rotated-Light Dataset → Rotated-Light Training: provides samples
- General-Light Dataset → General-Light Training: provides samples
- Single-Light Training → Rotated Tensor Field: trains model
train_tensoIR.py - NeRF-Synthetic Training → Rotated Tensor Field: trains model
train_tensoIR_simple.py - Rotated-Light Training → Rotated Tensor Field: trains model
train_tensoIR_rotated_multi_lights.py - General-Light Training → General Tensor Field: trains model
train_tensoIR_general_multi_lights.py - Rotated Tensor Field → Tensor Field Base: extends field
models/tensoRF_rotated_lights.py - General Tensor Field → General Field Base: extends field
models/tensoRF_general_multi_lights.py - Tensor Field Base → SH Lighting Basis: evaluates basis
models/tensorBase_rotated_lights.py - General Field Base → SH Lighting Basis: evaluates basis
models/tensorBase_general_multi_lights.py - Relighting Utilities → Initial Tensor Field: uses alpha conversion
models/relight_utils.py - Renderer → Relighting Utilities: renders BRDF
renderer.py - Single-Light Training → Renderer: renders tests
README.md - NeRF-Synthetic Training → Renderer: renders tests
README.md - Rotated-Light Training → Renderer: renders tests
README.md - General-Light Training → Renderer: renders tests
README.md - Researcher → Relight Sampling: requests relighting
README.md - Relight Sampling → Rotated Tensor Field: loads checkpoint
scripts/relight_importance.py - Relight Sampling → Renderer: renders relighting
scripts/relight_importance.py - Relight Sampling → Environment Maps: samples unseen light
README.md - Renderer → Image Metrics: computes metrics
renderer.py - Renderer → Rendered Results: saves renders
README.md - Researcher → Mesh Export: requests extraction
README.md - Mesh Export → Rotated Tensor Field: loads checkpoint
scripts/export_mesh.py - Mesh Export → Rendered Results: writes mesh
README.md