Synema is a collection of neural radiance field (NeRF-style) view-synthesis utilities designed to work with Cinema image-based databases for in situ / in transit visualization workflows.
The goal is to take an existing Cinema dataset (images + camera parameters) and enable novel view synthesis (new viewpoints, smooth camera paths, view interpolation) to enhance interactive exploration without requiring additional simulation output.
Synema is implemented using the JAX ecosystem, not PyTorch or TensorFlow.
Core ML stack:
- JAX --- numerical backend (XLA-compiled array computing)
- Flax --- neural network module system
- Optax --- optimizers
- Jaxtyping --- type annotations for JAX arrays
- High-performance XLA compilation
- Functional programming model well-suited for NeRF training
- Clean separation between model definition (Flax) and optimization (Optax)
- Excellent support for GPU and TPU acceleration
To use a GPU, install the correct JAX build for your CUDA version:
pip install --upgrade "jax[cuda12]"Refer to the official JAX installation guide for CUDA-specific wheels: https://jax.readthedocs.io/en/latest/installation.html
If no GPU is available, Synema will run on CPU (training will be slower).
synema/--- Python package implementing models, data handling, and rendering utilities\examples/--- Example scripts demonstrating training and inference on Cinema datasets\data/--- Example assets and/or helper data\pyproject.toml--- Modern Python packaging (PEP 621 compliant)\requirements-dev.txt--- Development tooling dependencies\requirements-examples.txt--- Optional example / visualization dependencies\license.md--- Repository license
Typical environment:
- Python 3.9+
- CUDA-capable GPU (recommended for training)
- JAX ecosystem (jax, flax, optax)
- Standard scientific Python libraries
pip install -e .Synema provides optional dependency groups defined in pyproject.toml.
Includes testing, linting, and packaging utilities:
pip install -e .[dev]Equivalent:
pip install -r requirements-dev.txtTo run PyVista-based examples:
pip install -e .[gui]Equivalent:
pip install -r requirements-examples.txtpython -m venv .venv
source .venv/bin/activate
pip install -U pip
pip install -e .[dev,gui]Typical workflow:
- Train a model on a Cinema dataset
- Render novel views
- Export results for Cinema visualization
Example (see examples/ for actual scripts):
python examples/train.py --cinema /path/to/cinema_db --out runs/my_run
python examples/render.py --run runs/my_run --trajectory spiral --out renders/my_run_spiralSynema expects:
- Images from a Cinema database
- Camera pose and intrinsics metadata
- Parameter metadata for consistent rendering
Adapters in synema/ or examples/ map Cinema metadata to NeRF
training inputs.
synema/
synema/ # Models, datasets, rendering, utilities
examples/ # Training and rendering examples
data/ # Example data
pyproject.toml # Packaging configuration
Contributions welcome via issues and pull requests:
- New model variants
- Dataset adapters
- Performance improvements
- Documentation updates
@software{synema,
title = {Synema: Novel View Synthesis for Cinema in situ Visualization},
author = {CinemaScience contributors},
url = {https://github.com/cinemascience/synema},
year = {2025}
}Portions of this repository's documentation, packaging configuration, and test scaffolding were generated or refined with the assistance of AI tools (including large language models).
All generated content has been reviewed and curated by the project maintainers. Any errors, omissions, or inconsistencies remain the responsibility of the human authors.
See license.md.