How kwikerrr/point2wss works
Point2WSS trains and evaluates a cross-modal masked autoencoder that reconstructs WSS roof parameters from LiDAR point clouds. Its data path loads paired cloud/label samples, preprocesses them and tokenizes roof geometry; training feeds both modalities to mutually conditioned branches, with reconstruction and alignment objectives. The graph also includes the documented evaluation entry point and the model’s key internal stages. Relationship evidence is limited to the README and sampled/indexed source references; unsampled wiring is not inferred.
Main entry points: pointcloud_branch_mae.py Point-cloud branch · point2wss_loss.py Multimodal losses · train.py Training entry point · tokenizer.py Multipitch tokenizer
Components 30
Data preparation
- Split loader
src/datamodules/loaders/txt_loader.py - Synthetic data module
src/datamodules/synthetic_datamodule.py - Synthetic dataset
src/datasets/synthetic_dataset.py - Grid dataset
src/datasets/grid_synthetic_dataset.py - Dataset preprocessing
src/datasets/base_dataset.py
Roof representation
- Multipitch tokenizer
src/tokenization/numerical/tokenizer.py - Sequence grammar
src/tokenization/numerical/sequence_format.py - Token vocabulary
src/tokenization/numerical/vocabulary.py - Numerical encoding
src/tokenization/numerical/encoders.py
Cross-modal model
- Point2WSS network
src/nets/point2wss.py - Parameter branch
src/nets/branches/params_branch.py - Parameter encoder
src/nets/encoders/params_encoder.py - Parameter masker
src/nets/maskers/params_masker.py - Parameter cross-encoder
src/nets/cross_encoders/param_cross_encoder.py - Point-cloud branch
src/nets/branches/pointcloud_branch_mae.py - Point-cloud encoder
src/nets/encoders/pointcloud_encoder.py - Patch divider
src/nets/pointcloud/patch_divider.py - Point-cloud geometry
src/nets/pointcloud/geometry.py - Point-cloud masker
src/nets/maskers/pointcloud_masker.py - Point-cloud cross-encoder
src/nets/cross_encoders/pointcloud_cross_encoder.py - Attention layers
src/nets/transformers/attention.py
Training objectives
- Multimodal losses
src/losses/point2wss_loss.py - Reconstruction loss
src/losses/components/reconstruction.py - Chamfer loss
src/losses/components/chamfer.py - Contrastive losses
src/losses/components/contrastive.py - Cross-modal alignment
src/losses/components/cross_contrastive.py
Train and evaluate
- Lightning training module
src/models/training_module.py - Training entry point
src/train.py - Evaluation entry point
src/eval.py
Other components
- Researcher
Connections 34
- Researcher → Training entry point: starts training
src/train.py - Training entry point → Multipitch tokenizer: instantiates
src/train.py - Training entry point → Synthetic data module: instantiates
src/train.py - Training entry point → Lightning training module: instantiates
src/train.py - Training entry point → Lightning training module: fits model
src/train.py - Synthetic data module → Split loader: loads splits
src/datamodules/synthetic_datamodule.py - Synthetic data module → Grid dataset: creates datasets
- Synthetic data module → Synthetic dataset: creates datasets
src/datamodules/synthetic_datamodule.py - Grid dataset → Dataset preprocessing: inherits preprocessing
src/datasets/grid_synthetic_dataset.py - Synthetic dataset → Dataset preprocessing: uses base class
src/datasets/synthetic_dataset.py - Grid dataset → Multipitch tokenizer: tokenizes labels
src/datasets/grid_synthetic_dataset.py - Synthetic dataset → Multipitch tokenizer: tokenizes labels
src/datasets/synthetic_dataset.py - Multipitch tokenizer → Sequence grammar: uses grammar
src/tokenization/numerical/tokenizer.py - Multipitch tokenizer → Token vocabulary: uses token IDs
src/tokenization/numerical/tokenizer.py - Sequence grammar → Numerical encoding: uses numeric ranks
- Lightning training module → Point2WSS network: runs network
- Point2WSS network → Parameter branch: dispatches parameters
- Point2WSS network → Point-cloud branch: dispatches point cloud
- Parameter branch → Parameter encoder: encodes tokens
- Parameter branch → Parameter masker: masks tokens
- Parameter branch → Parameter cross-encoder: cross-attends
- Point-cloud branch → Patch divider: forms patches
- Patch divider → Point-cloud geometry: uses sampling
src/nets/pointcloud/patch_divider.py - Point-cloud branch → Point-cloud encoder: encodes patches
- Point-cloud branch → Point-cloud masker: masks patches
- Point-cloud branch → Point-cloud cross-encoder: cross-attends
- Parameter cross-encoder → Attention layers: uses attention
- Point-cloud cross-encoder → Attention layers: uses attention
- Lightning training module → Multimodal losses: computes objectives
- Multimodal losses → Reconstruction loss: uses reconstruction
- Multimodal losses → Chamfer loss: uses geometry loss
- Multimodal losses → Contrastive losses: uses alignment
- Multimodal losses → Cross-modal alignment: uses cross alignment
- Researcher → Evaluation entry point: starts evaluation