Architecture
September 3, 2026 ยท View on GitHub
SolarWM is organized around four independent contracts: configuration, data, model backends, and execution. A model family owns model-specific math; it does not own dataset semantics, process topology, checkpoint policy, or command-line entrypoints.
solarwm CLI
-> strict versioned run config
-> deterministic data plan -> local or object-store transport
-> model backend registry -> Wan 2.2 / LTX-2.5 / MiniMax-H3
-> train, infer, or preencode engine
-> manifest + checkpoint + validation outputs
Package boundaries
solarwm.config: loading, path resolution, strict validation, and stable resolved-config output.solarwm.data: canonical indexes, virtual occurrences, rank/worker/SP ownership, frame starts, camera conventions, and transport-independent sample materialization.solarwm.backends: lazily imported model-family plugins. A backend declares its supported stages and validates its backend-specific configuration.solarwm.training: stage/objective orchestration, distributed topology, EMA, checkpoint transactions, and finite-value policy.solarwm.inference: the same backend and camera path used by validation.solarwm.preencode: versioned raw-to-latent production and schema checks.
Dependency direction
Core modules never import a concrete backbone. Backends may import core protocols, but backend-to-backend imports are prohibited. Dataset readers do not infer camera normalization from a class or dataset name. Local and bucket access are transports beneath one canonical index and sampler.
Component contracts
Each component has a documented input/output contract, deterministic fixtures, and a run manifest that binds the resolved configuration and input identities.